public void Get_Each_Product_Price_For_Multiple_Quantities() { IDictionary <string, int> cart = new Dictionary <string, int>() { }; cart.Add(new KeyValuePair <string, int>("A", 5)); cart.Add(new KeyValuePair <string, int>("B", 5)); cart.Add(new KeyValuePair <string, int>("C", 1)); var products = ProgramBase.GetItemsPrices(cart); Assert.AreEqual(products[0].Key, "C");//Combination Promotions are calculated first Assert.AreEqual(products[1].Key, "A"); Assert.AreEqual(products[2].Key, "B"); Assert.AreEqual(products[0].Price, 20); Assert.AreEqual(products[1].Price, 230); Assert.AreEqual(products[2].Price, 120); }