public void TotalPriceWith1Multiple()
        {
            var checkout = new Checkout();

            var item = new Item();
            item.SKU = "A";
            item.Price = 50;

            checkout.AddItem( item );

            item = new Item();
            item.SKU = "B";
            item.Price = 30;
            item.Offer = new Offer() { Price = 80, Quantity = 3 };

            checkout.AddItem( item );

            for ( int i = 0; i < 2; i++ )
            {
                item = new Item();
                item.SKU = "B";
                item.Price = 30;

                checkout.AddItem( item );
            }

            Assert.AreEqual( 130, checkout.TotalPrice() );
        }
        public void AddExistingItem()
        {
            var checkout = new Checkout();
            Dictionary<string, CartItem> cartList = new Dictionary<string, CartItem>();

            var item = new Item();
            item.SKU = "B";
            item.Price = 30;

            cartList.Add( item.SKU, new CartItem() { Item = item, Quantity = 1 } );

            checkout.AddItem( item );

            item = new Item();
            item.SKU = "A";
            item.Price = 50;

            cartList.Add( item.SKU, new CartItem() { Item = item, Quantity = 1 } );

            checkout.AddItem( item );

            item = new Item();
            item.SKU = "B";
            item.Price = 30;

            cartList[ item.SKU ].Quantity++;

            checkout.AddItem( item );

            CollectionAssert.AreEquivalent( cartList, checkout.CartList );
        }
        public void TotalPrice2DifferentItems()
        {
            var checkout = new Checkout();

            var item = new Item();
            item.SKU = "A";
            item.Price = 50;

            checkout.AddItem( item );

            item = new Item();
            item.SKU = "B";
            item.Price = 30;
            item.Offer = new Offer() { Price = 80, Quantity = 3 };

            checkout.AddItem( item );

            Assert.AreEqual( 80, checkout.TotalPrice() );
        }