Esempio n. 1
0
        public IActionResult Calculate([FromBody] JsonRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new
                {
                    code = 400,
                    message = ModelState.Values.First().Errors.First().ErrorMessage
                }));
            }

            if (null == request)
            {
                return(new BadRequestResult());
            }
            _logger.LogInformation($"Get calculate request. CalculatorState: {request.calculatorState?.State}, Input: {request.Input}.");
            try
            {
                return(this.Ok(request.CalculateNextState()));
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message);
                return(this.Ok(JsonRequestExtension.InitialResponse()));
            }
        }
Esempio n. 2
0
        public void TestEmptyJsonRequestReturnEmptyDisplay()
        {
            //arrange
            JsonRequest request = new JsonRequest();

            //act
            JsonResponse response = request.CalculateNextState();

            //assert
            response.Display.Should().Be("");
        }
Esempio n. 3
0
        public void TestComplexCalculationWithNegativeNumbersFromJsonRequest()
        {
            //arrange
            JsonRequest request = new JsonRequest {
                Input = "=", calculatorState = new JsonResponse {
                    State = "15+4--7+-8*-4"
                }
            };
            string result = "-72";

            //act
            JsonResponse response = request.CalculateNextState();

            //assert
            response.Display.Should().Be(result);
        }
Esempio n. 4
0
        public void TestAllOperatorsCalculationFromJsonRequest()
        {
            //arrange
            JsonRequest request = new JsonRequest {
                Input = "=", calculatorState = new JsonResponse {
                    State = @"15+6*2-5-2/5"
                }
            };
            string result = "7";

            //act
            JsonResponse response = request.CalculateNextState();

            //assert
            response.Display.Should().Be(result);
        }
Esempio n. 5
0
        public void TestFloatDivCalculationFromJsonRequest()
        {
            //arrange
            JsonRequest request = new JsonRequest {
                Input = "=", calculatorState = new JsonResponse {
                    State = "10/3"
                }
            };
            string result = (10 / 3f).ToString();

            //act
            JsonResponse response = request.CalculateNextState();

            //assert
            response.Display.Should().Be(result);
        }
Esempio n. 6
0
        public void TestNegativeDisplay()
        {
            //arrange
            JsonRequest request = new JsonRequest {
                Input = "8", calculatorState = new JsonResponse {
                    State = @"34/-17", Display = "-17"
                }
            };
            string result = "-178";

            //act
            JsonResponse response = request.CalculateNextState();

            //assert
            response.Display.Should().Be(result);
        }
Esempio n. 7
0
        public void TestReturnsInputFromNotEmptyJsonRequestState()
        {
            //arrange
            JsonRequest request = new JsonRequest {
                Input = "5", calculatorState = new JsonResponse {
                    State = "1", Display = "1"
                }
            };
            string result = "15";

            //act
            JsonResponse response = request.CalculateNextState();

            //assert
            response.Display.Should().Be(result);
        }
Esempio n. 8
0
        public void TestCalculationWithNagativeNumbersFromJsonRequest()
        {
            //arrange
            JsonRequest request = new JsonRequest {
                Input = "=", calculatorState = new JsonResponse {
                    State = @"15+6*2-5-2/5-3-15"
                }
            };
            string result = "-11";

            //act
            JsonResponse response = request.CalculateNextState();

            //assert
            response.Display.Should().Be(result);
        }
Esempio n. 9
0
        public void TestSumCalculationFromJsonRequest()
        {
            //arrange
            JsonRequest request = new JsonRequest {
                Input = "=", calculatorState = new JsonResponse {
                    State = "15+4"
                }
            };
            string result = "19";

            //act
            JsonResponse response = request.CalculateNextState();

            //assert
            response.Display.Should().Be(result);
        }