public void Scan_Product_Test() { var fakeReadonlyDataRepository = new FakeReadonlyDataRepository(); var checkout = new Checkout(fakeReadonlyDataRepository); const string sku = "A"; checkout.Scan(sku); var expected = checkout.Products.FirstOrDefault(x => x.Sku == sku); // with testing framework, setup can be easier, and assert can spread to individual test function. Assert.NotNull(expected); Assert.Equal(50, expected.Price); }
public void Get_Total_Price_Test(int price) { var fakeReadonlyDataRepository = new FakeReadonlyDataRepository(); var checkout = new Checkout(fakeReadonlyDataRepository); var product = new Product { Price = price }; checkout.Products.Add(product); var expected = checkout.GetTotalPrice(); Assert.Equal(price, expected); }
public void Add_Offer_Products_Total_Price_Should_Be_Offer_Price(int productPrice, int offerQuantity, int offerPrice) { // mocking data var fakeReadonlyDataRepository = new FakeReadonlyDataRepository(); var offer = fakeReadonlyDataRepository.Offers.First(); offer.Price = offerPrice; offer.Quantity = offerQuantity; var product = new Product { Sku = offer.Sku, Price = productPrice, }; var checkout = new Checkout(fakeReadonlyDataRepository); for (var i = 0; i < offerQuantity; i++) { checkout.Products.Add(product); } var expected = checkout.GetTotalPrice(); Assert.Equal(offerPrice, expected); }