public void Input1()
        {
            //Setup
            var book = new Item()
            {
                Description = "book",
                Price       = 12.49m,
                TypeOfItem  = TypeOfItem.Book,
                IsImported  = false
            };

            var musicCd = new Item()
            {
                Description = "music cd",
                Price       = 14.99m,
                TypeOfItem  = TypeOfItem.Other,
                IsImported  = false
            };

            var chocolateBar = new Item()
            {
                Description = "chocolate bar",
                Price       = 0.85m,
                TypeOfItem  = TypeOfItem.Food,
                IsImported  = false
            };

            var items = new Item[] { book, musicCd, chocolateBar };

            //SUT Call
            Receipt receipt = shoppingBasketService.Checkout(items);

            //Assertion
            Assert.AreEqual(1, receipt.Details[0].Quantity);
            Assert.AreEqual(book.Description, receipt.Details[0].Description);
            Assert.AreEqual(book.Price, receipt.Details[0].Price);
            Assert.AreEqual(1, receipt.Details[1].Quantity);
            Assert.AreEqual(musicCd.Description, receipt.Details[1].Description);
            Assert.AreEqual(16.49, receipt.Details[1].Price);
            Assert.AreEqual(1, receipt.Details[2].Quantity);
            Assert.AreEqual(chocolateBar.Description, receipt.Details[2].Description);
            Assert.AreEqual(chocolateBar.Price, receipt.Details[2].Price);
            Assert.AreEqual(1.5m, receipt.SalesTaxes);
            Assert.AreEqual(29.83m, receipt.Total);
        }
示例#2
0
        public void Checkout()
        {
            //Setup
            var book = new Item()
            {
                Description = "book",
                Price       = 12.49m,
                TypeOfItem  = TypeOfItem.Book,
                IsImported  = false
            };

            var musicCd = new Item()
            {
                Description = "music cd",
                Price       = 14.99m,
                TypeOfItem  = TypeOfItem.Other,
                IsImported  = false
            };

            var chocolateBar = new Item()
            {
                Description = "chocolate bar",
                Price       = 0.85m,
                TypeOfItem  = TypeOfItem.Food,
                IsImported  = false
            };

            var items = new Item[] { book, musicCd, chocolateBar };

            basketItemManager.Setup(m => m.AddToBasket(It.IsAny <Item>())).Returns(new PurchasedItem());
            receiptBuilderMock.Setup(m => m.CreateReceipt(It.IsAny <PurchasedItem[]>())).Returns(new Receipt());

            var shoppingBasketService = new ShoppingBasketService(receiptBuilderMock.Object, basketItemManager.Object);

            //SUT Call
            Receipt receipt = shoppingBasketService.Checkout(items);

            //Assertion
            basketItemManager.Verify(m => m.AddToBasket(It.IsAny <Item>()), Times.Exactly(3));
            receiptBuilderMock.Verify(m => m.CreateReceipt(It.IsAny <PurchasedItem[]>()), Times.Exactly(1));
        }