Files
netslim-core/tests/Architecture/ApplicationServiceDoctrineTest.php
2026-03-20 22:13:41 +01:00

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);
}
}