public LightsService(
     IBusPublisher busPublisher, 
     IColourRepository colourRepository, 
     IDateTimeProvider dateTimeProvider,
     IMetricWriter metricWriter)
 {
     _busPublisher = busPublisher;
     _dateTimeProvider = dateTimeProvider;
     _metricWriter = metricWriter;
     _lightDisplayParser = new LightDisplayParser(colourRepository);
 }
        public void SetUp()
        {
            _busPublisher = Substitute.For<IBusPublisher>();
            _colourRepository = Substitute.For<IColourRepository>();
            _dateTimeProvider = Substitute.For<IDateTimeProvider>();
            _metricWriter = Substitute.For<IMetricWriter>();
            _lightsService = new LightsService(_busPublisher, _colourRepository, _dateTimeProvider, _metricWriter);

            var red = new Colour("red", "ff0000");
            var green = new Colour("green", "00ff00");
            var blue = new Colour("blue", "0000ff");

            GivenTheColourRepositoryReturns(red, green, blue);

            _dateTimeProvider.UtcNow().Returns(new DateTime(2015, 1, 1, 0, 0, 0, DateTimeKind.Utc));
        }