Пример #1
0
        public void Execute_CalculatorInstanceIsNull_PrintsError()
        {
            var    consoleMock           = new ConsoleWrapperFake();
            string expectedResultMessage = $"Error: Calculator instance was not initialized";

            var calcManager = new CalculatorManager(null, consoleMock);

            calcManager.Execute();

            Assert.Contains(expectedResultMessage, consoleMock.WriteLog);
        }
Пример #2
0
        /// <summary>
        /// Demo of UseIConsole
        /// </summary>
        private static void UseIConsole()
        {
            IConsole c = new ConsoleWrapper();

            Console.WriteLine(AskUserName(c));

            c = new ConsoleWrapperFake();
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine(AskUserName(c));
            }
        }
Пример #3
0
        public void Execute_CalculatorThrowsException_PrintsErrorMessage()
        {
            string errorMessage = "Test message";
            var    calcStub     = new Mock <ICalculator>();

            calcStub.Setup(x => x.Calculate(It.IsAny <string>())).Throws(new Exception(errorMessage));
            var    consoleMock           = new ConsoleWrapperFake();
            string expectedResultMessage = $"Error: {errorMessage}";

            var calcManager = new CalculatorManager(calcStub.Object, consoleMock);

            calcManager.Execute();

            Assert.Contains(expectedResultMessage, consoleMock.WriteLog);
        }
Пример #4
0
        public void Execute_PassesRightValueToCalculator(string input)
        {
            var calcMock = new Mock <ICalculator>();

            calcMock.Setup(x => x.Calculate(It.IsAny <string>())).Returns(new CalculationResult());
            var consoleStub = new ConsoleWrapperFake();

            consoleStub.SetupReadKeysQueue(input);

            var calcManager = new CalculatorManager(calcMock.Object, consoleStub);

            calcManager.Execute();

            calcMock.Verify(x => x.Calculate(input), Times.Once());
        }
Пример #5
0
        public void Execute_PrintsIntroMessage()
        {
            var calcStub = new Mock <ICalculator>();

            calcStub.Setup(x => x.Calculate(It.IsAny <string>())).Returns(new CalculationResult());
            var    consoleMock          = new ConsoleWrapperFake();
            string expectedIntroMessage = "Enter numbers separated by commas or new line (CTRL+ENTER)."
                                          + Environment.NewLine
                                          + "When done, press ENTER.";

            var calcManager = new CalculatorManager(calcStub.Object, consoleMock);

            calcManager.Execute();

            Assert.Contains(expectedIntroMessage, consoleMock.WriteLog);
        }
Пример #6
0
        public void Execute_CalculatorComputesResult_PrintsFormula()
        {
            string formula  = "1+2+3=6";
            var    calcStub = new Mock <ICalculator>();

            calcStub.Setup(x => x.Calculate(It.IsAny <string>())).Returns(new CalculationResult {
                Formula = formula
            });
            var    consoleMock           = new ConsoleWrapperFake();
            string expectedResultMessage = $"Formula: {formula}";

            var calcManager = new CalculatorManager(calcStub.Object, consoleMock);

            calcManager.Execute();

            Assert.Contains(expectedResultMessage, consoleMock.WriteLog);
        }
Пример #7
0
        public void Execute_CalculatorComputesResult_PrintsResult()
        {
            int result   = 123;
            var calcStub = new Mock <ICalculator>();

            calcStub.Setup(x => x.Calculate(It.IsAny <string>())).Returns(new CalculationResult {
                Result = result
            });
            var    consoleMock           = new ConsoleWrapperFake();
            string expectedResultMessage = $"Result: {result}";

            var calcManager = new CalculatorManager(calcStub.Object, consoleMock);

            calcManager.Execute();

            Assert.Contains(expectedResultMessage, consoleMock.WriteLog);
        }
Пример #8
0
        public void Execute_EnteringNewLineKey_AddsNewLineCharacterToUserInputString()
        {
            var calcMock = new Mock <ICalculator>();

            calcMock.Setup(x => x.Calculate(It.IsAny <string>())).Returns(new CalculationResult());
            var consoleStub = new ConsoleWrapperFake();

            consoleStub.KeysToRead.Clear();
            consoleStub.KeysToRead.Enqueue(TestHelpers.ConsoleKeyInfoFromChar('1'));
            consoleStub.KeysToRead.Enqueue(TestHelpers.ConsoleKeyInfoFromChar(','));
            consoleStub.KeysToRead.Enqueue(TestHelpers.ConsoleKeyInfoFromChar('2'));
            var newLineKey = new ConsoleKeyInfo('\n', ConsoleKey.Enter, false, false, false);

            consoleStub.KeysToRead.Enqueue(newLineKey);
            consoleStub.KeysToRead.Enqueue(TestHelpers.ConsoleKeyInfoFromChar('3'));
            consoleStub.KeysToRead.Enqueue(consoleStub.EnterKey);
            string expectedInputString = "1,2\n3";

            var calcManager = new CalculatorManager(calcMock.Object, consoleStub);

            calcManager.Execute();

            calcMock.Verify(x => x.Calculate(expectedInputString), Times.Once());
        }