justReturn([]); $limits = new Limits(); self::assertSame(5 * 1024 * 1024, $limits->uploadBytes()); self::assertSame(5, $limits->uploadMegabytes()); self::assertSame(90, $limits->logRetentionDays()); self::assertSame(20, $limits->snapshotCount()); } public function testStoredValuesAreClamped(): void { Functions\when('get_option')->justReturn(['upload_mb' => 500, 'log_retention_days' => 0, 'snapshot_count' => '7']); self::assertSame(['upload_mb' => 100, 'log_retention_days' => 1, 'snapshot_count' => 7], (new Limits())->all()); } public function testCorruptOptionFallsBackToDefaults(): void { Functions\when('get_option')->justReturn('garbage'); self::assertSame(Limits::DEFAULTS, (new Limits())->all()); } public function testSanitizeReturnsACompleteClampedArray(): void { self::assertSame( ['upload_mb' => 12, 'log_retention_days' => 90, 'snapshot_count' => 100], Limits::sanitize(['upload_mb' => '12', 'log_retention_days' => 'x', 'snapshot_count' => 1000]) ); self::assertSame(Limits::DEFAULTS, Limits::sanitize(null)); } }