ldc-arcadia-api/tests/Unit/Shared/ValueObjects/Config/AppNameTest.php

42 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
namespace Tests\Unit\Shared\ValueObjects\Config;
use Shared\ValueObjects\Config\AppName;
covers(AppName::class);
describe('AppName Value Object Unit Tests', function (): void {
it('creates valid application name', function (): void {
// GIVEN
$name = new AppName(' Arcadia API ');
// THEN
expect($name->value)->toBe('Arcadia API')
->and((string) $name)->toBe('Arcadia API');
});
it('rejects empty application name', function (string $invalid): void {
// GIVEN & WHEN & THEN
expect(fn () => new AppName($invalid))
->toThrow(\InvalidArgumentException::class);
})->with([
'',
' ',
"\t\n",
]);
it('handles equality properly', function (): void {
// GIVEN
$name1 = new AppName('Arcadia API');
$name2 = new AppName('Arcadia API');
$name3 = new AppName('Other API');
// THEN
expect($name1->equals($name2))->toBeTrue()
->and($name1->equals($name3))->toBeFalse()
->and($name1->equals('Arcadia API'))->toBeFalse();
});
});