public void GivenTrafficLight_ThenInterfaceIsImplemented()
        {
            // ARRANGE
            var trafficLight = new TrafficLightsSeriesPart1();

            // ACT
            var actual = trafficLight is ITrafficLight;

            // ASSERT
            Assert.IsTrue(actual);
        }
        public void GivenTrafficLight_WhenInstatiated_ThenRedLightIsOn_AndOthersAreOff()
        {
            // ARRANGE
            var trafficLight = new TrafficLightsSeriesPart1();

            // ACT
            var amberActual = trafficLight.IsAmberOn;
            var greenActual = trafficLight.IsGreenOn;
            var redActual   = trafficLight.IsRedOn;

            // ASSERT
            Assert.IsFalse(amberActual);
            Assert.IsFalse(greenActual);
            Assert.IsTrue(redActual);
        }
        public void GivenInstatiatedTrafficLight_WhenSetToRedAmberState_ThenRedLightAndAmberLightIsOn_AndGreenIsOff()
        {
            // ARRANGE
            var trafficLight = new TrafficLightsSeriesPart1();

            // ACT
            trafficLight.Set(State.RedAmber);
            var amberActual = trafficLight.IsAmberOn;
            var greenActual = trafficLight.IsGreenOn;
            var redActual   = trafficLight.IsRedOn;

            // ASSERT
            Assert.IsTrue(amberActual);
            Assert.IsFalse(greenActual);
            Assert.IsTrue(redActual);
        }