using XFEEDToolBox.Core.Navigation;
using XFEExtension.NetCore.XUnit.Attributes;
namespace XFEEDToolBox.Test;
[TestFixture]
public class StationDepartureWatchdogTests
{
[Test] public void NormalLaunchAndShortTrafficQueueCanComplete()
{
StationDepartureWatchdog.Check(123,TimeSpan.FromSeconds(50));
StationDepartureWatchdog.Check(123,TimeSpan.FromSeconds(179));
}
[Test] public void StuckLaunchRequestsRecoveryWithTwoMinutesBeforeStationPenalty()
{
Check.Equal(TimeSpan.FromMinutes(2),TimeSpan.FromMinutes(5)-StationDepartureWatchdog.RecoveryAfter);
try{StationDepartureWatchdog.Check(123,TimeSpan.FromMinutes(3));}
catch(StationDepartureRecoveryException error)
{Check.Equal(123L,error.MarketId);Check.Equal(TimeSpan.FromMinutes(3),error.Elapsed);return;}
throw new InvalidOperationException("Station departure did not request menu recovery before the penalty.");
}
}
using XFEEDToolBox.Core.Navigation;
using XFEExtension.NetCore.XUnit.Attributes;
namespace XFEEDToolBox.Test;
[TestFixture]
public class StationDepartureWatchdogTests
{
[Test] public void NormalLaunchAndShortTrafficQueueCanComplete()
{
StationDepartureWatchdog.Check(123,TimeSpan.FromSeconds(50));
StationDepartureWatchdog.Check(123,TimeSpan.FromSeconds(179));
}
[Test] public void StuckLaunchRequestsRecoveryWithTwoMinutesBeforeStationPenalty()
{
Check.Equal(TimeSpan.FromMinutes(2),TimeSpan.FromMinutes(5)-StationDepartureWatchdog.RecoveryAfter);
try{StationDepartureWatchdog.Check(123,TimeSpan.FromMinutes(3));}
catch(StationDepartureRecoveryException error)
{Check.Equal(123L,error.MarketId);Check.Equal(TimeSpan.FromMinutes(3),error.Elapsed);return;}
throw new InvalidOperationException("Station departure did not request menu recovery before the penalty.");
}
}