Exemple #1
0
        private static void Main(string[] args)
        {
            var calculator = new CalculatorFacade();

            while (true)
            {
                WriteAttantionMessage(CalculatorFacade.StartMessage);

                string input = Console.ReadLine();

                if (input == CalculatorFacade.QuitDesignation)
                {
                    break;
                }

                calculator.Calculate(input);

                if (calculator.IsCalculationSuccessful)
                {
                    WriteSuccessMessage(calculator.ResultText);
                }
                else
                {
                    WriteErrorMessage(calculator.CalculationResultMessage);
                }
            }
        }
Exemple #2
0
 public string executeActions(CalculatorFacade calc)
 {
     foreach (var action in actionsList)
     {
         action(calc);
     }
     return(description);
 }
Exemple #3
0
 private void InternalPressNumbers(CalculatorFacade calculator, String inputNumbers)
 {
     foreach (var digit in inputNumbers.ToCharArray())
     {
         var digitAsInt = Int32.Parse(digit.ToString());
         calculator.numericButtonPressed(digitAsInt);
     }
 }
Exemple #4
0
        void test(TestData data, string ExpectedScreenValue = null, decimal?ExpectedAccumulatorValue = null, CalculatorState?state = null)
        {
            CalculatorFacade calculator  = new CalculatorFacade(Constants.DIGITS_SCREEN_SIZE);
            String           description = data.executeActions(calculator);

            if (ExpectedScreenValue != null)
            {
                Assert.AreEqual(ExpectedScreenValue, calculator.ScreenText, description);
            }
            if (ExpectedAccumulatorValue != null)
            {
                Assert.AreEqual(ExpectedAccumulatorValue, calculator.AccumulatorValue, description);
            }
            if (state != null && state.HasValue)
            {
                Assert.AreEqual(state.Value, calculator.CalculatorState, description);
            }
        }