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);
        }
Esempio n. 3
0
        public async Task <ActionResult <decimal> > TrolleyTotal([FromBody] GetTrolleyTotalQuery query)
        {
            var result = await Mediator.Send(query);

            return(result);
        }