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); }
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)); }