Exemplo n.º 1
0
        public void ShouldTransitionYellowToRed()
        {
            Stoplight light = new Stoplight();

            light.Next();
            light.Next();

            Assert.AreEqual(Stoplight.Red, light.CurrentColor);
        }
Exemplo n.º 2
0
        public void ShouldTransitionRedToGreen()
        {
            Stoplight light = new Stoplight();

            light.Next();
            light.Next();
            light.Next();

            Assert.AreEqual(Stoplight.Green, light.CurrentColor);
        }
Exemplo n.º 3
0
        public void ShouldTransitionGreenToYellow()
        {
            Stoplight light = new Stoplight();

            light.Next();

            Assert.AreEqual(Stoplight.Yellow, light.CurrentColor);
        }
Exemplo n.º 4
0
        public void ShouldLogMessageOnChange()
        {
            Stoplight  light  = new Stoplight();
            MockLogger logger = new MockLogger();

            light.Logger = logger;

            light.Next();

            Assert.IsNotNull(logger.LastMessage);
            Assert.IsTrue(logger.LastMessage.StartsWith("LIGHT CHANGED TO"));
        }
Exemplo n.º 5
0
        public void ShouldRaiseChangedEventOnTransition()
        {
            bool            eventFired = false;
            StoplightColors newColor   = StoplightColors.Green;
            Stoplight       light      = new Stoplight();

            light.Changed += delegate(object sender, LightChangedEventArgs e)
            {
                eventFired = true;
                newColor   = e.CurrentColor;
            };

            light.Next();
            Assert.IsTrue(eventFired);
            Assert.AreEqual(Stoplight.Yellow, newColor);
        }
Exemplo n.º 6
0
        public void SetView(IStoplightView view)
        {
            this.view                = view;
            view.PropertyChanged    += OnViewPropertyChanged;
            view.UpdateClicked      += OnViewUpdateClicked;
            view.ForceChangeClicked += OnViewForceChangeClicked;

            Schedule.ChangeLight += delegate { Stoplight.Next(); };

            Stoplight.Changed += OnStoplightChanged;

            view.GreenDuration  = "3000";
            view.YellowDuration = "500";
            view.RedDuration    = "5000";
            view.CurrentColor   = Color.Green;

            Schedule.Update(TimeSpan.FromMilliseconds(3000),
                            TimeSpan.FromMilliseconds(500),
                            TimeSpan.FromMilliseconds(5000));
            Schedule.Start();
        }
Exemplo n.º 7
0
 public void OnScheduledLightChange(object sender, EventArgs e)
 {
     Stoplight.Next();
 }