public void ShouldFireChangeLightOnTimeExpiration() { bool lightChangedFired = false; MockStoplightTimer timer = new MockStoplightTimer(); StoplightSchedule schedule = new StoplightSchedule(timer); schedule.ChangeLight += delegate { lightChangedFired = true; }; timer.Expire(); Assert.IsTrue(lightChangedFired); }
public void ShouldSetTimerDurationForNextLight() { MockStoplightTimer timer = new MockStoplightTimer(); StoplightSchedule schedule = new StoplightSchedule(timer); TimeSpan greenSchedule = new TimeSpan(800); TimeSpan yellowSchedule = new TimeSpan(1500); TimeSpan redSchedule = new TimeSpan(100); schedule.Update(greenSchedule, yellowSchedule, redSchedule); timer.Expire(); Assert.AreEqual(yellowSchedule, timer.Duration); }
public void ShouldLogOnForceChange() { MockStoplightTimer timer = new MockStoplightTimer(); MockLogger logger = new MockLogger(); StoplightSchedule schedule = new StoplightSchedule(timer); schedule.Logger = logger; TimeSpan greenSchedule = new TimeSpan(800); TimeSpan yellowSchedule = new TimeSpan(1500); TimeSpan redSchedule = new TimeSpan(100); schedule.Update(greenSchedule, yellowSchedule, redSchedule); schedule.ForceChange(); Assert.IsNotNull(logger.LastMessage); Assert.IsTrue(logger.LastMessage.StartsWith("FORCED CHANGE")); }
public void ShouldFireEventAndUpdateScheduleOnForceChange() { MockStoplightTimer timer = new MockStoplightTimer(); StoplightSchedule schedule = new StoplightSchedule(timer); TimeSpan greenSchedule = new TimeSpan(800); TimeSpan yellowSchedule = new TimeSpan(1500); TimeSpan redSchedule = new TimeSpan(100); schedule.Update(greenSchedule, yellowSchedule, redSchedule); bool eventFired = false; schedule.ChangeLight += delegate { eventFired = true; }; schedule.ForceChange(); Assert.IsTrue(eventFired); Assert.AreEqual(yellowSchedule, timer.Duration); }