public void ManyChecks() { var alerter = new ThresholdAlerter(); var handler = new HandlerMock(); for (int i = 0; i < 1000; i += 10) { alerter.Add(i, handler.AlertHandler); } for (int i = 0; i < 10000; i++) { alerter.Check(i); } Assert.Equal(100, handler.CallCount); Assert.Equal(990, handler.ReachedThreshold); }
public void AlertWhenValueGoesDownAndUpThreshold() { var handler = new HandlerMock(); var alerter = new ThresholdAlerter(); alerter.Add(10, handler.AlertHandler); alerter.Add(20, handler.AlertHandler); // Alert alerter.Check(20); Assert.Equal(1, handler.CallCount); Assert.Equal(20, handler.ReachedThreshold); // No alert alerter.Check(0); Assert.Equal(1, handler.CallCount); // Alert again alerter.Check(17); Assert.Equal(2, handler.CallCount); Assert.Equal(10, handler.ReachedThreshold); }