Esempio n. 1
0
            public async void Run_ValidFreeGiftAutoRemoveComponent_ShouldRemoveCartLine(
                string promotionId,
                Cart cart,
                FreeGiftAutoRemoveComponent freeGiftAutoRemoveComponent,
                [Frozen] IServiceProvider serviceProvider)
            {
                /**********************************************
                * Arrange
                **********************************************/
                var commercePipelineContext = CreateCommercePipelineExecutionContext();

                var cartLineToBeRemoved = cart.Lines.FirstOrDefault();

                cartLineToBeRemoved.UnitListPrice.Amount = 0;
                cartLineToBeRemoved.Adjustments.FirstOrDefault().AwardingBlock = promotionId;
                cartLineToBeRemoved.SetComponent(freeGiftAutoRemoveComponent);
                freeGiftAutoRemoveComponent.PromotionId = promotionId;

                var removeCartPipeline = Substitute.For <IRemoveCartLinePipeline>();
                var commerceCommander  = Substitute.For <CommerceCommander>(serviceProvider);

                commerceCommander.Pipeline <IRemoveCartLinePipeline>().ReturnsForAnyArgs(removeCartPipeline);

                var sut = new AutoRemoveFreeGiftBlock(commerceCommander);

                /**********************************************
                * Act
                **********************************************/
                await sut.Run(cart, commercePipelineContext);

                /**********************************************
                * Assert
                **********************************************/
                await removeCartPipeline.ReceivedWithAnyArgs().Run(new CartLineArgument(cart, cartLineToBeRemoved), commercePipelineContext);
            }
Esempio n. 2
0
            public async void Run_NoAdjustments_ShouldReturn(
                Cart cart,
                FreeGiftAutoRemoveComponent freeGiftAutoRemoveComponent,
                AutoRemoveFreeGiftBlock sut)
            {
                /**********************************************
                * Arrange
                **********************************************/
                var commercePipelineContext = CreateCommercePipelineExecutionContext();

                cart.SetComponent(freeGiftAutoRemoveComponent);

                /**********************************************
                * Act
                **********************************************/
                var result = await sut.Run(cart, commercePipelineContext);

                /**********************************************
                * Assert
                **********************************************/
                result.Should().NotBeNull();
            }