public TestOrderRepository() {
            _order = _order ?? new Order("TESTORDER", "testuser");
            _orders = new List<Order>();
            _orders.Add(_order);

            //create the items
            _orderItems = new List<OrderItem>();
            _addresses = new List<Address>();
            
            for (int i = 0; i < 2; i++)
            {
                var add = new Address("testuser", "first" + i, "last" + i, "email" + i,
                "street1" + i, "street2" + i, "city" + i,
                "stateprovince" + i, "zip" + i, "country" + i);
                add.IsDefault = i == 1;
                add.ID = i;
                if (!_addresses.Contains(add))
                    _addresses.Add(add);
            }

            TestCatalogRepository catalog = new TestCatalogRepository();

            for (int i = 0; i < 99; i++) {
                Order o = new Order("order" + i, "user" + 1);
                o.ID = Guid.NewGuid();


                for (int x = 1; x <= 5; x++) {
                    OrderItem item = new OrderItem(o.ID, catalog.GetProducts()
                        .Where(y=>y.ID==x).SingleOrDefault());
                    
                    item.Quantity = x == 5 ? 3 : 1;
                    
                    if(item.Quantity==1)
                        item.Quantity = x == 4 ? 2 : 1;

                    _orderItems.Add(item);
                    o.Items.Add(item);
                }

                o.ShippingAddress = GetAddresses().Take(1).Skip(1).SingleOrDefault();
                _orders.Add(o);
            }

        }
Esempio n. 2
0
        /// <summary>
        /// Adds a product to the cart
        /// </summary>
        public void AddItem(Product product, int quantity) {

            //see if this item is in the cart already
            OrderItem item = FindItem(product);

            if (quantity != 0) {
                if (item != null) {
                    //if the passed in amount is 0, do nothing
                    //as we're assuming "add 0 of this item" means
                    //do nothing
                    if (quantity != 0)
                        AdjustQuantity(product, item.Quantity + quantity);
                } else {
                    if (quantity > 0) {
                        item = new OrderItem(this.ID,product, quantity);
                        
                        //add to list
                        this.Items.Add(item);
                    }
                }

            }

        }
Esempio n. 3
0
        public void OrderItem_With_ProductID_1_Should_Be_Returned_When_Using_Contains() {
            Product p = _catalogService.GetProduct(1);

            Order order = new Order("testuser");

            OrderItem item1 = new OrderItem(p, 5);
            OrderItem item2 = new OrderItem(p, 2);

            order.Items.Add(item1);

            Assert.IsTrue(order.Items.Contains(item2));
        }
Esempio n. 4
0
        public void OrderRepository_Should_Accept_Product_1() {

            Product p = _catalogService.GetProduct(1);
            IOrderRepository rep = new TestOrderRepository();

            Order order = new Order("testuser");
            OrderItem item1 = new OrderItem(p, 1);

            order.Items.Add(item1);

            Assert.AreEqual(1, order.Items.Count);

        }
Esempio n. 5
0
        public void OrderItem_With_ProductID_1_ShouldEqual_Item2_With_ProductID_1_AndDifferent_Quantity() {
            Product p = _catalogService.GetProduct(1);
            
            OrderItem item1 = new OrderItem(p, 5);
            OrderItem item2 = new OrderItem(p, 2);

            Assert.AreEqual(item1, item2);
        }
Esempio n. 6
0
        public void OrderItem_With_ProductID_1_Should_Return_Product1_ForToString() {
            Product p = _catalogService.GetProduct(1);
            OrderItem item1 = new OrderItem(p, 5);

            Assert.AreEqual("Product1", item1.ToString());
        }
Esempio n. 7
0
 public void OrderItem_Should_Have_Product_And_Quantity() {
     Product p = _catalogService.GetProduct(1);
     OrderItem item = new OrderItem(p, 5);
     Assert.AreEqual(1, item.Product.ID);
     Assert.AreEqual(5, item.Quantity);
 }
Esempio n. 8
0
        public void OrderItem_Should_Have_Category_SubCategory_From_Where_ProductWas_Selected() {
            Product p = _catalogService.GetProduct(1);
            OrderItem item = new OrderItem(p, 5);

        }
Esempio n. 9
0
        public void OrderItem_Should_Return_ProductName_ForToString() {
            Product p = _catalogService.GetProduct(1);
            OrderItem item = new OrderItem(Guid.NewGuid(), p, 5);

            Assert.AreEqual("Product1",item.ToString());

        }
Esempio n. 10
0
        public void OrderItem_Should_Be_Equal_With_Same_Product_And_OrderID() {
            Guid orderID = Guid.NewGuid();
            Product p = _catalogService.GetProduct(1);
            OrderItem item = new OrderItem(orderID, p, 5);
            OrderItem item2 = new OrderItem(orderID, p, 5);

            Assert.AreEqual(item,item2);
            Assert.IsTrue(item.Equals(item2));
        }
Esempio n. 11
0
 public void OrderItem_Should_Have_LineItem_Summary_EqualTo_25_For_5_TestProduct_WithDiscounts_Of_5_Each() {
     Product p = _catalogService.GetProduct(1);
     p.DiscountPercent = .50M;
     OrderItem item = new OrderItem(Guid.Empty, p, 5);
     Assert.AreEqual(25, item.LineTotal);
 }
Esempio n. 12
0
 public void OrderItem_Should_Have_LineItem_Summary_EqualTo_50_For_5_TestProduct() {
     Product p = _catalogService.GetProduct(1);
     OrderItem item = new OrderItem(Guid.Empty, p);
     item.Quantity = 5; 
     Assert.AreEqual(50,item.LineTotal);
 }
Esempio n. 13
0
 public void OrderItem_Should_Have_OrderID_Product_Quantity_DiscountAmount() {
     Product p = _catalogService.GetProduct(1);
     OrderItem item=new OrderItem(Guid.Empty,p);
     Assert.AreEqual(Guid.Empty,item.OrderID);
     Assert.AreEqual(p, item.Product);
     Assert.AreEqual(1, item.Quantity);
 }