25 lines
1.1 KiB
PHP
25 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Tests\Unit\IslamicSundaySchool\Attendance;
|
|
|
|
use App\Domain\IslamicSundaySchool\Attendance\Policies\IslamicSundaySchoolAttendanceStatusPolicy;
|
|
use App\Domain\SchoolCore\Attendance\DTO\AttendanceSessionView;
|
|
use App\Domain\SchoolCore\Context\SchoolContext;
|
|
use DateTimeImmutable;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
final class IslamicSundaySchoolAttendanceStatusPolicyTest extends TestCase
|
|
{
|
|
public function test_extension_can_use_different_late_window_without_changing_core(): void
|
|
{
|
|
$context = new SchoolContext(1, 10, [], '2026', 'spring', 'UTC', 'en', 'USD', 'islamic_sunday_school');
|
|
$session = new AttendanceSessionView(1, 1, 'Program Session', 'program', new DateTimeImmutable('2026-05-29 09:00:00'), new DateTimeImmutable('2026-05-29 12:00:00'), 'UTC');
|
|
$policy = new IslamicSundaySchoolAttendanceStatusPolicy();
|
|
|
|
$this->assertSame('present', $policy->statusForScan($context, $session, new DateTimeImmutable('2026-05-29 09:14:00'))->status);
|
|
$this->assertSame('late', $policy->statusForScan($context, $session, new DateTimeImmutable('2026-05-29 09:16:00'))->status);
|
|
}
|
|
}
|