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"); }