public async Task CalculateTotal_ShouldInvokeCalculateQuery() { //Arrange var query = new GetTrolleyTotalQuery(new TrolleyDto()); _mediator .Setup(m => m.Send(It.IsAny <GetTrolleyTotalQuery>(), default(CancellationToken))).ReturnsAsync(100); var mediatorObject = _mediator.Object; var controller = new CartController(mediatorObject); var trolley = GetSampleTrolly(); //Act var total = await controller.CalculateTotal(trolley); //Assert total.Should().Be(100); _mediator.Verify( i => i.Send(It.Is <GetTrolleyTotalQuery>(args => args.Trolley.Products.Count() == trolley.Products.Count() && args.Trolley.Quantities.Count() == trolley.Quantities.Count() && args.Trolley.Specials.Count() == trolley.Specials.Count()) , It.IsAny <CancellationToken>()), Times.Once, "Should Send Get Trolley Total Query to Mediator"); }
public void GetTrolleyTotal_WhenQuantityIsNullOrEmpty_ReturnsError(List <QuantityDetail> quantitytDetails) { var query = new GetTrolleyTotalQuery { TrolleyDetails = new TrolleyDetails { Products = new List <ProductDetails>(), Quantities = quantitytDetails } }; _getTrolleyTotalQueryValidatorTest.ShouldHaveValidationErrorFor(x => x.TrolleyDetails.Quantities, query); }
public async Task <ActionResult <decimal> > TrolleyTotal([FromBody] GetTrolleyTotalQuery query) { var result = await Mediator.Send(query); return(result); }