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