public async Task <decimal> CalculateTrolleyTotal([FromBody] TrolleyInfoModel trolleyInfoModel) { if (trolleyInfoModel == null) { throw new BadApiRequestException($"{nameof(trolleyInfoModel)} is required."); } var trolleyInfo = _mapper.Map <TrolleyInfoModel, TrolleyInfo>(trolleyInfoModel); var total = await _TrolleyCalculator.CalculateTrolley(trolleyInfo); return(total); }
public void CalculateTrolleyTotal_WhenInputIsNull_ThrowsBadRequestException() { // Arrange var sutFactory = new SutTrolleyTotalControllerFactory(); TrolleyInfoModel trolleyInfoModel = null; var sutTrolleyTotalController = sutFactory.Create(); // Act Func <Task> action = async() => await sutTrolleyTotalController.CalculateTrolleyTotal(trolleyInfoModel); // Assert action.Should() .ThrowExactly <BadApiRequestException>() .WithMessage("trolleyInfoModel is required."); }
public async void CalculateTrolleyTotal_WhenInputIsValid_ReturnsCorrectResultFromService() { // Arrange var sutFactory = new SutTrolleyTotalControllerFactory(); var valueReturnedFromService = 12.3m; var trolleyInfoModel = new TrolleyInfoModel(); var trolleyInfo = new TrolleyInfo(); sutFactory.MockMapper .Setup(o => o.Map <TrolleyInfoModel, TrolleyInfo>(trolleyInfoModel)) .Returns(trolleyInfo); sutFactory.MockTrolleyCalculator .Setup(o => o.CalculateTrolley(trolleyInfo)) .Returns(Task.FromResult(valueReturnedFromService)); var sutTrolleyTotalController = sutFactory.Create(); // Act var result = await sutTrolleyTotalController.CalculateTrolleyTotal(trolleyInfoModel); // Assert result.Should().Be(valueReturnedFromService); }