assertTrue($context->isActive()); $this->assertFalse($context->isReadonly()); $this->assertTrue($context->isExplicitSelection()); $this->assertSame('2025-2026', $context->yearName()); } public function testClosedAndArchivedContextsAreReadonly(): void { $this->assertTrue((new SchoolYearContext(2, '2023-2024', 'closed'))->isReadonly()); $this->assertTrue((new SchoolYearContext(1, '2022-2023', 'archived'))->isReadonly()); $this->assertFalse((new SchoolYearContext(5, '2026-2027', 'draft'))->isReadonly()); } public function testArrayRepresentationIncludesReadonlyState(): void { $context = new SchoolYearContext(3, '2024-2025', 'closed'); $this->assertSame([ 'id' => 3, 'name' => '2024-2025', 'status' => 'closed', 'readonly' => true, 'explicitSelection' => false, ], $context->toArray()); } }