Files
alrahma_sunday_school_api/tests/Unit/Services/AttendanceTracking/AttendancePendingViolationServiceTest.php
2026-06-11 11:46:12 -04:00

44 lines
1.4 KiB
PHP

<?php
namespace Tests\Unit\Services\AttendanceTracking;
use App\Models\AttendanceData;
use App\Services\AttendanceTracking\AttendancePendingViolationService;
use App\Services\AttendanceTracking\AttendanceViolationStudentResolverService;
use App\Services\AttendanceTracking\ViolationRuleEngineService;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Mockery;
use Tests\TestCase;
class AttendancePendingViolationServiceTest extends TestCase
{
use RefreshDatabase;
public function test_returns_error_when_no_students(): void
{
$resolver = Mockery::mock(AttendanceViolationStudentResolverService::class);
$resolver->shouldReceive('resolveForSchoolYear')->andReturn([
'school_year' => '2025-2026',
'semester' => 'Fall',
'student_ids' => [],
'student_codes' => [],
'students' => [],
'student_code_to_id' => [],
'existing_ids' => [],
'debug' => [],
]);
$engine = Mockery::mock(ViolationRuleEngineService::class);
$service = new AttendancePendingViolationService(
new AttendanceData,
$engine,
$resolver
);
$result = $service->getPendingViolations('2025-2026', null, null);
$this->assertSame('No student identifiers found for the current school year.', $result['error']);
}
}