52 lines
1.7 KiB
PHP
52 lines
1.7 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Tests\Unit\Application\Security\Models\ValueObjects\Entities;
|
|
|
|
use Application\Security\Models\ValueObjects\Entities\SecurityAuditLogDetails;
|
|
|
|
covers(SecurityAuditLogDetails::class);
|
|
|
|
describe('SecurityAuditLogDetails Value Object Unit Tests', function (): void {
|
|
it('creates empty details', function (): void {
|
|
// WHEN
|
|
$details = SecurityAuditLogDetails::empty();
|
|
|
|
// THEN
|
|
expect($details->isEmpty())->toBeTrue()
|
|
->and($details->getValues())->toBe([]);
|
|
});
|
|
|
|
it('stores and retrieves string map entries correctly', function (): void {
|
|
// GIVEN
|
|
$map = [
|
|
'is_active' => 'false',
|
|
'count' => '42',
|
|
'role' => 'admin',
|
|
];
|
|
|
|
// WHEN
|
|
$details = new SecurityAuditLogDetails($map);
|
|
|
|
// THEN
|
|
expect($details->isEmpty())->toBeFalse()
|
|
->and($details->get('is_active'))->toBe('false')
|
|
->and($details->get('count'))->toBe('42')
|
|
->and($details->get('role'))->toBe('admin')
|
|
->and($details->get('non_existent'))->toBeNull()
|
|
->and($details->getValues())->toBe($map);
|
|
});
|
|
|
|
it('handles equality correctly', function (): void {
|
|
// GIVEN
|
|
$details1 = new SecurityAuditLogDetails(['key' => 'value']);
|
|
$details2 = new SecurityAuditLogDetails(['key' => 'value']);
|
|
$details3 = new SecurityAuditLogDetails(['key' => 'other']);
|
|
|
|
// THEN
|
|
expect($details1->equals($details2))->toBeTrue()
|
|
->and($details1->equals($details3))->toBeFalse()
|
|
->and($details1->equals('key=value'))->toBeFalse();
|
|
});
|
|
});
|