createMock(SettingRepositoryInterface::class); $settings->method('getValue')->willReturn(null); $gateway = new SettingsSystemAuditGateway(new SettingsMetadataGateway($settings)); $this->assertTrue($gateway->isSystemAuditEnabled()); } public function testRetentionFallsBackWhenOutOfRange(): void { $settings = $this->createMock(SettingRepositoryInterface::class); $settings->method('getValue')->willReturn('5'); $gateway = new SettingsSystemAuditGateway(new SettingsMetadataGateway($settings)); $this->assertSame(365, $gateway->getSystemAuditRetentionDays()); } public function testSetSystemAuditRetentionRejectsOutOfRange(): void { $settings = $this->createMock(SettingRepositoryInterface::class); $settings->expects($this->never())->method('set'); $gateway = new SettingsSystemAuditGateway(new SettingsMetadataGateway($settings)); $this->assertFalse($gateway->setSystemAuditRetentionDays(10)); } }