public void ShouldNotFireAlarmWhenInterruptsAreDisabled() { var manualClockSource = new ManualClockSource(); var timer = new LimitTimer(manualClockSource, 1, null, String.Empty, 10, Direction.Descending, true); var ticked = false; timer.LimitReached += () => ticked = true; manualClockSource.AdvanceBySeconds(11); Assert.IsFalse(ticked); }
public void ShouldFireAlarmWhenInterruptsAreEnabled() { var manualClockSource = new ManualClockSource(); var timer = new LimitTimer(manualClockSource, 1, null, String.Empty, 10, Direction.Descending, true); timer.EventEnabled = true; var ticked = false; timer.LimitReached += () => ticked = true; // var val =timer.Value; manualClockSource.AdvanceBySeconds(10); Assert.IsTrue(ticked); }
public void ShouldSwitchDirectionProperly() { var manualClockSource = new ManualClockSource(); var timer = new LimitTimer(manualClockSource, 100, null, String.Empty, 100000, Direction.Ascending, true); timer.EventEnabled = true; var ticked = false; timer.LimitReached += () => ticked = true; manualClockSource.AdvanceBySeconds(2); timer.Direction = Direction.Descending; // and then change the direction manualClockSource.AdvanceBySeconds(2); Assert.IsTrue(ticked); }
public void ShouldBeDescending() { var manualClockSource = new ManualClockSource(); var timer = new LimitTimer(manualClockSource, 100, null, String.Empty, 100000, Direction.Descending, true); var oldValue = timer.Limit; for (var i = 0; i < 100; i++) { manualClockSource.AdvanceBySeconds(1); var value = timer.Value; Assert.Less(value, oldValue, "Timer is not monotonic."); oldValue = value; } }
public void ShouldBeAscending() { var manualClockSource = new ManualClockSource(); var timer = new LimitTimer(manualClockSource, 100, 100000, Direction.Ascending, true); var oldValue = 0UL; for (var i = 0; i < 100; i++) { manualClockSource.AdvanceBySeconds(1); var value = timer.Value; Assert.Greater(value, oldValue, "Timer is not monotonic."); oldValue = value; } }
public void ShouldNotExceedLimitDescending() { var limit = 100UL; var manualClockSource = new ManualClockSource(); var timer = new LimitTimer(manualClockSource, 1, null, String.Empty, limit, Direction.Ascending, true); manualClockSource.AdvanceBySeconds(limit - 1); for (var i = 0; i < 3; i++) { var value = timer.Value; Assert.LessOrEqual(value, limit, "Timer exceeded given limit."); Assert.GreaterOrEqual(value, 0, "Timer returned negative value."); manualClockSource.AdvanceBySeconds(1); } }
public void ShouldFireAlarmWhenInterruptsAreEnabled() { using (var machine = new Machine()) { var timer = new LimitTimer(machine, 1, 10, Direction.Descending, true); var manualClockSource = new ManualClockSource(); machine.SetClockSource(manualClockSource); timer.EventEnabled = true; var ticked = false; timer.LimitReached += () => ticked = true; machine.Start(); // var val =timer.Value; manualClockSource.AdvanceBySeconds(110); Assert.IsTrue(ticked); } }
public void ShouldBeDescending() { using (var machine = new Machine()) { var timer = new LimitTimer(machine, 100, 100000, Direction.Descending, true); var manualClockSource = new ManualClockSource(); machine.SetClockSource(manualClockSource); machine.Start(); var oldValue = timer.Limit; for (var i = 0; i < 100; i++) { manualClockSource.AdvanceBySeconds(1); var value = timer.Value; Assert.Less(value, oldValue, "Timer is not monotonic."); oldValue = value; } machine.Pause(); } }
public void ShouldNotExceedLimitDescending() { var limit = 100; using (var machine = new Machine()) { var timer = new LimitTimer(machine, 1, limit, Direction.Descending, true); var manualClockSource = new ManualClockSource(); machine.SetClockSource(manualClockSource); machine.Start(); manualClockSource.AdvanceBySeconds(limit - 1); for (var i = 0; i < 3; i++) { var value = timer.Value; Assert.LessOrEqual(value, limit, "Timer exceeded given limit."); Assert.GreaterOrEqual(value, 0, "Timer returned negative value."); manualClockSource.AdvanceBySeconds(1); } machine.Pause(); } }