36 lines
1.2 KiB
C#
36 lines
1.2 KiB
C#
using Microsoft.Extensions.Options;
|
|
using StellaOps.AirGap.Time.Config;
|
|
using StellaOps.AirGap.Time.Models;
|
|
|
|
namespace StellaOps.AirGap.Time.Tests;
|
|
|
|
public class AirGapOptionsValidatorTests
|
|
{
|
|
[Fact]
|
|
public void FailsWhenTenantMissing()
|
|
{
|
|
var opts = new AirGapOptions { TenantId = "" };
|
|
var validator = new AirGapOptionsValidator();
|
|
var result = validator.Validate(null, opts);
|
|
Assert.True(result is ValidateOptionsResultFailure);
|
|
}
|
|
|
|
[Fact]
|
|
public void FailsWhenWarningExceedsBreach()
|
|
{
|
|
var opts = new AirGapOptions { TenantId = "t", Staleness = new StalenessOptions { WarningSeconds = 20, BreachSeconds = 10 } };
|
|
var validator = new AirGapOptionsValidator();
|
|
var result = validator.Validate(null, opts);
|
|
Assert.True(result is ValidateOptionsResultFailure);
|
|
}
|
|
|
|
[Fact]
|
|
public void SucceedsForValidOptions()
|
|
{
|
|
var opts = new AirGapOptions { TenantId = "t", Staleness = new StalenessOptions { WarningSeconds = 10, BreachSeconds = 20 } };
|
|
var validator = new AirGapOptionsValidator();
|
|
var result = validator.Validate(null, opts);
|
|
Assert.True(result.Succeeded);
|
|
}
|
|
}
|