Update tests to phpunit 10

This commit is contained in:
Bubka 2023-08-01 11:28:27 +02:00
parent fe5d807170
commit 36188f2230
64 changed files with 508 additions and 290 deletions

View File

@ -1,24 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
backupGlobals="false" backupGlobals="false"
backupStaticAttributes="false" backupStaticProperties="false"
bootstrap="vendor/autoload.php" bootstrap="vendor/autoload.php"
colors="true" colors="true"
convertErrorsToExceptions="true" displayDetailsOnTestsThatTriggerErrors="true"
convertNoticesToExceptions="true" displayDetailsOnTestsThatTriggerNotices="true"
convertWarningsToExceptions="true" displayDetailsOnTestsThatTriggerWarnings="true"
processIsolation="false" processIsolation="false"
stopOnFailure="false" stopOnFailure="false"
stopOnError="false" stopOnError="false"
beStrictAboutTestsThatDoNotTestAnything="false" beStrictAboutTestsThatDoNotTestAnything="false"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"> xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<coverage processUncoveredFiles="true"> <source>
<include> <include>
<directory suffix=".php">app</directory> <directory suffix=".php">app</directory>
</include> </include>
<exclude> <exclude>
<directory suffix=".php">app/Protobuf</directory> <directory suffix=".php">app/Protobuf</directory>
</exclude> </exclude>
</source>
<coverage includeUncoveredFiles="true">
</coverage> </coverage>
<testsuites> <testsuites>
<testsuite name="Unit"> <testsuite name="Unit">

View File

@ -1,24 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
backupGlobals="false" backupGlobals="false"
backupStaticAttributes="false" backupStaticProperties="false"
bootstrap="vendor/autoload.php" bootstrap="vendor/autoload.php"
colors="true" colors="true"
convertErrorsToExceptions="true" displayDetailsOnTestsThatTriggerErrors="true"
convertNoticesToExceptions="true" displayDetailsOnTestsThatTriggerNotices="true"
convertWarningsToExceptions="true" displayDetailsOnTestsThatTriggerWarnings="true"
processIsolation="false" processIsolation="false"
stopOnFailure="false" stopOnFailure="false"
stopOnError="false" stopOnError="false"
beStrictAboutTestsThatDoNotTestAnything="false" beStrictAboutTestsThatDoNotTestAnything="false"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"> xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<coverage processUncoveredFiles="true"> <source>
<include> <include>
<directory suffix=".php">app</directory> <directory suffix=".php">app</directory>
</include> </include>
<exclude> <exclude>
<directory suffix=".php">app/Protobuf</directory> <directory suffix=".php">app/Protobuf</directory>
</exclude> </exclude>
</source>
<coverage includeUncoveredFiles="true">
</coverage> </coverage>
<testsuites> <testsuites>
<testsuite name="Unit"> <testsuite name="Unit">

View File

@ -2,13 +2,17 @@
namespace Tests\Api\v1\Controllers\Auth; namespace Tests\Api\v1\Controllers\Auth;
use App\Api\v1\Controllers\UserController;
use App\Api\v1\Resources\UserResource;
use App\Models\User; use App\Models\User;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Api\v1\Controllers\UserController * UserControllerTest test class
* @covers \App\Api\v1\Resources\UserResource
*/ */
#[CoversClass(UserController::class)]
#[CoversClass(UserResource::class)]
class UserControllerTest extends FeatureTestCase class UserControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,18 +2,21 @@
namespace Tests\Api\v1\Controllers; namespace Tests\Api\v1\Controllers;
use App\Api\v1\Controllers\GroupController;
use App\Api\v1\Resources\GroupResource;
use App\Listeners\ResetUsersPreference;
use App\Models\Group; use App\Models\Group;
use App\Models\TwoFAccount; use App\Models\TwoFAccount;
use App\Models\User; use App\Models\User;
use App\Policies\GroupPolicy;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** #[CoversClass(GroupController::class)]
* @covers \App\Api\v1\Controllers\GroupController #[CoversClass(GroupResource::class)]
* @covers \App\Api\v1\Resources\GroupResource #[CoversClass(ResetUsersPreference::class)]
* @covers \App\Listeners\ResetUsersPreference #[CoversClass(GroupPolicy::class)]
* @covers \App\Policies\GroupPolicy #[CoversClass(Group::class)]
* @covers \App\Models\Group
*/
class GroupControllerTest extends FeatureTestCase class GroupControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,14 +2,17 @@
namespace Tests\Api\v1\Controllers; namespace Tests\Api\v1\Controllers;
use App\Api\v1\Controllers\IconController;
use App\Models\TwoFAccount; use App\Models\TwoFAccount;
use App\Models\User; use App\Models\User;
use Illuminate\Http\UploadedFile; use Illuminate\Http\UploadedFile;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Api\v1\Controllers\IconController * IconController test class
*/ */
#[CoversClass(IconController::class)]
class IconControllerTest extends FeatureTestCase class IconControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,14 +2,17 @@
namespace Tests\Api\v1\Controllers; namespace Tests\Api\v1\Controllers;
use App\Api\v1\Controllers\QrCodeController;
use App\Models\TwoFAccount; use App\Models\TwoFAccount;
use App\Models\User; use App\Models\User;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\Classes\LocalFile; use Tests\Classes\LocalFile;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Api\v1\Controllers\QrCodeController * QrCodeController test class
*/ */
#[CoversClass(QrCodeController::class)]
class QrCodeControllerTest extends FeatureTestCase class QrCodeControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,13 +2,16 @@
namespace Tests\Api\v1\Controllers; namespace Tests\Api\v1\Controllers;
use App\Api\v1\Controllers\SettingController;
use App\Facades\Settings; use App\Facades\Settings;
use App\Models\User; use App\Models\User;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Api\v1\Controllers\SettingController * SettingController test class
*/ */
#[CoversClass(SettingController::class)]
class SettingControllerTest extends FeatureTestCase class SettingControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,28 +2,40 @@
namespace Tests\Api\v1\Controllers; namespace Tests\Api\v1\Controllers;
use App\Api\v1\Controllers\TwoFAccountController;
use App\Api\v1\Resources\TwoFAccountCollection;
use App\Api\v1\Resources\TwoFAccountExportCollection;
use App\Api\v1\Resources\TwoFAccountExportResource;
use App\Api\v1\Resources\TwoFAccountReadResource;
use App\Api\v1\Resources\TwoFAccountStoreResource;
use App\Facades\Settings; use App\Facades\Settings;
use App\Models\Group; use App\Models\Group;
use App\Models\TwoFAccount; use App\Models\TwoFAccount;
use App\Models\User; use App\Models\User;
use App\Policies\TwoFAccountPolicy;
use App\Providers\MigrationServiceProvider;
use App\Providers\TwoFAuthServiceProvider;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\Classes\LocalFile; use Tests\Classes\LocalFile;
use Tests\Data\MigrationTestData; use Tests\Data\MigrationTestData;
use Tests\Data\OtpTestData; use Tests\Data\OtpTestData;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
use PHPUnit\Framework\Attributes\DataProvider;
/** /**
* @covers \App\Api\v1\Controllers\TwoFAccountController * TwoFAccountControllerTest test class
* @covers \App\Api\v1\Resources\TwoFAccountCollection
* @covers \App\Api\v1\Resources\TwoFAccountReadResource
* @covers \App\Api\v1\Resources\TwoFAccountStoreResource
* @covers \App\Api\v1\Resources\TwoFAccountExportResource
* @covers \App\Api\v1\Resources\TwoFAccountExportCollection
* @covers \App\Providers\MigrationServiceProvider
* @covers \App\Providers\TwoFAuthServiceProvider
* @covers \App\Policies\TwoFAccountPolicy
*/ */
#[CoversClass(TwoFAccountController::class)]
#[CoversClass(TwoFAccountCollection::class)]
#[CoversClass(TwoFAccountReadResource::class)]
#[CoversClass(TwoFAccountStoreResource::class)]
#[CoversClass(TwoFAccountExportResource::class)]
#[CoversClass(TwoFAccountExportCollection::class)]
#[CoversClass(MigrationServiceProvider::class)]
#[CoversClass(TwoFAuthServiceProvider::class)]
#[CoversClass(TwoFAccountPolicy::class)]
class TwoFAccountControllerTest extends FeatureTestCase class TwoFAccountControllerTest extends FeatureTestCase
{ {
/** /**
@ -198,9 +210,8 @@ class TwoFAccountControllerTest extends FeatureTestCase
/** /**
* @test * @test
*
* @dataProvider indexUrlParameterProvider
*/ */
#[DataProvider('indexUrlParameterProvider')]
public function test_index_returns_user_twofaccounts_only($urlParameter, $expected) public function test_index_returns_user_twofaccounts_only($urlParameter, $expected)
{ {
$response = $this->actingAs($this->user, 'api-guard') $response = $this->actingAs($this->user, 'api-guard')
@ -227,7 +238,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
/** /**
* Provide data for index tests * Provide data for index tests
*/ */
public function indexUrlParameterProvider() public static function indexUrlParameterProvider()
{ {
return [ return [
'VALID_RESOURCE_STRUCTURE_WITHOUT_SECRET' => [ 'VALID_RESOURCE_STRUCTURE_WITHOUT_SECRET' => [
@ -315,10 +326,9 @@ class TwoFAccountControllerTest extends FeatureTestCase
} }
/** /**
* @dataProvider accountCreationProvider
*
* @test * @test
*/ */
#[DataProvider('accountCreationProvider')]
public function test_store_without_encryption_returns_success_with_consistent_resource_structure($payload, $expected) public function test_store_without_encryption_returns_success_with_consistent_resource_structure($payload, $expected)
{ {
Settings::set('useEncryption', false); Settings::set('useEncryption', false);
@ -332,10 +342,9 @@ class TwoFAccountControllerTest extends FeatureTestCase
} }
/** /**
* @dataProvider accountCreationProvider
*
* @test * @test
*/ */
#[DataProvider('accountCreationProvider')]
public function test_store_with_encryption_returns_success_with_consistent_resource_structure($payload, $expected) public function test_store_with_encryption_returns_success_with_consistent_resource_structure($payload, $expected)
{ {
Settings::set('useEncryption', true); Settings::set('useEncryption', true);
@ -351,7 +360,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
/** /**
* Provide data for TwoFAccount store tests * Provide data for TwoFAccount store tests
*/ */
public function accountCreationProvider() public static function accountCreationProvider()
{ {
return [ return [
'TOTP_FULL_CUSTOM_URI' => [ 'TOTP_FULL_CUSTOM_URI' => [
@ -747,9 +756,8 @@ class TwoFAccountControllerTest extends FeatureTestCase
/** /**
* @test * @test
*
* @dataProvider invalidAegisJsonFileProvider
*/ */
#[DataProvider('invalidAegisJsonFileProvider')]
public function test_migrate_invalid_aegis_json_file_returns_bad_request($file) public function test_migrate_invalid_aegis_json_file_returns_bad_request($file)
{ {
$response = $this->withHeaders(['Content-Type' => 'multipart/form-data']) $response = $this->withHeaders(['Content-Type' => 'multipart/form-data'])
@ -763,7 +771,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
/** /**
* Provide invalid Aegis JSON files for import tests * Provide invalid Aegis JSON files for import tests
*/ */
public function invalidAegisJsonFileProvider() public static function invalidAegisJsonFileProvider()
{ {
return [ return [
'encryptedAegisJsonFile' => [ 'encryptedAegisJsonFile' => [
@ -777,9 +785,8 @@ class TwoFAccountControllerTest extends FeatureTestCase
/** /**
* @test * @test
*
* @dataProvider validPlainTextFileProvider
*/ */
#[DataProvider('validPlainTextFileProvider')]
public function test_migrate_valid_plain_text_file_returns_success($file) public function test_migrate_valid_plain_text_file_returns_success($file)
{ {
$response = $this->withHeaders(['Content-Type' => 'multipart/form-data']) $response = $this->withHeaders(['Content-Type' => 'multipart/form-data'])
@ -828,7 +835,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
/** /**
* Provide valid Plain Text files for import tests * Provide valid Plain Text files for import tests
*/ */
public function validPlainTextFileProvider() public static function validPlainTextFileProvider()
{ {
return [ return [
'validPlainTextFile' => [ 'validPlainTextFile' => [
@ -842,9 +849,8 @@ class TwoFAccountControllerTest extends FeatureTestCase
/** /**
* @test * @test
*
* @dataProvider invalidPlainTextFileProvider
*/ */
#[DataProvider('invalidPlainTextFileProvider')]
public function test_migrate_invalid_plain_text_file_returns_bad_request($file) public function test_migrate_invalid_plain_text_file_returns_bad_request($file)
{ {
$response = $this->withHeaders(['Content-Type' => 'multipart/form-data']) $response = $this->withHeaders(['Content-Type' => 'multipart/form-data'])
@ -858,7 +864,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
/** /**
* Provide invalid Plain Text files for import tests * Provide invalid Plain Text files for import tests
*/ */
public function invalidPlainTextFileProvider() public static function invalidPlainTextFileProvider()
{ {
return [ return [
'invalidPlainTextFileEmpty' => [ 'invalidPlainTextFileEmpty' => [

View File

@ -6,11 +6,14 @@ use App\Api\v1\Requests\GroupAssignRequest;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Api\v1\Requests\GroupAssignRequest * GroupAssignRequestTest test class
*/ */
#[CoversClass(GroupAssignRequest::class)]
class GroupAssignRequestTest extends TestCase class GroupAssignRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -30,8 +33,9 @@ class GroupAssignRequestTest extends TestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new GroupAssignRequest(); $request = new GroupAssignRequest();
@ -43,7 +47,7 @@ class GroupAssignRequestTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -55,8 +59,9 @@ class GroupAssignRequestTest extends TestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new GroupAssignRequest(); $request = new GroupAssignRequest();
@ -68,7 +73,7 @@ class GroupAssignRequestTest extends TestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -9,11 +9,14 @@ use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use Mockery; use Mockery;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Api\v1\Requests\GroupStoreRequest * GroupStoreRequestTest test class
*/ */
#[CoversClass(GroupStoreRequest::class)]
class GroupStoreRequestTest extends FeatureTestCase class GroupStoreRequestTest extends FeatureTestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -23,7 +26,7 @@ class GroupStoreRequestTest extends FeatureTestCase
*/ */
protected $user; protected $user;
protected String $uniqueGroupName = 'MyGroup'; const UNIQUE_GROUP_NAME = 'MyGroup';
/** /**
* @test * @test
@ -50,8 +53,9 @@ class GroupStoreRequestTest extends FeatureTestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = Mockery::mock(GroupStoreRequest::class)->makePartial(); $request = Mockery::mock(GroupStoreRequest::class)->makePartial();
@ -66,7 +70,7 @@ class GroupStoreRequestTest extends FeatureTestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -76,12 +80,13 @@ class GroupStoreRequestTest extends FeatureTestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$group = Group::factory()->for($this->user)->create([ $group = Group::factory()->for($this->user)->create([
'name' => $this->uniqueGroupName, 'name' => self::UNIQUE_GROUP_NAME,
]); ]);
$request = Mockery::mock(GroupStoreRequest::class)->makePartial(); $request = Mockery::mock(GroupStoreRequest::class)->makePartial();
@ -96,7 +101,7 @@ class GroupStoreRequestTest extends FeatureTestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[
@ -109,7 +114,7 @@ class GroupStoreRequestTest extends FeatureTestCase
'name' => 'mmmmmmoooooorrrrrreeeeeeettttttthhhhhhaaaaaaannnnnn32cccccchhhhhaaaaaarrrrrrsssssss', // max:32 'name' => 'mmmmmmoooooorrrrrreeeeeeettttttthhhhhhaaaaaaannnnnn32cccccchhhhhaaaaaarrrrrrsssssss', // max:32
]], ]],
[[ [[
'name' => $this->uniqueGroupName, // unique 'name' => self::UNIQUE_GROUP_NAME, // unique
]], ]],
]; ];
} }

View File

@ -6,12 +6,15 @@ use App\Api\v1\Requests\QrCodeDecodeRequest;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\Classes\LocalFile; use Tests\Classes\LocalFile;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Api\v1\Requests\QrCodeDecodeRequest * QrCodeDecodeRequestTest test class
*/ */
#[CoversClass(QrCodeDecodeRequest::class)]
class QrCodeDecodeRequestTest extends TestCase class QrCodeDecodeRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -31,8 +34,9 @@ class QrCodeDecodeRequestTest extends TestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new QrCodeDecodeRequest(); $request = new QrCodeDecodeRequest();
@ -44,7 +48,7 @@ class QrCodeDecodeRequestTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
$file = LocalFile::fake()->validQrcode(); $file = LocalFile::fake()->validQrcode();
@ -56,8 +60,9 @@ class QrCodeDecodeRequestTest extends TestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new QrCodeDecodeRequest(); $request = new QrCodeDecodeRequest();
@ -69,7 +74,7 @@ class QrCodeDecodeRequestTest extends TestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -7,16 +7,19 @@ use App\Facades\Settings;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Api\v1\Requests\SettingStoreRequest * SettingStoreRequestTest test class
*/ */
#[CoversClass(SettingStoreRequest::class)]
class SettingStoreRequestTest extends FeatureTestCase class SettingStoreRequestTest extends FeatureTestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
protected String $uniqueKey = 'UniqueKey'; const UNIQUE_KEY = 'UniqueKey';
/** /**
* @test * @test
@ -33,8 +36,9 @@ class SettingStoreRequestTest extends FeatureTestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new SettingStoreRequest(); $request = new SettingStoreRequest();
@ -46,7 +50,7 @@ class SettingStoreRequestTest extends FeatureTestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -65,11 +69,12 @@ class SettingStoreRequestTest extends FeatureTestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
Settings::set($this->uniqueKey, 'uniqueValue'); Settings::set(self::UNIQUE_KEY, 'uniqueValue');
$request = new SettingStoreRequest(); $request = new SettingStoreRequest();
$validator = Validator::make($data, $request->rules()); $validator = Validator::make($data, $request->rules());
@ -80,7 +85,7 @@ class SettingStoreRequestTest extends FeatureTestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[
@ -100,7 +105,7 @@ class SettingStoreRequestTest extends FeatureTestCase
'value' => 'MyValue', 'value' => 'MyValue',
]], ]],
[[ [[
'key' => $this->uniqueKey, // unique 'key' => self::UNIQUE_KEY, // unique
'value' => 'MyValue', 'value' => 'MyValue',
]], ]],
]; ];

View File

@ -2,15 +2,19 @@
namespace Tests\Api\v1\Requests; namespace Tests\Api\v1\Requests;
use App\Api\v1\Requests\SettingStoreRequest;
use App\Api\v1\Requests\SettingUpdateRequest; use App\Api\v1\Requests\SettingUpdateRequest;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Api\v1\Requests\SettingUpdateRequest * SettingUpdateRequestTest test class
*/ */
#[CoversClass(SettingStoreRequest::class)]
class SettingUpdateRequestTest extends TestCase class SettingUpdateRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -30,8 +34,9 @@ class SettingUpdateRequestTest extends TestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new SettingUpdateRequest(); $request = new SettingUpdateRequest();
@ -43,7 +48,7 @@ class SettingUpdateRequestTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -59,8 +64,9 @@ class SettingUpdateRequestTest extends TestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new SettingUpdateRequest(); $request = new SettingUpdateRequest();
@ -72,7 +78,7 @@ class SettingUpdateRequestTest extends TestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -6,11 +6,14 @@ use App\Api\v1\Requests\TwoFAccountBatchRequest;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Api\v1\Requests\TwoFAccountBatchRequest * TwoFAccountBatchRequestTest test class
*/ */
#[CoversClass(TwoFAccountBatchRequest::class)]
class TwoFAccountBatchRequestTest extends TestCase class TwoFAccountBatchRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -30,8 +33,9 @@ class TwoFAccountBatchRequestTest extends TestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new TwoFAccountBatchRequest(); $request = new TwoFAccountBatchRequest();
@ -43,7 +47,7 @@ class TwoFAccountBatchRequestTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -56,8 +60,9 @@ class TwoFAccountBatchRequestTest extends TestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new TwoFAccountBatchRequest(); $request = new TwoFAccountBatchRequest();
@ -69,7 +74,7 @@ class TwoFAccountBatchRequestTest extends TestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -7,11 +7,13 @@ use App\Api\v1\Requests\TwoFAccountStoreRequest;
use App\Api\v1\Requests\TwoFAccountUriRequest; use App\Api\v1\Requests\TwoFAccountUriRequest;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Api\v1\Requests\TwoFAccountDynamicRequest * TwoFAccountDynamicRequestTest test class
*/ */
#[CoversClass(TwoFAccountDynamicRequest::class)]
class TwoFAccountDynamicRequestTest extends TestCase class TwoFAccountDynamicRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;

View File

@ -6,11 +6,14 @@ use App\Api\v1\Requests\TwoFAccountImportRequest;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Api\v1\Requests\TwoFAccountImportRequest * TwoFAccountImportRequestTest test class
*/ */
#[CoversClass(TwoFAccountImportRequest::class)]
class TwoFAccountImportRequestTest extends TestCase class TwoFAccountImportRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -30,8 +33,9 @@ class TwoFAccountImportRequestTest extends TestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new TwoFAccountImportRequest(); $request = new TwoFAccountImportRequest();
@ -43,7 +47,7 @@ class TwoFAccountImportRequestTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -53,8 +57,9 @@ class TwoFAccountImportRequestTest extends TestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new TwoFAccountImportRequest(); $request = new TwoFAccountImportRequest();
@ -66,7 +71,7 @@ class TwoFAccountImportRequestTest extends TestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -6,11 +6,14 @@ use App\Api\v1\Requests\TwoFAccountReorderRequest;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Api\v1\Requests\TwoFAccountReorderRequest * TwoFAccountReorderRequestTest test class
*/ */
#[CoversClass(TwoFAccountReorderRequest::class)]
class TwoFAccountReorderRequestTest extends TestCase class TwoFAccountReorderRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -30,8 +33,9 @@ class TwoFAccountReorderRequestTest extends TestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new TwoFAccountReorderRequest(); $request = new TwoFAccountReorderRequest();
@ -43,7 +47,7 @@ class TwoFAccountReorderRequestTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -56,8 +60,9 @@ class TwoFAccountReorderRequestTest extends TestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new TwoFAccountReorderRequest(); $request = new TwoFAccountReorderRequest();
@ -69,7 +74,7 @@ class TwoFAccountReorderRequestTest extends TestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -3,15 +3,19 @@
namespace Tests\Api\v1\Requests; namespace Tests\Api\v1\Requests;
use App\Api\v1\Requests\TwoFAccountStoreRequest; use App\Api\v1\Requests\TwoFAccountStoreRequest;
use App\Rules\IsBase32Encoded;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Api\v1\Requests\TwoFAccountStoreRequest * TwoFAccountStoreRequestTest test class
* @covers \App\Rules\IsBase32Encoded
*/ */
#[CoversClass(TwoFAccountStoreRequest::class)]
#[CoversClass(IsBase32Encoded::class)]
class TwoFAccountStoreRequestTest extends TestCase class TwoFAccountStoreRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -31,8 +35,9 @@ class TwoFAccountStoreRequestTest extends TestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new TwoFAccountStoreRequest(); $request = new TwoFAccountStoreRequest();
@ -44,7 +49,7 @@ class TwoFAccountStoreRequestTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -106,8 +111,9 @@ class TwoFAccountStoreRequestTest extends TestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new TwoFAccountStoreRequest(); $request = new TwoFAccountStoreRequest();
@ -119,7 +125,7 @@ class TwoFAccountStoreRequestTest extends TestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -3,15 +3,19 @@
namespace Tests\Api\v1\Requests; namespace Tests\Api\v1\Requests;
use App\Api\v1\Requests\TwoFAccountUpdateRequest; use App\Api\v1\Requests\TwoFAccountUpdateRequest;
use App\Rules\IsBase32Encoded;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Api\v1\Requests\TwoFAccountUpdateRequest * TwoFAccountUpdateRequestTest test class
* @covers \App\Rules\IsBase32Encoded
*/ */
#[CoversClass(TwoFAccountUpdateRequest::class)]
#[CoversClass(IsBase32Encoded::class)]
class TwoFAccountUpdateRequestTest extends TestCase class TwoFAccountUpdateRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -31,8 +35,9 @@ class TwoFAccountUpdateRequestTest extends TestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new TwoFAccountUpdateRequest(); $request = new TwoFAccountUpdateRequest();
@ -44,7 +49,7 @@ class TwoFAccountUpdateRequestTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -82,8 +87,9 @@ class TwoFAccountUpdateRequestTest extends TestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new TwoFAccountUpdateRequest(); $request = new TwoFAccountUpdateRequest();
@ -95,7 +101,7 @@ class TwoFAccountUpdateRequestTest extends TestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -6,11 +6,14 @@ use App\Api\v1\Requests\TwoFAccountUriRequest;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Api\v1\Requests\TwoFAccountUriRequest * TwoFAccountUriRequestTest test class
*/ */
#[CoversClass(TwoFAccountUriRequest::class)]
class TwoFAccountUriRequestTest extends TestCase class TwoFAccountUriRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -30,8 +33,9 @@ class TwoFAccountUriRequestTest extends TestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new TwoFAccountUriRequest(); $request = new TwoFAccountUriRequest();
@ -43,7 +47,7 @@ class TwoFAccountUriRequestTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -60,8 +64,9 @@ class TwoFAccountUriRequestTest extends TestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new TwoFAccountUriRequest(); $request = new TwoFAccountUriRequest();
@ -73,7 +78,7 @@ class TwoFAccountUriRequestTest extends TestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -3,12 +3,15 @@
namespace Tests\Api\v1; namespace Tests\Api\v1;
use App\Models\User; use App\Models\User;
use App\Providers\RouteServiceProvider;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Providers\RouteServiceProvider * ThrottlingTest test class
*/ */
#[CoversClass(RouteServiceProvider::class)]
class ThrottlingTest extends FeatureTestCase class ThrottlingTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,12 +2,15 @@
namespace Tests\Feature\Console; namespace Tests\Feature\Console;
use App\Console\Commands\CheckDbConnection;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Console\Commands\CheckDbConnection * CheckDbConnectionTest test class
*/ */
#[CoversClass(CheckDbConnection::class)]
class CheckDbConnectionTest extends FeatureTestCase class CheckDbConnectionTest extends FeatureTestCase
{ {
/** /**

View File

@ -4,13 +4,16 @@ namespace Tests\Feature\Extensions;
use App\Extensions\RemoteUserProvider; use App\Extensions\RemoteUserProvider;
use App\Models\User; use App\Models\User;
use App\Services\Auth\ReverseProxyGuard;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Extensions\RemoteUserProvider * RemoteUserProviderTest test class
* @covers \App\Services\Auth\ReverseProxyGuard
*/ */
#[CoversClass(RemoteUserProvider::class)]
#[CoversClass(ReverseProxyGuard::class)]
class RemoteUserProviderTest extends FeatureTestCase class RemoteUserProviderTest extends FeatureTestCase
{ {
private const USER_NAME = 'John'; private const USER_NAME = 'John';

View File

@ -2,19 +2,24 @@
namespace Tests\Feature\Http\Auth; namespace Tests\Feature\Http\Auth;
use App\Http\Controllers\Auth\ForgotPasswordController;
use App\Http\Middleware\RejectIfAuthenticated;
use App\Http\Middleware\RejectIfDemoMode;
use App\Models\User; use App\Models\User;
use Illuminate\Auth\Notifications\ResetPassword; use Illuminate\Auth\Notifications\ResetPassword;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Notification;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Controllers\Auth\ForgotPasswordController * ForgotPasswordControllerTest test class
* @covers \App\Models\User
* @covers \App\Http\Middleware\RejectIfDemoMode
* @covers \App\Http\Middleware\RejectIfAuthenticated
*/ */
#[CoversClass(ForgotPasswordController::class)]
#[CoversClass(User::class)]
#[CoversClass(RejectIfDemoMode::class)]
#[CoversClass(RejectIfAuthenticated::class)]
class ForgotPasswordControllerTest extends FeatureTestCase class ForgotPasswordControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,18 +2,25 @@
namespace Tests\Feature\Http\Auth; namespace Tests\Feature\Http\Auth;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Middleware\RejectIfAuthenticated;
use App\Http\Middleware\RejectIfDemoMode;
use App\Http\Middleware\RejectIfReverseProxy;
use App\Http\Middleware\SkipIfAuthenticated;
use App\Models\User; use App\Models\User;
use Illuminate\Support\Carbon; use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Controllers\Auth\LoginController * LoginTest test class
* @covers \App\Http\Middleware\RejectIfAuthenticated
* @covers \App\Http\Middleware\RejectIfReverseProxy
* @covers \App\Http\Middleware\RejectIfDemoMode
* @covers \App\Http\Middleware\SkipIfAuthenticated
*/ */
#[CoversClass(LoginController::class)]
#[CoversClass(RejectIfAuthenticated::class)]
#[CoversClass(RejectIfReverseProxy::class)]
#[CoversClass(RejectIfDemoMode::class)]
#[CoversClass(SkipIfAuthenticated::class)]
class LoginTest extends FeatureTestCase class LoginTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,12 +2,15 @@
namespace Tests\Feature\Http\Auth; namespace Tests\Feature\Http\Auth;
use App\Http\Controllers\Auth\PasswordController;
use App\Models\User; use App\Models\User;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Controllers\Auth\PasswordController * PasswordControllerTest test class
*/ */
#[CoversClass(PasswordController::class)]
class PasswordControllerTest extends FeatureTestCase class PasswordControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -3,14 +3,18 @@
namespace Tests\Feature\Http\Auth; namespace Tests\Feature\Http\Auth;
use App\Facades\Settings; use App\Facades\Settings;
use App\Http\Controllers\Auth\RegisterController;
use App\Http\Requests\UserStoreRequest;
use App\Models\User; use App\Models\User;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Controllers\Auth\RegisterController * RegisterControllerTest test class
* @covers \App\Http\Requests\UserStoreRequest
*/ */
#[CoversClass(RegisterController::class)]
#[CoversClass(UserStoreRequest::class)]
class RegisterControllerTest extends FeatureTestCase class RegisterControllerTest extends FeatureTestCase
{ {
private const USERNAME = 'john doe'; private const USERNAME = 'john doe';

View File

@ -2,16 +2,19 @@
namespace Tests\Feature\Http\Auth; namespace Tests\Feature\Http\Auth;
use App\Http\Controllers\Auth\ResetPasswordController;
use App\Models\User; use App\Models\User;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\Password; use Illuminate\Support\Facades\Password;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Controllers\Auth\ResetPasswordController * ResetPasswordControllerTest test class
* @covers \App\Models\User
*/ */
#[CoversClass(ResetPasswordController::class)]
#[CoversClass(User::class)]
class ResetPasswordControllerTest extends FeatureTestCase class ResetPasswordControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,17 +2,22 @@
namespace Tests\Feature\Http\Auth; namespace Tests\Feature\Http\Auth;
use App\Http\Controllers\Auth\UserController;
use App\Http\Middleware\RejectIfDemoMode;
use App\Http\Requests\UserUpdateRequest;
use App\Models\Group; use App\Models\Group;
use App\Models\TwoFAccount; use App\Models\TwoFAccount;
use App\Models\User; use App\Models\User;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Controllers\Auth\UserController * UserControllerTest test class
* @covers \App\Http\Middleware\RejectIfDemoMode
* @covers \App\Http\Requests\UserUpdateRequest
*/ */
#[CoversClass(UserController::class)]
#[CoversClass(RejectIfDemoMode::class)]
#[CoversClass(UserUpdateRequest::class)]
class UserControllerTest extends FeatureTestCase class UserControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,19 +2,25 @@
namespace Tests\Feature\Http\Auth; namespace Tests\Feature\Http\Auth;
use App\Extensions\WebauthnCredentialBroker;
use App\Http\Controllers\Auth\WebAuthnDeviceLostController;
use App\Http\Requests\WebauthnDeviceLostRequest;
use App\Models\User; use App\Models\User;
use App\Notifications\WebauthnRecoveryNotification; use App\Notifications\WebauthnRecoveryNotification;
use App\Providers\AuthServiceProvider;
use Illuminate\Support\Facades\Lang; use Illuminate\Support\Facades\Lang;
use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Notification;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Controllers\Auth\WebAuthnDeviceLostController * WebAuthnDeviceLostControllerTest test class
* @covers \App\Notifications\WebauthnRecoveryNotification
* @covers \App\Extensions\WebauthnCredentialBroker
* @covers \App\Http\Requests\WebauthnDeviceLostRequest
* @covers \App\Providers\AuthServiceProvider
*/ */
#[CoversClass(WebAuthnDeviceLostController::class)]
#[CoversClass(WebauthnRecoveryNotification::class)]
#[CoversClass(WebauthnCredentialBroker::class)]
#[CoversClass(WebauthnDeviceLostRequest::class)]
#[CoversClass(AuthServiceProvider::class)]
class WebAuthnDeviceLostControllerTest extends FeatureTestCase class WebAuthnDeviceLostControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,18 +2,22 @@
namespace Tests\Feature\Http\Auth; namespace Tests\Feature\Http\Auth;
use App\Extensions\WebauthnTwoFAuthUserProvider;
use App\Http\Controllers\Auth\WebAuthnLoginController;
use App\Models\User; use App\Models\User;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Laragear\WebAuthn\Assertion\Validator\AssertionValidator; use Laragear\WebAuthn\Assertion\Validator\AssertionValidator;
use Laragear\WebAuthn\WebAuthn; use Laragear\WebAuthn\WebAuthn;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Controllers\Auth\WebAuthnLoginController * WebAuthnLoginControllerTest test class
* @covers \App\Models\User
* @covers \App\Extensions\WebauthnTwoFAuthUserProvider
*/ */
#[CoversClass(WebAuthnLoginController::class)]
#[CoversClass(User::class)]
#[CoversClass(WebauthnTwoFAuthUserProvider::class)]
class WebAuthnLoginControllerTest extends FeatureTestCase class WebAuthnLoginControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,16 +2,21 @@
namespace Tests\Feature\Http\Auth; namespace Tests\Feature\Http\Auth;
use App\Http\Controllers\Auth\WebAuthnManageController;
use App\Http\Middleware\RejectIfReverseProxy;
use App\Models\Traits\WebAuthnManageCredentials;
use App\Models\User; use App\Models\User;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Controllers\Auth\WebAuthnManageController * WebAuthnManageControllerTest test class
* @covers \App\Http\Middleware\RejectIfReverseProxy
* @covers \App\Models\Traits\WebAuthnManageCredentials
*/ */
#[CoversClass(WebAuthnManageController::class)]
#[CoversClass(RejectIfReverseProxy::class)]
#[CoversClass(WebAuthnManageCredentials::class)]
class WebAuthnManageControllerTest extends FeatureTestCase class WebAuthnManageControllerTest extends FeatureTestCase
{ {
// use WithoutMiddleware; // use WithoutMiddleware;

View File

@ -2,18 +2,24 @@
namespace Tests\Feature\Http\Auth; namespace Tests\Feature\Http\Auth;
use App\Extensions\WebauthnCredentialBroker;
use App\Http\Controllers\Auth\WebAuthnRecoveryController;
use App\Http\Requests\WebauthnRecoveryRequest;
use App\Models\User; use App\Models\User;
use App\Providers\AuthServiceProvider;
use Database\Factories\UserFactory; use Database\Factories\UserFactory;
use Illuminate\Support\Facades\Date; use Illuminate\Support\Facades\Date;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Controllers\Auth\WebAuthnRecoveryController * WebAuthnRecoveryControllerTest test class
* @covers \App\Extensions\WebauthnCredentialBroker
* @covers \App\Http\Requests\WebauthnRecoveryRequest
* @covers \App\Providers\AuthServiceProvider
*/ */
#[CoversClass(WebAuthnRecoveryController::class)]
#[CoversClass(WebauthnCredentialBroker::class)]
#[CoversClass(WebauthnRecoveryRequest::class)]
#[CoversClass(AuthServiceProvider::class)]
class WebAuthnRecoveryControllerTest extends FeatureTestCase class WebAuthnRecoveryControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -2,17 +2,20 @@
namespace Tests\Feature\Http\Auth; namespace Tests\Feature\Http\Auth;
use App\Http\Controllers\Auth\WebAuthnRegisterController;
use App\Models\User; use App\Models\User;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use Laragear\WebAuthn\Http\Requests\AttestationRequest; use Laragear\WebAuthn\Http\Requests\AttestationRequest;
use Laragear\WebAuthn\Http\Requests\AttestedRequest; use Laragear\WebAuthn\Http\Requests\AttestedRequest;
use Laragear\WebAuthn\JsonTransport; use Laragear\WebAuthn\JsonTransport;
use Laragear\WebAuthn\WebAuthn; use Laragear\WebAuthn\WebAuthn;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Controllers\Auth\WebAuthnRegisterController * WebAuthnRegisterControllerTest test class
*/ */
#[CoversClass(WebAuthnRegisterController::class)]
class WebAuthnRegisterControllerTest extends FeatureTestCase class WebAuthnRegisterControllerTest extends FeatureTestCase
{ {
/** /**

View File

@ -6,11 +6,14 @@ use App\Http\Requests\LoginRequest;
use App\Models\User; use App\Models\User;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Requests\LoginRequest * LoginRequestTest test class
*/ */
#[CoversClass(LoginRequest::class)]
class LoginRequestTest extends FeatureTestCase class LoginRequestTest extends FeatureTestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -26,8 +29,9 @@ class LoginRequestTest extends FeatureTestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
User::factory()->create([ User::factory()->create([
@ -43,7 +47,7 @@ class LoginRequestTest extends FeatureTestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -58,8 +62,9 @@ class LoginRequestTest extends FeatureTestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
User::factory()->create([ User::factory()->create([
@ -75,7 +80,7 @@ class LoginRequestTest extends FeatureTestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -6,11 +6,14 @@ use App\Http\Requests\UserDeleteRequest;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Requests\UserDeleteRequest * UserDeleteRequestTest test class
*/ */
#[CoversClass(UserDeleteRequest::class)]
class UserDeleteRequestTest extends FeatureTestCase class UserDeleteRequestTest extends FeatureTestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -30,8 +33,9 @@ class UserDeleteRequestTest extends FeatureTestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new UserDeleteRequest(); $request = new UserDeleteRequest();
@ -43,7 +47,7 @@ class UserDeleteRequestTest extends FeatureTestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -53,8 +57,9 @@ class UserDeleteRequestTest extends FeatureTestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new UserDeleteRequest(); $request = new UserDeleteRequest();
@ -66,7 +71,7 @@ class UserDeleteRequestTest extends FeatureTestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -6,11 +6,14 @@ use App\Http\Requests\UserPatchPwdRequest;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Http\Requests\UserPatchPwdRequest * UserPatchPwdRequestTest test class
*/ */
#[CoversClass(UserPatchPwdRequest::class)]
class UserPatchPwdRequestTest extends TestCase class UserPatchPwdRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -30,8 +33,9 @@ class UserPatchPwdRequestTest extends TestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new UserPatchPwdRequest(); $request = new UserPatchPwdRequest();
@ -43,7 +47,7 @@ class UserPatchPwdRequestTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -55,8 +59,9 @@ class UserPatchPwdRequestTest extends TestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new UserPatchPwdRequest(); $request = new UserPatchPwdRequest();
@ -68,7 +73,7 @@ class UserPatchPwdRequestTest extends TestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -6,11 +6,14 @@ use App\Http\Requests\UserStoreRequest;
use App\Models\User; use App\Models\User;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Requests\UserStoreRequest * UserStoreRequestTest test class
*/ */
#[CoversClass(UserStoreRequest::class)]
class UserStoreRequestTest extends FeatureTestCase class UserStoreRequestTest extends FeatureTestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -26,8 +29,9 @@ class UserStoreRequestTest extends FeatureTestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
User::factory()->create([ User::factory()->create([
@ -44,7 +48,7 @@ class UserStoreRequestTest extends FeatureTestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -63,8 +67,9 @@ class UserStoreRequestTest extends FeatureTestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
User::factory()->create([ User::factory()->create([
@ -81,7 +86,7 @@ class UserStoreRequestTest extends FeatureTestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -8,11 +8,14 @@ use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use Mockery; use Mockery;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Requests\UserUpdateRequest * UserUpdateRequestTest test class
*/ */
#[CoversClass(UserUpdateRequest::class)]
class UserUpdateRequestTest extends FeatureTestCase class UserUpdateRequestTest extends FeatureTestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -32,8 +35,9 @@ class UserUpdateRequestTest extends FeatureTestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
/** /**
@ -56,7 +60,7 @@ class UserUpdateRequestTest extends FeatureTestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -78,8 +82,9 @@ class UserUpdateRequestTest extends FeatureTestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
/** /**
@ -107,7 +112,7 @@ class UserUpdateRequestTest extends FeatureTestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -5,18 +5,22 @@ namespace Tests\Feature\Http\Requests;
use App\Http\Requests\WebauthnAssertedRequest; use App\Http\Requests\WebauthnAssertedRequest;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Http\Requests\WebauthnAssertedRequest * WebauthnAssertedRequestTest test class
*/ */
#[CoversClass(WebauthnAssertedRequest::class)]
class WebauthnAssertedRequestTest extends TestCase class WebauthnAssertedRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new WebauthnAssertedRequest(); $request = new WebauthnAssertedRequest();
@ -28,7 +32,7 @@ class WebauthnAssertedRequestTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -47,8 +51,9 @@ class WebauthnAssertedRequestTest extends TestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new WebauthnAssertedRequest(); $request = new WebauthnAssertedRequest();
@ -60,7 +65,7 @@ class WebauthnAssertedRequestTest extends TestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -6,11 +6,14 @@ use App\Http\Requests\WebauthnRenameRequest;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Http\Requests\WebauthnRenameRequest * WebauthnRenameRequestTest test class
*/ */
#[CoversClass(WebauthnRenameRequest::class)]
class WebauthnRenameRequestTest extends TestCase class WebauthnRenameRequestTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;
@ -30,8 +33,9 @@ class WebauthnRenameRequestTest extends TestCase
} }
/** /**
* @dataProvider provideValidData * @test
*/ */
#[DataProvider('provideValidData')]
public function test_valid_data(array $data) : void public function test_valid_data(array $data) : void
{ {
$request = new WebauthnRenameRequest(); $request = new WebauthnRenameRequest();
@ -43,7 +47,7 @@ class WebauthnRenameRequestTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideValidData() : array public static function provideValidData() : array
{ {
return [ return [
[[ [[
@ -53,8 +57,9 @@ class WebauthnRenameRequestTest extends TestCase
} }
/** /**
* @dataProvider provideInvalidData * @test
*/ */
#[DataProvider('provideInvalidData')]
public function test_invalid_data(array $data) : void public function test_invalid_data(array $data) : void
{ {
$request = new WebauthnRenameRequest(); $request = new WebauthnRenameRequest();
@ -66,7 +71,7 @@ class WebauthnRenameRequestTest extends TestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideInvalidData() : array public static function provideInvalidData() : array
{ {
return [ return [
[[ [[

View File

@ -2,14 +2,17 @@
namespace Tests\Feature\Http; namespace Tests\Feature\Http;
use App\Http\Controllers\SystemController;
use App\Models\User; use App\Models\User;
use App\Services\ReleaseRadarService; use App\Services\ReleaseRadarService;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Http\Controllers\SystemController * SystemControllerTest test class
*/ */
#[CoversClass(SystemController::class)]
class SystemControllerTest extends FeatureTestCase class SystemControllerTest extends FeatureTestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;

View File

@ -9,13 +9,16 @@ use Illuminate\Http\Testing\FileFactory;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Mockery\MockInterface; use Mockery\MockInterface;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\Data\HttpRequestTestData; use Tests\Data\HttpRequestTestData;
use Tests\Data\OtpTestData; use Tests\Data\OtpTestData;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Models\TwoFAccount * TwoFAccountModelTest test class
*/ */
#[CoversClass(TwoFAccount::class)]
class TwoFAccountModelTest extends FeatureTestCase class TwoFAccountModelTest extends FeatureTestCase
{ {
/** /**
@ -739,9 +742,8 @@ class TwoFAccountModelTest extends FeatureTestCase
/** /**
* @test * @test
*
* @dataProvider iconResourceProvider
*/ */
#[DataProvider('iconResourceProvider')]
public function test_set_icon_stores_and_set_the_icon($res, $ext) public function test_set_icon_stores_and_set_the_icon($res, $ext)
{ {
Storage::fake('imagesLink'); Storage::fake('imagesLink');
@ -759,7 +761,7 @@ class TwoFAccountModelTest extends FeatureTestCase
/** /**
* Provide data for Icon store tests * Provide data for Icon store tests
*/ */
public function iconResourceProvider() public static function iconResourceProvider()
{ {
return [ return [
'PNG' => [ 'PNG' => [
@ -787,9 +789,8 @@ class TwoFAccountModelTest extends FeatureTestCase
/** /**
* @test * @test
*
* @dataProvider invalidIconResourceProvider
*/ */
#[DataProvider('invalidIconResourceProvider')]
public function test_set_invalid_icon_ends_without_error($res, $ext) public function test_set_invalid_icon_ends_without_error($res, $ext)
{ {
Storage::fake('imagesLink'); Storage::fake('imagesLink');
@ -807,7 +808,7 @@ class TwoFAccountModelTest extends FeatureTestCase
/** /**
* Provide data for Icon store tests * Provide data for Icon store tests
*/ */
public function invalidIconResourceProvider() public static function invalidIconResourceProvider()
{ {
return [ return [
'INVALID_PNG' => [ 'INVALID_PNG' => [

View File

@ -3,11 +3,13 @@
namespace Tests\Feature\Models; namespace Tests\Feature\Models;
use App\Models\User; use App\Models\User;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Models\User * UserModelTest test class
*/ */
#[CoversClass(User::class)]
class UserModelTest extends FeatureTestCase class UserModelTest extends FeatureTestCase
{ {
/** /**

View File

@ -6,13 +6,16 @@ use App\Facades\Groups;
use App\Models\Group; use App\Models\Group;
use App\Models\TwoFAccount; use App\Models\TwoFAccount;
use App\Models\User; use App\Models\User;
use App\Services\GroupService;
use Illuminate\Auth\Access\AuthorizationException; use Illuminate\Auth\Access\AuthorizationException;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Services\GroupService * GroupServiceTest test class
* @covers \App\Facades\Groups
*/ */
#[CoversClass(GroupService::class)]
#[CoversClass(Groups::class)]
class GroupServiceTest extends FeatureTestCase class GroupServiceTest extends FeatureTestCase
{ {
/** /**

View File

@ -6,12 +6,14 @@ use App\Services\LogoService;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\Data\HttpRequestTestData; use Tests\Data\HttpRequestTestData;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Services\LogoService * LogoServiceTest test class
*/ */
#[CoversClass(LogoService::class)]
class LogoServiceTest extends TestCase class LogoServiceTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;

View File

@ -3,13 +3,16 @@
namespace Tests\Feature\Services; namespace Tests\Feature\Services;
use App\Facades\QrCode; use App\Facades\QrCode;
use App\Services\QrCodeService;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\Classes\LocalFile; use Tests\Classes\LocalFile;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Services\QrCodeService * QrCodeServiceTest test class
* @covers \App\Facades\QrCode
*/ */
#[CoversClass(QrCodeService::class)]
#[CoversClass(QrCode::class)]
class QrCodeServiceTest extends FeatureTestCase class QrCodeServiceTest extends FeatureTestCase
{ {
private const STRING_TO_ENCODE = 'stringToEncode'; private const STRING_TO_ENCODE = 'stringToEncode';

View File

@ -7,12 +7,14 @@ use App\Facades\Settings;
use Facades\App\Services\ReleaseRadarService; use Facades\App\Services\ReleaseRadarService;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\Data\HttpRequestTestData; use Tests\Data\HttpRequestTestData;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Services\ReleaseRadarService * ReleaseRadarServiceTest test class
*/ */
#[CoversClass(App\Services\ReleaseRadarService::class)]
class ReleaseRadarServiceTest extends FeatureTestCase class ReleaseRadarServiceTest extends FeatureTestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;

View File

@ -8,12 +8,15 @@ use App\Services\SettingService;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Services\SettingService * SettingServiceTest test class
* @covers \App\Facades\Settings
*/ */
#[CoversClass(SettingService::class)]
#[CoversClass(Settings::class)]
class SettingServiceTest extends FeatureTestCase class SettingServiceTest extends FeatureTestCase
{ {
/** /**
@ -237,9 +240,8 @@ class SettingServiceTest extends FeatureTestCase
/** /**
* @test * @test
*
* @dataProvider provideUndecipherableData
*/ */
#[DataProvider('provideUndecipherableData')]
public function test_set_useEncryption_off_returns_exception_when_data_are_undecipherable(array $data) public function test_set_useEncryption_off_returns_exception_when_data_are_undecipherable(array $data)
{ {
$this->expectException(\App\Exceptions\DbEncryptionException::class); $this->expectException(\App\Exceptions\DbEncryptionException::class);
@ -258,7 +260,7 @@ class SettingServiceTest extends FeatureTestCase
/** /**
* Provide invalid data for validation test * Provide invalid data for validation test
*/ */
public function provideUndecipherableData() : array public static function provideUndecipherableData() : array
{ {
return [ return [
[[ [[

View File

@ -6,14 +6,17 @@ use App\Facades\TwoFAccounts;
use App\Models\Group; use App\Models\Group;
use App\Models\TwoFAccount; use App\Models\TwoFAccount;
use App\Models\User; use App\Models\User;
use App\Services\TwoFAccountService;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\Data\MigrationTestData; use Tests\Data\MigrationTestData;
use Tests\Data\OtpTestData; use Tests\Data\OtpTestData;
use Tests\FeatureTestCase; use Tests\FeatureTestCase;
/** /**
* @covers \App\Services\TwoFAccountService * TwoFAccountServiceTest test class
* @covers \App\Facades\TwoFAccounts
*/ */
#[CoversClass(TwoFAccountService::class)]
#[CoversClass(TwoFAccounts::class)]
class TwoFAccountServiceTest extends FeatureTestCase class TwoFAccountServiceTest extends FeatureTestCase
{ {
/** /**

View File

@ -13,11 +13,13 @@ use App\Models\User;
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Mockery; use Mockery;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Api\v1\Controllers\GroupController * GroupControllerTest test class
*/ */
#[CoversClass(GroupController::class)]
class GroupControllerTest extends TestCase class GroupControllerTest extends TestCase
{ {
use WithoutMiddleware; use WithoutMiddleware;

View File

@ -4,11 +4,13 @@ namespace Tests\Unit\Events;
use App\Events\GroupDeleted; use App\Events\GroupDeleted;
use App\Models\Group; use App\Models\Group;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Events\GroupDeleted * GroupDeletedTest test class
*/ */
#[CoversClass(GroupDeleted::class)]
class GroupDeletedTest extends TestCase class GroupDeletedTest extends TestCase
{ {
/** /**

View File

@ -4,11 +4,13 @@ namespace Tests\Unit\Events;
use App\Events\GroupDeleting; use App\Events\GroupDeleting;
use App\Models\Group; use App\Models\Group;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Events\GroupDeleting * GroupDeletingTest test class
*/ */
#[CoversClass(GroupDeleting::class)]
class GroupDeletingTest extends TestCase class GroupDeletingTest extends TestCase
{ {
/** /**

View File

@ -6,11 +6,13 @@ use App\Events\TwoFAccountDeleted;
use App\Models\TwoFAccount; use App\Models\TwoFAccount;
use App\Services\SettingService; use App\Services\SettingService;
use Mockery\MockInterface; use Mockery\MockInterface;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Events\TwoFAccountDeleted * TwoFAccountDeletedTest test class
*/ */
#[CoversClass(TwoFAccountDeleted::class)]
class TwoFAccountDeletedTest extends TestCase class TwoFAccountDeletedTest extends TestCase
{ {
/** /**

View File

@ -15,18 +15,20 @@ use App\Exceptions\UnsupportedOtpTypeException;
use Illuminate\Contracts\Container\Container; use Illuminate\Contracts\Container\Container;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Exceptions\Handler * HandlerTest test class
*/ */
#[CoversClass(Handler::class)]
class HandlerTest extends TestCase class HandlerTest extends TestCase
{ {
/** /**
* @test * @test
*
* @dataProvider provideExceptionsforBadRequest
*/ */
#[DataProvider('provideExceptionsforBadRequest')]
public function test_exceptions_returns_badRequest_json_response($exception) public function test_exceptions_returns_badRequest_json_response($exception)
{ {
$request = $this->createMock(Request::class); $request = $this->createMock(Request::class);
@ -50,7 +52,7 @@ class HandlerTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideExceptionsforBadRequest() : array public static function provideExceptionsforBadRequest() : array
{ {
return [ return [
[ [
@ -85,9 +87,8 @@ class HandlerTest extends TestCase
/** /**
* @test * @test
*
* @dataProvider provideExceptionsforNotFound
*/ */
#[DataProvider('provideExceptionsforNotFound')]
public function test_exceptions_returns_notFound_json_response($exception) public function test_exceptions_returns_notFound_json_response($exception)
{ {
$request = $this->createMock(Request::class); $request = $this->createMock(Request::class);
@ -111,7 +112,7 @@ class HandlerTest extends TestCase
/** /**
* Provide Valid data for validation test * Provide Valid data for validation test
*/ */
public function provideExceptionsforNotFound() : array public static function provideExceptionsforNotFound() : array
{ {
return [ return [
[ [

View File

@ -7,11 +7,13 @@ use App\Events\GroupDeleting;
use App\Models\Group; use App\Models\Group;
use App\Models\TwoFAccount; use App\Models\TwoFAccount;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\ModelTestCase; use Tests\ModelTestCase;
/** /**
* @covers \App\Models\Group * GroupModelTest test class
*/ */
#[CoversClass(Group::class)]
class GroupModelTest extends ModelTestCase class GroupModelTest extends ModelTestCase
{ {
/** /**

View File

@ -3,18 +3,20 @@
namespace Tests\Unit; namespace Tests\Unit;
use App\Helpers\Helpers; use App\Helpers\Helpers;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Helpers\Helpers * HelpersTest test class
*/ */
#[CoversClass(Helpers::class)]
class HelpersTest extends TestCase class HelpersTest extends TestCase
{ {
/** /**
* @test * @test
*
* @dataProvider versionNumberProvider
*/ */
#[DataProvider('versionNumberProvider')]
public function test_cleanVersionNumber_returns_cleaned_version($dirtyVersion, $expected) public function test_cleanVersionNumber_returns_cleaned_version($dirtyVersion, $expected)
{ {
$cleanedVersion = Helpers::cleanVersionNumber($dirtyVersion); $cleanedVersion = Helpers::cleanVersionNumber($dirtyVersion);
@ -25,7 +27,7 @@ class HelpersTest extends TestCase
/** /**
* Provide data for cleanVersionNumber() tests * Provide data for cleanVersionNumber() tests
*/ */
public function versionNumberProvider() public static function versionNumberProvider()
{ {
return [ return [
[ [
@ -49,9 +51,8 @@ class HelpersTest extends TestCase
/** /**
* @test * @test
*
* @dataProvider invalidVersionNumberProvider
*/ */
#[DataProvider('invalidVersionNumberProvider')]
public function test_cleanVersionNumber_returns_false_with_invalid_semver($dirtyVersion) public function test_cleanVersionNumber_returns_false_with_invalid_semver($dirtyVersion)
{ {
$cleanedVersion = Helpers::cleanVersionNumber($dirtyVersion); $cleanedVersion = Helpers::cleanVersionNumber($dirtyVersion);
@ -62,7 +63,7 @@ class HelpersTest extends TestCase
/** /**
* Provide data for cleanVersionNumber() tests * Provide data for cleanVersionNumber() tests
*/ */
public function invalidVersionNumberProvider() public static function invalidVersionNumberProvider()
{ {
return [ return [
[ [
@ -85,9 +86,8 @@ class HelpersTest extends TestCase
/** /**
* @test * @test
*
* @dataProvider toBase32PaddedStringProvider
*/ */
#[DataProvider('toBase32PaddedStringProvider')]
public function test_toBase32Format_returns_base32_formated_string($str, $expected) public function test_toBase32Format_returns_base32_formated_string($str, $expected)
{ {
$base32str = Helpers::PadToBase32Format($str); $base32str = Helpers::PadToBase32Format($str);
@ -98,7 +98,7 @@ class HelpersTest extends TestCase
/** /**
* Provide data for cleanVersionNumber() tests * Provide data for cleanVersionNumber() tests
*/ */
public function toBase32PaddedStringProvider() public static function toBase32PaddedStringProvider()
{ {
return [ return [
'SHORT_STRING' => [ 'SHORT_STRING' => [
@ -138,9 +138,8 @@ class HelpersTest extends TestCase
/** /**
* @test * @test
*
* @dataProvider commaSeparatedToArrayProvider
*/ */
#[DataProvider('commaSeparatedToArrayProvider')]
public function test_commaSeparatedToArray_returns_ids_in_array($str, $expected) public function test_commaSeparatedToArray_returns_ids_in_array($str, $expected)
{ {
$array = Helpers::commaSeparatedToArray($str); $array = Helpers::commaSeparatedToArray($str);
@ -151,7 +150,7 @@ class HelpersTest extends TestCase
/** /**
* Provide data for cleanVersionNumber() tests * Provide data for cleanVersionNumber() tests
*/ */
public function commaSeparatedToArrayProvider() public static function commaSeparatedToArrayProvider()
{ {
return [ return [
'NOMINAL' => [ 'NOMINAL' => [
@ -167,9 +166,8 @@ class HelpersTest extends TestCase
/** /**
* @test * @test
*
* @dataProvider invalidCommaSeparatedToArrayProvider
*/ */
#[DataProvider('invalidCommaSeparatedToArrayProvider')]
public function test_commaSeparatedToArray_returns_unchanged_ids($str, $expected) public function test_commaSeparatedToArray_returns_unchanged_ids($str, $expected)
{ {
$array = Helpers::commaSeparatedToArray($str); $array = Helpers::commaSeparatedToArray($str);
@ -180,7 +178,7 @@ class HelpersTest extends TestCase
/** /**
* Provide data for cleanVersionNumber() tests * Provide data for cleanVersionNumber() tests
*/ */
public function invalidCommaSeparatedToArrayProvider() public static function invalidCommaSeparatedToArrayProvider()
{ {
return [ return [
'INVALID_IDS_LEADING_SPACES' => [ 'INVALID_IDS_LEADING_SPACES' => [

View File

@ -9,11 +9,13 @@ use App\Services\SettingService;
use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Mockery\MockInterface; use Mockery\MockInterface;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Listeners\CleanIconStorage * CleanIconStorageTest test class
*/ */
#[CoversClass(CleanIconStorage::class)]
class CleanIconStorageTest extends TestCase class CleanIconStorageTest extends TestCase
{ {
/** /**

View File

@ -8,20 +8,22 @@ use App\Models\Group;
use App\Models\TwoFAccount; use App\Models\TwoFAccount;
use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Event;
use Mockery\MockInterface; use Mockery\MockInterface;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\PreserveGlobalState;
use PHPUnit\Framework\Attributes\RunInSeparateProcess;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Listeners\DissociateTwofaccountFromGroup * DissociateTwofaccountFromGroupTest test class
*/ */
#[CoversClass(DissociateTwofaccountFromGroup::class)]
class DissociateTwofaccountFromGroupTest extends TestCase class DissociateTwofaccountFromGroupTest extends TestCase
{ {
/** /**
* @test * @test
*
* @runInSeparateProcess
*
* @preserveGlobalState disabled
*/ */
#[RunInSeparateProcess]
#[PreserveGlobalState(false)]
public function test_twofaccount_is_released_on_group_deletion() public function test_twofaccount_is_released_on_group_deletion()
{ {
$this->mock('alias:' . TwoFAccount::class, function (MockInterface $twoFAccount) { $this->mock('alias:' . TwoFAccount::class, function (MockInterface $twoFAccount) {

View File

@ -7,11 +7,13 @@ use App\Listeners\ReleaseRadar;
use App\Services\ReleaseRadarService; use App\Services\ReleaseRadarService;
use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Event;
use Mockery\MockInterface; use Mockery\MockInterface;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Listeners\ReleaseRadar * ReleaseRadarTest test class
*/ */
#[CoversClass(ReleaseRadar::class)]
class ReleaseRadarTest extends TestCase class ReleaseRadarTest extends TestCase
{ {
/** /**

View File

@ -5,11 +5,13 @@ namespace Tests\Unit\Listeners;
use App\Events\GroupDeleted; use App\Events\GroupDeleted;
use App\Listeners\ResetUsersPreference; use App\Listeners\ResetUsersPreference;
use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Event;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Listeners\ResetUsersPreference * ResetUsersPreferenceTest test class
*/ */
#[CoversClass(ResetUsersPreference::class)]
class ResetUsersPreferenceTest extends TestCase class ResetUsersPreferenceTest extends TestCase
{ {
/** /**

View File

@ -7,6 +7,7 @@ use App\Exceptions\InvalidMigrationDataException;
use App\Exceptions\UnsupportedMigrationException; use App\Exceptions\UnsupportedMigrationException;
use App\Factories\MigratorFactory; use App\Factories\MigratorFactory;
use App\Models\TwoFAccount; use App\Models\TwoFAccount;
use App\Providers\MigrationServiceProvider;
use App\Services\Migrators\AegisMigrator; use App\Services\Migrators\AegisMigrator;
use App\Services\Migrators\GoogleAuthMigrator; use App\Services\Migrators\GoogleAuthMigrator;
use App\Services\Migrators\Migrator; use App\Services\Migrators\Migrator;
@ -18,22 +19,27 @@ use Illuminate\Support\Facades\Storage;
use Mockery; use Mockery;
use Mockery\MockInterface; use Mockery\MockInterface;
use ParagonIE\ConstantTime\Base32; use ParagonIE\ConstantTime\Base32;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\PreserveGlobalState;
use PHPUnit\Framework\Attributes\RunInSeparateProcess;
use PHPUnit\Framework\Attributes\UsesClass;
use Tests\Data\MigrationTestData; use Tests\Data\MigrationTestData;
use Tests\Data\OtpTestData; use Tests\Data\OtpTestData;
use Tests\TestCase; use Tests\TestCase;
/** /**
* @covers \App\Providers\MigrationServiceProvider * MigratorTest test class
* @covers \App\Factories\MigratorFactory
* @covers \App\Services\Migrators\Migrator
* @covers \App\Services\Migrators\AegisMigrator
* @covers \App\Services\Migrators\TwoFASMigrator
* @covers \App\Services\Migrators\PlainTextMigrator
* @covers \App\Services\Migrators\GoogleAuthMigrator
* @covers \App\Services\Migrators\TwoFAuthMigrator
*
* @uses \App\Models\TwoFAccount
*/ */
#[CoversClass(MigrationServiceProvider::class)]
#[CoversClass(MigratorFactory::class)]
#[CoversClass(Migrator::class)]
#[CoversClass(AegisMigrator::class)]
#[CoversClass(TwoFASMigrator::class)]
#[CoversClass(PlainTextMigrator::class)]
#[CoversClass(GoogleAuthMigrator::class)]
#[CoversClass(TwoFAuthMigrator::class)]
#[UsesClass(TwoFAccount::class)]
class MigratorTest extends TestCase class MigratorTest extends TestCase
{ {
/** /**
@ -137,9 +143,8 @@ class MigratorTest extends TestCase
/** /**
* @test * @test
*
* @dataProvider validMigrationsProvider
*/ */
#[DataProvider('validMigrationsProvider')]
public function test_migrate_returns_consistent_accounts(Migrator $migrator, mixed $payload, string $expected, bool $hasSteam) public function test_migrate_returns_consistent_accounts(Migrator $migrator, mixed $payload, string $expected, bool $hasSteam)
{ {
$accounts = $migrator->migrate($payload); $accounts = $migrator->migrate($payload);
@ -170,7 +175,7 @@ class MigratorTest extends TestCase
/** /**
* Provide data for TwoFAccount store tests * Provide data for TwoFAccount store tests
*/ */
public function validMigrationsProvider() public static function validMigrationsProvider()
{ {
return [ return [
'PLAIN_TEXT_PAYLOAD' => [ 'PLAIN_TEXT_PAYLOAD' => [
@ -214,9 +219,8 @@ class MigratorTest extends TestCase
/** /**
* @test * @test
*
* @dataProvider invalidMigrationsProvider
*/ */
#[DataProvider('invalidMigrationsProvider')]
public function test_migrate_with_invalid_payload_returns_InvalidMigrationDataException(Migrator $migrator, mixed $payload) public function test_migrate_with_invalid_payload_returns_InvalidMigrationDataException(Migrator $migrator, mixed $payload)
{ {
$this->expectException(InvalidMigrationDataException::class); $this->expectException(InvalidMigrationDataException::class);
@ -227,7 +231,7 @@ class MigratorTest extends TestCase
/** /**
* Provide data for TwoFAccount store tests * Provide data for TwoFAccount store tests
*/ */
public function invalidMigrationsProvider() public static function invalidMigrationsProvider()
{ {
return [ return [
'INVALID_PLAIN_TEXT_NO_URI' => [ 'INVALID_PLAIN_TEXT_NO_URI' => [
@ -284,9 +288,8 @@ class MigratorTest extends TestCase
/** /**
* @test * @test
*
* @dataProvider migrationWithInvalidAccountsProvider
*/ */
#[DataProvider('migrationWithInvalidAccountsProvider')]
public function test_migrate_returns_fake_accounts(Migrator $migrator, mixed $payload) public function test_migrate_returns_fake_accounts(Migrator $migrator, mixed $payload)
{ {
$accounts = $migrator->migrate($payload); $accounts = $migrator->migrate($payload);
@ -303,7 +306,7 @@ class MigratorTest extends TestCase
/** /**
* Provide data for TwoFAccount store tests * Provide data for TwoFAccount store tests
*/ */
public function migrationWithInvalidAccountsProvider() public static function migrationWithInvalidAccountsProvider()
{ {
return [ return [
'PLAIN_TEXT_PAYLOAD_WITH_INVALID_URI' => [ 'PLAIN_TEXT_PAYLOAD_WITH_INVALID_URI' => [
@ -327,11 +330,9 @@ class MigratorTest extends TestCase
/** /**
* @test * @test
*
* @runInSeparateProcess
*
* @preserveGlobalState disabled
*/ */
#[RunInSeparateProcess]
#[PreserveGlobalState(false)]
public function test_migrate_gauth_returns_fake_accounts() public function test_migrate_gauth_returns_fake_accounts()
{ {
$this->mock('alias:' . Base32::class, function (MockInterface $baseEncoder) { $this->mock('alias:' . Base32::class, function (MockInterface $baseEncoder) {
@ -353,9 +354,8 @@ class MigratorTest extends TestCase
/** /**
* @test * @test
*
* @dataProvider AegisWithIconMigrationProvider
*/ */
#[DataProvider('AegisWithIconMigrationProvider')]
public function test_migrate_aegis_payload_with_icon_sets_and_stores_the_icon($migration) public function test_migrate_aegis_payload_with_icon_sets_and_stores_the_icon($migration)
{ {
Storage::fake('icons'); Storage::fake('icons');
@ -372,7 +372,7 @@ class MigratorTest extends TestCase
/** /**
* Provide data for TwoFAccount store tests * Provide data for TwoFAccount store tests
*/ */
public function AegisWithIconMigrationProvider() public static function AegisWithIconMigrationProvider()
{ {
return [ return [
'SVG' => [ 'SVG' => [
@ -406,9 +406,8 @@ class MigratorTest extends TestCase
/** /**
* @test * @test
*
* @dataProvider TwoFAuthWithIconMigrationProvider
*/ */
#[DataProvider('TwoFAuthWithIconMigrationProvider')]
public function test_migrate_2fauth_payload_with_icon_sets_and_stores_the_icon($migration) public function test_migrate_2fauth_payload_with_icon_sets_and_stores_the_icon($migration)
{ {
Storage::fake('icons'); Storage::fake('icons');
@ -425,7 +424,7 @@ class MigratorTest extends TestCase
/** /**
* Provide data for TwoFAccount store tests * Provide data for TwoFAccount store tests
*/ */
public function TwoFAuthWithIconMigrationProvider() public static function TwoFAuthWithIconMigrationProvider()
{ {
return [ return [
'SVG' => [ 'SVG' => [
@ -465,9 +464,8 @@ class MigratorTest extends TestCase
/** /**
* @test * @test
*
* @dataProvider factoryProvider
*/ */
#[DataProvider('factoryProvider')]
public function test_factory_returns_relevant_migrator($payload, $migratorClass) public function test_factory_returns_relevant_migrator($payload, $migratorClass)
{ {
$factory = new MigratorFactory(); $factory = new MigratorFactory();
@ -480,7 +478,7 @@ class MigratorTest extends TestCase
/** /**
* Provide data for TwoFAccount store tests * Provide data for TwoFAccount store tests
*/ */
public function factoryProvider() public static function factoryProvider()
{ {
return [ return [
'VALID_PLAIN_TEXT_PAYLOAD' => [ 'VALID_PLAIN_TEXT_PAYLOAD' => [
@ -523,9 +521,8 @@ class MigratorTest extends TestCase
/** /**
* @test * @test
*
* @dataProvider encryptedMigrationDataProvider
*/ */
#[DataProvider('encryptedMigrationDataProvider')]
public function test_factory_throw_EncryptedMigrationException($payload) public function test_factory_throw_EncryptedMigrationException($payload)
{ {
$this->expectException(EncryptedMigrationException::class); $this->expectException(EncryptedMigrationException::class);
@ -538,7 +535,7 @@ class MigratorTest extends TestCase
/** /**
* Provide data for TwoFAccount store tests * Provide data for TwoFAccount store tests
*/ */
public function encryptedMigrationDataProvider() public static function encryptedMigrationDataProvider()
{ {
return [ return [
'ENCRYPTED_AEGIS_JSON_MIGRATION_PAYLOAD' => [ 'ENCRYPTED_AEGIS_JSON_MIGRATION_PAYLOAD' => [

View File

@ -9,11 +9,16 @@ use App\Services\SettingService;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\Crypt;
use Mockery\MockInterface; use Mockery\MockInterface;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\PreserveGlobalState;
use PHPUnit\Framework\Attributes\RunInSeparateProcess;
use Tests\ModelTestCase; use Tests\ModelTestCase;
/** /**
* @covers \App\Models\TwoFAccount * TwoFAccountModelTest test class
*/ */
#[CoversClass(TwoFAccount::class)]
class TwoFAccountModelTest extends ModelTestCase class TwoFAccountModelTest extends ModelTestCase
{ {
/** /**
@ -39,9 +44,8 @@ class TwoFAccountModelTest extends ModelTestCase
/** /**
* @test * @test
*
* @dataProvider provideSensitiveAttributes
*/ */
#[DataProvider('provideSensitiveAttributes')]
public function test_sensitive_attributes_are_stored_encrypted(string $attribute) public function test_sensitive_attributes_are_stored_encrypted(string $attribute)
{ {
$settingService = $this->mock(SettingService::class, function (MockInterface $settingService) { $settingService = $this->mock(SettingService::class, function (MockInterface $settingService) {
@ -60,7 +64,7 @@ class TwoFAccountModelTest extends ModelTestCase
/** /**
* Provide attributes to test for encryption * Provide attributes to test for encryption
*/ */
public function provideSensitiveAttributes() : array public static function provideSensitiveAttributes() : array
{ {
return [ return [
[ [
@ -77,9 +81,8 @@ class TwoFAccountModelTest extends ModelTestCase
/** /**
* @test * @test
*
* @dataProvider provideSensitiveAttributes
*/ */
#[DataProvider('provideSensitiveAttributes')]
public function test_sensitive_attributes_are_returned_clear(string $attribute) public function test_sensitive_attributes_are_returned_clear(string $attribute)
{ {
$settingService = $this->mock(SettingService::class, function (MockInterface $settingService) { $settingService = $this->mock(SettingService::class, function (MockInterface $settingService) {
@ -95,9 +98,8 @@ class TwoFAccountModelTest extends ModelTestCase
/** /**
* @test * @test
*
* @dataProvider provideSensitiveAttributes
*/ */
#[DataProvider('provideSensitiveAttributes')]
public function test_indecipherable_attributes_returns_masked_value(string $attribute) public function test_indecipherable_attributes_returns_masked_value(string $attribute)
{ {
$settingService = $this->mock(SettingService::class, function (MockInterface $settingService) { $settingService = $this->mock(SettingService::class, function (MockInterface $settingService) {
@ -116,11 +118,9 @@ class TwoFAccountModelTest extends ModelTestCase
/** /**
* @test * @test
*
* @runInSeparateProcess
*
* @preserveGlobalState disabled
*/ */
#[RunInSeparateProcess]
#[PreserveGlobalState(false)]
public function test_secret_is_uppercased_and_padded_at_setup() public function test_secret_is_uppercased_and_padded_at_setup()
{ {
$settingService = $this->mock(SettingService::class, function (MockInterface $settingService) { $settingService = $this->mock(SettingService::class, function (MockInterface $settingService) {

View File

@ -5,11 +5,13 @@ namespace Tests\Unit;
use App\Models\Group; use App\Models\Group;
use App\Models\TwoFAccount; use App\Models\TwoFAccount;
use App\Models\User; use App\Models\User;
use PHPUnit\Framework\Attributes\CoversClass;
use Tests\ModelTestCase; use Tests\ModelTestCase;
/** /**
* @covers \App\Models\User * UserModelTest test class
*/ */
#[CoversClass(User::class)]
class UserModelTest extends ModelTestCase class UserModelTest extends ModelTestCase
{ {
/** /**