42 lines
1.1 KiB
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();
|
|
});
|
|
});
|