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())); } }
public void TestEmptyJsonRequestReturnEmptyDisplay() { //arrange JsonRequest request = new JsonRequest(); //act JsonResponse response = request.CalculateNextState(); //assert response.Display.Should().Be(""); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }