Exemple #1
0
        private void SetCalculationManager(out ICalculatorManager manager)
        {
            _view.DisplayMessage("Select way for calculating: " +
                                 "\npress 1 - via file; " +
                                 "\npress 2 - via console " +
                                 "\npress 0 - to exit");

            while (true)
            {
                int result = 0;
                while (!int.TryParse(_view.GetUserResponse(), out result))
                {
                    _view.DisplayMessage("Wrong number, try again.");
                }

                switch (result)
                {
                case 0:
                    manager = null;
                    return;

                case 1:
                    manager = new FileCalculator(_view);
                    return;

                case 2:
                    manager = new ConsoleCalculator(_view);
                    return;

                default:
                    manager = null;
                    break;
                }
            }
        }
Exemple #2
0
        public FileCalculatorTests(int fileSize = 1024)
        {
            this.fileSize = fileSize;
            fileNumber    = 3;

            sut = new FileCalculator();
        }
        public void RunTaskFileCalculation()
        {
            Console.WriteLine("____________Task File Calculation____________");
            ICalculator calculator = new FileCalculator();

            calculator.ExecuteCalculation();
            Console.WriteLine("The result is written into file");
        }
        public void Calculate_FromInvalidFile()
        {
            //arrange
            var calculator = new FileCalculator(new FileProcessor());

            //act
            calculator.Calculate(_testFileName);
        }
        public void Calculate_FromValidFileInvalidCalculation()
        {
            //arrange
            string[] input = { @"1+x+4" };
            processorMock.Setup(x => x.GetContent(_testFileName)).Returns(input);
            string[] actualResult = null;
            processorMock.Setup(x => x.WriteContent(It.IsAny <string>())).Callback((string[] output) =>
            {
                actualResult = output;
            });
            var calculator = new FileCalculator(processorMock.Object);

            //act
            calculator.Calculate(_testFileName);

            //assert
            Assert.AreEqual($"1+x+4 = {_errorMessage}", actualResult[0]);
        }
        public void Calculate_FromValidFileDivisionByZero()
        {
            //arrange
            string[] input = { @"5/0" };
            processorMock.Setup(x => x.GetContent(_testFileName)).Returns(input);
            string[] actualResult = null;
            processorMock.Setup(x => x.WriteContent(It.IsAny <string>())).Callback((string[] output) =>
            {
                actualResult = output;
            });
            var calculator = new FileCalculator(processorMock.Object);

            //act
            calculator.Calculate(_testFileName);

            //assert
            Assert.AreEqual("5/0 = Division by zero", actualResult[0]);
        }
        public void Calculate_FromValidFileValidMultiLineCalculation()
        {
            //arrange
            string[] input = { @"2+15/3+4*2", @"1+2*(3+2)" };
            processorMock.Setup(x => x.GetContent(_testFileName)).Returns(input);
            string[] actualResult = null;
            processorMock.Setup(x => x.WriteContent(It.IsAny <string[]>())).Callback((string[] output) =>
            {
                actualResult = output;
            });
            var calculator = new FileCalculator(processorMock.Object);

            //act
            calculator.Calculate(_testFileName);

            //assert
            Assert.AreEqual("2+15/3+4*2 = 15", actualResult[0]);
            Assert.AreEqual("1+2*(3+2) = 11", actualResult[1]);
        }