ldc-arcadia-api/tests/Unit/Application/Security/Models/ValueObjects/Entities/SecurityAuditLogDetailsTest.php

53 lines
1.7 KiB
PHP
Raw Normal View History

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