- Added namespaces to various architecture test files for consistency. - Created a new integration test suite in phpunit.xml.
33 lines
1 KiB
PHP
33 lines
1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Tests\Architecture;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
describe('Infra Architecture Rules', function (): void {
|
|
arch('Infra does not depend on App namespace')
|
|
->expect('Infra')
|
|
->not->toUse('App');
|
|
|
|
arch('Infra Eloquent Database Models extend Eloquent Model')
|
|
->expect('Infra\Database\Models')
|
|
->toExtend(Model::class);
|
|
|
|
arch('Infra Eloquent Database Models are final')
|
|
->expect('Infra\Database\Models')
|
|
->toBeFinal();
|
|
|
|
arch('Infra adapters implement Domain Ports')
|
|
->expect('Infra\Adapters\Directories\EloquentEmployeeDirectory')
|
|
->toImplement('Domain\Ports\Directories\EmployeeDirectory');
|
|
|
|
arch('Infra EloquentEmployeeRepository implements Domain EmployeeRepository port')
|
|
->expect('Infra\Adapters\Repositories\EloquentEmployeeRepository')
|
|
->toImplement('Domain\Ports\Repositories\EmployeeRepository');
|
|
|
|
arch('Infra layer uses strict types')
|
|
->expect('Infra')
|
|
->toUseStrictTypes();
|
|
});
|