public void TwoAppleTvNoDiscountTest() { var co = new Checkout(_pricingRules); co.Scan(new atv()); co.Scan(new atv()); Assert.AreEqual(2 * (new atv()).GetPrice(), co.Total()); }
public void ExampleScenarios3Test() { var co = new Checkout(_pricingRules); co.Scan("mbp"); co.Scan("hdm"); co.Scan("nx9"); Assert.AreEqual(1949.98M, co.Total()); }
public void ExampleScenarios1Test() { var co = new Checkout(_pricingRules); co.Scan("atv"); co.Scan("atv"); co.Scan("atv"); co.Scan("hdm"); Assert.AreEqual(249M, co.Total()); }
public void WhenItemsAreScannedTheTotalShouldBeTheCombinedCostOfTheItems() { var checkout = new Checkout(new Prices(new Dictionary <string, int> { { "A", 45 }, { "B", 30 } })); checkout.Scan("A"); checkout.Scan("B"); var total = checkout.GetTotalPrice(); Assert.Equal(75, total); }
public void ExampleScenarios2Test() { var co = new Checkout(_pricingRules); co.Scan(new atv()); co.Scan(new nx9()); co.Scan(new nx9()); co.Scan(new atv()); co.Scan(new nx9()); co.Scan(new nx9()); co.Scan(new nx9()); Assert.AreEqual(2718.95M, co.Total()); }
static void Main(string[] args) { var checkout = new Checkout(); var run = true; Console.WriteLine("SKU Price Offer"); Console.WriteLine(" A 50 3 for 130"); Console.WriteLine(" B 30 2 for 45"); Console.WriteLine(" C 20"); Console.WriteLine(" D 15"); Console.WriteLine(); Console.WriteLine("Press T for total."); do { Console.WriteLine(); var action = Console.ReadLine(); var actionUpper = action?.ToUpper(); switch (actionUpper) { case "A": case "B": case "C": case "D": checkout.Scan(actionUpper); break; case "T": Console.WriteLine($"Your total is: £{checkout.GetTotalPrice()}"); break; case "X": run = false; break; } } while (run); }
public void Test(string items, double expectedPrice) { // Arrange var checkout = new Checkout(new List <IPriceDeltaRule> { new PriceDeltaRule('A', 50), new PriceDeltaRule('B', 30), new PriceDeltaRule('C', 20), new PriceDeltaRule('D', 15), new MultiPriceDeltaRule('A', 3, -20), new MultiPriceDeltaRule('B', 2, -15) }); foreach (var item in items) { checkout.Scan(item); } // Act var totalPrice = checkout.CalculateTotalPrice(); // Assert Assert.That(totalPrice, Is.EqualTo(expectedPrice)); }
public void When_Scanning_1_A_Sku_Then_Total_Is_50() { _checkout.Scan(new Product('A')); Assert.AreEqual(new Money(50), _checkout.GetTotal()); }
public void InvalidSKUTest() { var co = new Checkout(_pricingRules); Assert.Throws <Exception>(() => co.Scan("Invalid_SKU")); }