public void GetTotalPriceShouldReturnTheSumPriceOfEverythingAddedToTheBasket()
        {
            var item1 = new SB.Item("Item1", 50);
            var item2 = new SB.Item("Item2", 45);

            sut = sut.AddItem(item1).AddItem(item2);

            var totalPrice = SB.BasketCalculator.GetTotalPrice(sut);

            Assert.AreEqual(item2.Price + item1.Price, totalPrice);
        }
        public void GetTotalPriceWithDiscountShouldDiscountTheTotalPrice()
        {
            var item = new SB.Item("item1", 200);

            sut = sut.AddItem(item);

            var totalPriceWithDiscount =
                SB.BasketCalculator.GetTotalPriceWithDiscount(
                    SB.BasketCalculator.GetTotalPrice(sut));

            Assert.AreEqual(item.Price * .9, totalPriceWithDiscount);
        }
        public void GetTotalPricePlusDeliveryShouldReturnTheTotalPricePlusTheDeliveryCharges()
        {
            var item1 = new SB.Item("Item1", 50);

            sut = sut.AddItem(item1);

            var totalPricePlusDelivery =
                SB.BasketCalculator.GetTotalPricePlusDelivery(
                    SB.BasketCalculator.GetTotalPrice(sut), sut.NumberOfItems);

            Assert.AreEqual(item1.Price + 0.5 + 2.5, totalPricePlusDelivery);
        }
        public void GetTotalPricePlusVatShouldreturnTheTotalPricePlusDeliveryMultipliedByTheVat()
        {
            var item1 = new SB.Item("Item1", 50);

            sut = sut.AddItem(item1);

            var totalPricePlusDelivery =
                SB.BasketCalculator.GetTotalPricePlusVat(
                    SB.BasketCalculator.GetTotalPricePlusDelivery(
                        SB.BasketCalculator.GetTotalPrice(sut), sut.NumberOfItems));

            Assert.AreEqual((item1.Price + 0.5 + 2.5) * 1.2, totalPricePlusDelivery);
        }
示例#5
0
        static void Main(string[] args)
        {
            var shoppingBasket = new ShoppingBasket.ShoppingBasket();

            var bread = new Bread {
                Price = 1, Amount = 6
            };

            var eggs = new Egg {
                Price = 0.8, Amount = 2
            };

            //Every third bread is 50 % off
            Discount <Bread> breadDiscount = new Discount <Bread>
            {
                Amount             = 2,
                DiscountPercentage = 50,
                Offset             = 1
            };

            //Every bread is 50 % off
            Discount <Bread> breadDiscount2 = new Discount <Bread>
            {
                Amount             = 1,
                DiscountPercentage = 50,
                Offset             = 0
            };

            //Discount<Bread> breadDiscount = new Discount<Bread>
            //{
            //    Amount  = 2,
            //    DiscountPercentage = 100,
            //};

            shoppingBasket.Add(bread);

            shoppingBasket.Add(breadDiscount2);

            Console.WriteLine("Test");

            Console.WriteLine($"Total price: {shoppingBasket.GetPrice().ToString()}");

            Console.ReadKey();
        }
 public static double GetTotalPrice(ShoppingBasket items)
 {
     return items.Sum(item => item.Price);
 }
        public void SetUp()
        {
            this.inventoryServiceMock = new Mock<IInventoryService>();
            this.inventoryServiceMock.Setup(inventory => inventory.IsItemAvailable(It.IsAny<ShoppingItem>())).Returns(true);

            this.shoppingBasket = new ShoppingBasket(this.inventoryServiceMock.Object);
        }