public void OptionExecuting_CallingMethodWithOnlyOneIterationOfItsInnerLoop_DisplaysCurrentTime()
        {
            // key click simulation after the second method call. Thanks to this, the inner loop is made only once:
            var MockOfConsole = new Mock <IFakeConsole>();

            MockOfConsole.SetupSequence(m => m.KeyAvailable())
            .Returns(false)
            .Returns(true);

            var Output = new StringWriter();

            Console.SetOut(Output);
            var    BinaryHour     = Convert.ToString(DateTime.Now.Hour, 2);
            var    BinaryMinute   = Convert.ToString(DateTime.Now.Minute, 2);
            var    BinarySecond   = Convert.ToString(DateTime.Now.Second, 2);
            string ExpectedOutput = "Godzina: " + BinaryHour + Environment.NewLine +
                                    "Minuty:" + BinaryMinute + Environment.NewLine +
                                    "Sekundy: " + BinarySecond + Environment.NewLine;

            var TimeDisplay = new BinaryClock.TimeDisplay();

            var BinaryClock = new BinaryClock.BinaryClockOption(MockOfConsole.Object, TimeDisplay);

            BinaryClock.OptionExecuting();

            Assert.AreEqual(ExpectedOutput, Output.ToString());
        }
        public void OptionExecuting_CallingMethod_ReturnsOptionsCategoryNormalOption()
        {
            var MockOfConsole = new Mock <IFakeConsole>();

            MockOfConsole.Setup(m => m.KeyAvailable()).Returns(true);
            var BinaryClock = new BinaryClock.BinaryClockOption(MockOfConsole.Object, null);

            OptionsCategory Result = BinaryClock.OptionExecuting();

            Assert.AreEqual(OptionsCategory.NormalOption, Result);
        }
        public void OptionExecuting_CallingMethodWithOnlyOneIterationOfItsInnerLoop_MethodDoesNotPerformItsActionForTooLong()
        {
            var MockOfConsole = new Mock <IFakeConsole>();

            MockOfConsole.SetupSequence(m => m.KeyAvailable())
            .Returns(false)
            .Returns(true);

            var BinaryClock = new BinaryClock.BinaryClockOption(MockOfConsole.Object,
                                                                new BinaryClock.TimeDisplay());

            BinaryClock.OptionExecuting();
        }