Пример #1
0
        public void GivenEmptyCart_WhenItemsAddedAndDiscountPlusServiceTaxApplied_ThenReturnsCorrectTotalPrice()
        {
            // Arrange
            var firstProduct  = new Product("Dove Soap", 39.99);
            var secondProduct = new Product("Axe Deo", 89.99);
            Func <double, double> additionalProcessing = (tp) => tp + (tp * 12.5 / 100);
            var cart = new TotalPriceAdditionalProcessingShoppingCartDecorator(
                new TotalPriceAdditionalProcessingShoppingCartDecorator(
                    new RunningProductsCountShoppingCart(),
                    (a) =>
            {
                if (a > 500)
                {
                    return(a - (a * 20 / 100));
                }

                return(a);
            }),
                additionalProcessing
                );


            // Act
            cart.AddProduct(firstProduct, 5);
            cart.AddProduct(secondProduct, 4);

            // Assert
            Assert.That(cart.GetTotalPrice(), Is.EqualTo(503.92));
        }
        public void GivenNoObject_WhenDecoratorObjectCreated_ThenReturnsAnInstanceOfIProductAddingShoppingCart()
        {
            // Arrange, Act,
            Func <double, double> additionalProcessing = (a) => a;
            var decorator = new TotalPriceAdditionalProcessingShoppingCartDecorator(Mock.Of <IProductAddingShoppingCart>(), additionalProcessing);

            // Assert;
            Assert.That(decorator, Is.InstanceOf(typeof(IProductAddingShoppingCart)));
        }
        public void GivenNoObject_WhenDecoratorObjectCreated_ThenReturnsAnInstanceOfIProductAddingShoppingCart(int addToTotalPrice)
        {
            // Arrange, Act,
            Func <double, double> additionalProcessing = (a) => a + addToTotalPrice;
            var decorator = new TotalPriceAdditionalProcessingShoppingCartDecorator(new RunningProductsCountShoppingCart(), additionalProcessing);

            decorator.AddProduct(new Product("Dove Soap", 39.99), 5);

            // Assert;
            Assert.That(decorator.GetTotalPrice(), Is.EqualTo(199.95 + addToTotalPrice));
        }
Пример #4
0
        public void GivenEmptyCart_WhenItemsAddedAndServiceTaxApplied_ThenReturnsCorrectTotalPrice()
        {
            // Arrange
            var firstProduct  = new Product("Dove Soap", 39.99);
            var secondProduct = new Product("Axe Deo", 99.99);
            Func <double, double> additionalProcessing = (tp) => tp + (tp * 12.5 / 100);
            var cart = new TotalPriceAdditionalProcessingShoppingCartDecorator(new RunningProductsCountShoppingCart(), additionalProcessing);

            // Act
            cart.AddProduct(firstProduct, 2);
            cart.AddProduct(secondProduct, 2);

            // Assert
            Assert.That(cart.GetTotalPrice(), Is.EqualTo(314.96));
        }