public TimeConverter(IClockRenderer <String> renderer, IClockBuilder builder)
 {
     if (renderer == null)
     {
         throw new ArgumentNullException(nameof(renderer), RendererNotProvidedErrorMessage);
     }
     if (builder == null)
     {
         throw new ArgumentNullException(nameof(builder), BuilderNotProvidedErrorMessage);
     }
     this._renderer = renderer;
     this._builder  = builder;
 }
        public void ClockBuilderTest()
        {
            clockBuilder = new BerlinClockBuilder();

            var input = new TimeSpan(1, 0, 0, 0);

            var expected = "Y\r\nRRRR\r\nRRRR\r\nOOOOOOOOOOO\r\nOOOO";

            var result = clockBuilder.GetClockStringRepresentationFromTimeSpan(input);

            Assert.AreEqual(expected, result);


            input = new TimeSpan(0, 0, 0, 0);

            expected = "Y\r\nOOOO\r\nOOOO\r\nOOOOOOOOOOO\r\nOOOO";

            result = clockBuilder.GetClockStringRepresentationFromTimeSpan(input);

            Assert.AreEqual(expected, result);


            input = new TimeSpan(0, 14, 18, 1);

            expected = "O\r\nRROO\r\nRRRR\r\nYYROOOOOOOO\r\nYYYO";

            result = clockBuilder.GetClockStringRepresentationFromTimeSpan(input);

            Assert.AreEqual(expected, result);


            input = new TimeSpan(0, 23, 59, 59);

            expected = "O\r\nRRRR\r\nRRRO\r\nYYRYYRYYRYY\r\nYYYY";

            result = clockBuilder.GetClockStringRepresentationFromTimeSpan(input);

            Assert.AreEqual(expected, result);
        }
 public TimeConverter()
 {
     this.clockBuilder = new ClockBuilder();
     this.timeParser   = new TimeParser();
 }