コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }