46 lines
2.5 KiB
PHP
46 lines
2.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Tests\Architecture;
|
|
|
|
use Tests\Architecture\Support\ArchitectureTestCase;
|
|
|
|
final class ApplicationServiceDoctrineTest extends ArchitectureTestCase
|
|
{
|
|
public function testAuthApplicationServiceKeepsSensitiveAuthenticationLogicInUseCases(): void
|
|
{
|
|
$file = $this->projectPath('src/Identity/Application/AuthApplicationService.php');
|
|
$code = $this->normalizedCode($file);
|
|
|
|
self::assertStringContainsString('Netig\Netslim\\Identity\\Application\\UseCase\\AuthenticateUser', $code);
|
|
self::assertStringContainsString('Netig\Netslim\\Identity\\Application\\UseCase\\ChangePassword', $code);
|
|
self::assertStringNotContainsString('Netig\Netslim\\Identity\\Domain\\Repository\\UserRepositoryInterface', $code);
|
|
self::assertStringNotContainsString('Netig\Netslim\\Identity\\Domain\\Policy\\PasswordPolicy', $code);
|
|
}
|
|
|
|
public function testPasswordResetApplicationServiceDelegatesWorkflowToUseCases(): void
|
|
{
|
|
$file = $this->projectPath('src/Identity/Application/PasswordResetApplicationService.php');
|
|
$code = $this->normalizedCode($file);
|
|
|
|
self::assertStringContainsString('Netig\Netslim\\Identity\\Application\\UseCase\\RequestPasswordReset', $code);
|
|
self::assertStringContainsString('Netig\Netslim\\Identity\\Application\\UseCase\\ValidatePasswordResetToken', $code);
|
|
self::assertStringContainsString('Netig\Netslim\\Identity\\Application\\UseCase\\ResetPassword', $code);
|
|
self::assertStringNotContainsString('Netig\Netslim\\Identity\\Domain\\Repository\\PasswordResetRepositoryInterface', $code);
|
|
self::assertStringNotContainsString('Netig\Netslim\\Kernel\\Mail\\Application\\MailServiceInterface', $code);
|
|
self::assertStringNotContainsString('Netig\Netslim\\Kernel\\Persistence\\Application\\TransactionManagerInterface', $code);
|
|
}
|
|
|
|
public function testMediaApplicationServiceDelegatesMutationsToUseCases(): void
|
|
{
|
|
$file = $this->projectPath('src/Media/Application/MediaApplicationService.php');
|
|
$code = $this->normalizedCode($file);
|
|
|
|
self::assertStringContainsString('Netig\Netslim\\Media\\Application\\UseCase\\StoreMedia', $code);
|
|
self::assertStringContainsString('Netig\Netslim\\Media\\Application\\UseCase\\DeleteMedia', $code);
|
|
self::assertStringNotContainsString('Netig\Netslim\\Media\\Domain\\Service\\MediaStorageInterface', $code);
|
|
self::assertStringNotContainsString('PDOException', $code);
|
|
}
|
|
}
|