public void CombineOrdersForItem_GroupsOrderByItem() { IGroceryItem itemA = new Mock <IGroceryItem>().Object; IGroceryItem itemB = new Mock <IGroceryItem>().Object; CheckoutCart cart = new CheckoutCart(); cart.Orders.Add(new GroceryItemOrderFake(itemA, 1.50M)); cart.Orders.Add(new GroceryItemOrderFake(itemB, 2.00M)); cart.Orders.Add(new GroceryItemOrderFake(itemB, 2.50M)); cart.Orders.Add(new GroceryItemOrderFake(itemB, 2.00M)); cart.Orders.Add(new GroceryItemOrderFake(itemA, 3.50M)); Assert.AreEqual(5.00M, cart.CombineOrdersForItem(itemA).Price); Assert.AreEqual(6.50M, cart.CombineOrdersForItem(itemB).Price); }
public void CombineOrdersForItem_ThrowsException_IfItemDoesntExist() { IGroceryItem itemA = new Mock <IGroceryItem>().Object; IGroceryItem itemB = new Mock <IGroceryItem>().Object; IGroceryItem unusedItem = new Mock <IGroceryItem>().Object; CheckoutCart cart = new CheckoutCart(); cart.Orders.Add(new GroceryItemOrderFake(itemA, 1.50M)); cart.Orders.Add(new GroceryItemOrderFake(itemB, 2.00M)); cart.Orders.Add(new GroceryItemOrderFake(itemB, 2.50M)); cart.Orders.Add(new GroceryItemOrderFake(itemB, 2.00M)); cart.Orders.Add(new GroceryItemOrderFake(itemA, 3.50M)); Assert.ThrowsException <InvalidOperationException>(() => cart.CombineOrdersForItem(unusedItem)); }