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);
        }