private CalculatorController CreateCalculatorWithMemorizedDividend(int dividend)
        {
            var calculator = new CalculatorController();

            calculator.Memorize(dividend);
            return(calculator);
        }
        public void Division_of_two_values_with_memorization()
        {
            int divisor = 2;
            CalculatorController calculator = CreateCalculatorWithMemorizedDividend(10);

            Envelope <int> response = calculator.Divide(divisor);

            response.IsError.Should().BeFalse();
            response.Result.Should().Be(5);
        }
        public void Division_by_zero_with_memorization()
        {
            int divisor = 0;
            CalculatorController calculator = CreateCalculatorWithMemorizedDividend(10);

            Envelope <int> response = calculator.Divide(divisor);

            response.IsError.Should().BeTrue();
            response.ErrorCode.Should().Be("division.by.zero");
        }
        public void Division_by_zero_correct()
        {
            // Arrange
            int dividend   = 10;
            int divisor    = 0;
            var calculator = new CalculatorController();

            // Act
            Envelope <int> response = calculator.Divide(dividend, divisor);

            // Assert
            response.IsError.Should().BeTrue();
            response.ErrorCode.Should().Be("division.by.zero");
        }
        public void Division_by_zero_dependency_on_production_code()
        {
            // Arrange
            int dividend   = 10;
            int divisor    = 0;
            var calculator = new CalculatorController();

            // Act
            Envelope <int> response = calculator.Divide(dividend, divisor);

            // Assert
            response.IsError.Should().BeTrue();
            response.ErrorCode.Should().Be(Errors.DivisionByZero);
        }
        public void Division_of_two_values_correct()
        {
            // Arrange
            int dividend   = 10;
            int divisor    = 2;
            var calculator = new CalculatorController();

            // Act
            Envelope <int> response = calculator.Divide(dividend, divisor);

            // Assert
            response.IsError.Should().BeFalse();
            response.Result.Should().Be(5);
        }