public void RunValidInputDataTest()
        {
            DateTime fromDateTime = new DateTime(2017, 1, 1);
            DateTime toDateTime   = new DateTime(2017, 1, 5);
            string   errorMessage;

            var inputArgumentServiceMock = new Mock <IInputArgumentsService>();

            inputArgumentServiceMock.Setup(i => i.TryParseInputArguments(It.IsAny <string[]>(), out fromDateTime, out toDateTime, out errorMessage))
            .Returns(true);

            var dateRangeServiceMock = new Mock <IDateRangeService>();

            dateRangeServiceMock.Setup(i => i.PrintDateRange(It.IsAny <DateTime>(), It.IsAny <DateTime>()))
            .Returns("01 - 05.01.2017");

            var dateRangePrinter = new DateRangeConsolePrinter(inputArgumentServiceMock.Object, dateRangeServiceMock.Object);

            using (StringWriter stringWriter = new StringWriter())
            {
                Console.SetOut(stringWriter);
                dateRangePrinter.Run(new[] { "01.01.2017", "05.01.2017" });

                Assert.AreEqual("01 - 05.01.2017\r\n", stringWriter.ToString());
            }
        }
        public void RunInvalidInputDataTest()
        {
            DateTime fromDateTime;
            DateTime toDateTime;
            string   errorMessage = "Error message";

            var inputArgumentServiceMock = new Mock <IInputArgumentsService>();

            inputArgumentServiceMock.Setup(i => i.TryParseInputArguments(It.IsAny <string[]>(), out fromDateTime, out toDateTime, out errorMessage))
            .Returns(false);

            var dateRangeServiceMock = new Mock <IDateRangeService>();

            var dateRangePrinter = new DateRangeConsolePrinter(inputArgumentServiceMock.Object, dateRangeServiceMock.Object);

            using (StringWriter stringWriter = new StringWriter())
            {
                Console.SetOut(stringWriter);
                dateRangePrinter.Run(new[] { "01.01.2017", "05.01.2016" });

                Assert.AreEqual("Error message\r\n", stringWriter.ToString());
            }
        }