test: make storage guard capacity deterministic
This commit is contained in:
@@ -83,13 +83,16 @@ public sealed class StorageGuardServiceTests
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void RedPercentageTier_DoesNotBlockFinalizeWhenAbsoluteTemporarySpaceIsAvailable()
|
public void RedPercentageTier_DoesNotBlockFinalizeWhenAbsoluteTemporarySpaceIsAvailable()
|
||||||
{
|
{
|
||||||
|
var service = new StorageGuardService(
|
||||||
|
NullLogger<StorageGuardService>.Instance,
|
||||||
|
new FixedStorageCapacityProvider(totalBytes: 1_000, availableBytes: 800));
|
||||||
var settings = CreateSettings(enableStorageGuard: true);
|
var settings = CreateSettings(enableStorageGuard: true);
|
||||||
settings.PauseRecordingWhenFreeSpaceBelowMegabytes = 0;
|
settings.PauseRecordingWhenFreeSpaceBelowMegabytes = 0;
|
||||||
settings.ResumeRecordingWhenFreeSpaceAboveMegabytes = 0;
|
settings.ResumeRecordingWhenFreeSpaceAboveMegabytes = 0;
|
||||||
settings.StorageGreenThresholdPercent = 90;
|
settings.StorageGreenThresholdPercent = 90;
|
||||||
settings.StorageRedThresholdPercent = 85;
|
settings.StorageRedThresholdPercent = 85;
|
||||||
|
|
||||||
var result = _service.CheckCanFinalize(settings, estimatedTemporaryBytes: 1);
|
var result = service.CheckCanFinalize(settings, estimatedTemporaryBytes: 1);
|
||||||
|
|
||||||
Assert.Equal(StorageTier.Red, result.Tier);
|
Assert.Equal(StorageTier.Red, result.Tier);
|
||||||
Assert.True(result.HasEnoughSpace);
|
Assert.True(result.HasEnoughSpace);
|
||||||
@@ -132,4 +135,10 @@ public sealed class StorageGuardServiceTests
|
|||||||
StorageGreenThresholdPercent = 30,
|
StorageGreenThresholdPercent = 30,
|
||||||
StorageRedThresholdPercent = 10
|
StorageRedThresholdPercent = 10
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private sealed class FixedStorageCapacityProvider(long totalBytes, long availableBytes) : IStorageCapacityProvider
|
||||||
|
{
|
||||||
|
public StorageVolumeCapacity GetCapacity(string outputPath) =>
|
||||||
|
new(Path.GetPathRoot(outputPath) ?? "/", totalBytes, availableBytes);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user