public void CreateReturnsAnInstanceTest() { var checkout = _factory.Create( new SkuDictionary() { { 'A', new Sku("Item A", 10m) }, { 'B', new Sku("Item B", 2m) } }, new OfferDictionary() { { 'A', new QtyBasedOffer(2, 15m) } } ); Assert.NotNull(checkout); Assert.IsInstanceOf <Checkout>(checkout); Assert.That("Item A", Is.EqualTo(checkout.GetSkuDetails('A').Description)); Assert.That("Item B", Is.EqualTo(checkout.GetSkuDetails('B').Description)); }
public void CheckoutTotalPriceOnAddingNewItemsTest() { var checkout = _factory.Create(_availableSkus, _offers); checkout.AddItemToBasket('A'); Assert.That(50, Is.EqualTo(checkout.TotalPrice())); checkout.AddItemToBasket('B'); Assert.That(80, Is.EqualTo(checkout.TotalPrice())); checkout.AddItemToBasket('C'); Assert.That(100, Is.EqualTo(checkout.TotalPrice())); checkout.AddItemToBasket('D'); Assert.That(115, Is.EqualTo(checkout.TotalPrice())); // Add more items to invoke offers (3 A's for £130), ie. 130 (3 A's) + 30 (B) + 20 (C) + 15 (D) = 195 checkout.AddItemToBasket('A'); checkout.AddItemToBasket('A'); Assert.That(195, Is.EqualTo(checkout.TotalPrice())); // Add more items to invoke offers (3 A's for £130), ie. 130 (3 A's) + 50 (A) + 30 (B) + 20 (C) + 15 (D) = 195 checkout.AddItemToBasket('A'); Assert.That(245, Is.EqualTo(checkout.TotalPrice())); }