Ejemplo n.º 1
0
 public void Cart_Returns_Null_When_No_Sku_Found()
 {
     ShoppingCart cart = new ShoppingCart("TEST");
     Product p = new Product("SKU");
     cart.AddItem(p, 1);
     var item = cart.FindItem("SKU1");
     Assert.IsNull(item);
 }
Ejemplo n.º 2
0
 public void Cart_Can_Return_Item_By_SKU()
 {
     ShoppingCart cart = new ShoppingCart("TEST");
     Product p = new Product("SKU");
     cart.AddItem(p, 1);
     var item = cart.FindItem("SKU");
     Assert.IsNotNull(item);
 }
Ejemplo n.º 3
0
 public void Cart_Item_Quantity_Should_Adjust_To_10()
 {
     ShoppingCart cart = new ShoppingCart("TEST");
     Product p = new Product("SKU");
     cart.AddItem(p);
     cart.AdjustQuantity(p, 10);
     Assert.AreEqual(10, cart.TotalItems);
 }
Ejemplo n.º 4
0
        public void ItemLastAdded_Should_Be_Sku2_When_SKu1_Sku2_Added_In_Sequence()
        {
            ShoppingCart cart = new ShoppingCart("TEST");
            Product p = new Product("SKU1");
            Product p2 = new Product("SKU2");
            cart.AddItem(p, 1, DateTime.Now.AddSeconds(-1));
            cart.AddItem(p2, 1, DateTime.Now.AddSeconds(1));

            Assert.AreEqual("SKU2", cart.ItemLastAdded.Product.SKU);
        }
Ejemplo n.º 5
0
        public MockProductRepository()
        {
            //load up the repo list
            productList = new List<Product>();
            imageList = new List<Image>();
            descriptorList = new List<ProductDescriptor>();

            for(int i=1;i<=3;i++){
                imageList.Add(new Image("noimage.gif","noimage.gif"));
            }

            for(int i=1;i<=3;i++){
                descriptorList.Add(new ProductDescriptor("title","Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec non diam eu tellus elementum ullamcorper. Maecenas leo magna, tempor eget, molestie quis, ornare sed, ligula. Etiam purus nisl, tempus a, commodo quis, posuere quis, elit. Nunc urna nisi, varius ut, hendrerit ut, bibendum in, ipsum."));
            }

            for (int i = 1; i <= 5; i++) {

                Product p =new Product("SKU" + i,"Product "+i,"Blurb", true,10);
                p.WeightInPounds = 5;

                //set first three products to shipped
                p.Delivery = i <= 3 ? DeliveryMethod.Shipped : DeliveryMethod.Download;

                //set first three products to Back-orderable
                p.AllowBackOrder = i <= 3;

                //set the 2nd product to BackOrder
                p.Inventory = i == 2 ? InventoryStatus.BackOrder : InventoryStatus.InStock;

                //set all products to taxable, except the 5th
                p.IsTaxable = i != 5;

                p.Recommended = new List<Product>();

                //have it recommend itself, for now
                p.Recommended.Add(p);

                //related
                p.RelatedProducts = new List<Product>();
                for (int x = 0; x < 5; x++)
                {
                    p.RelatedProducts.Add(new Product("SKU_REL" + x));

                }

                //add some Crosses
                p.CrossSells = new LazyList<Product>();
                for (int x = 0; x < 5; x++)
                {
                    p.CrossSells.Add(new Product("SKU_CROSS" + x));

                }
                productList.Add(p);
            }
        }
Ejemplo n.º 6
0
        //this method sets the initial state of your inventory
        public static InventoryState SetState(Product item, int amountOnHand, bool allowBackOrder, DateTime dateAvailable)
        {
            InventoryState result = null;

            if (item.IsOnPreOrder()) {
                result=new OnPreOrder(item);
            } else if (item.IsUnavailable()) {
                result = new Unavailable(item);
            } else if (item.IsOnBackOrder()) {
                result = new OnBackOrder(item);
            } else {
             result = new InStock(item);
            }

            return result;
        }
Ejemplo n.º 7
0
 public void Items_Count_Should_Be_1_When_2_of_Same_Product_Added()
 {
     ShoppingCart cart = new ShoppingCart("TEST");
     Product p = new Product("SKU");
     cart.AddItem(p);
     cart.AddItem(p);
     Assert.AreEqual(1, cart.Items.Count);
 }
Ejemplo n.º 8
0
        public void Items_Count_Should_Be_0_When_SKU_Removed()
        {
            ShoppingCart cart = new ShoppingCart("TEST");
            Product p = new Product("SKU");
            cart.AddItem(p, 1);
            Assert.AreEqual(1, cart.Items.Count);

            cart.RemoveItem("SKU");
            Assert.AreEqual(0, cart.Items.Count);
        }
Ejemplo n.º 9
0
        public void Items_Count_Should_Be_0_When_2_Items_Cleared()
        {
            ShoppingCart cart = new ShoppingCart("TEST");
            Product p = new Product("SKU");
            Product p2 = new Product("SKU2");
            //Clock-foolery
            cart.AddItem(p, 1);
            cart.AddItem(p2, 1);
            Assert.AreEqual(2, cart.Items.Count);

            cart.ClearItems();
            Assert.AreEqual(0, cart.Items.Count);
        }
Ejemplo n.º 10
0
 public void Items_Count_Should_Be_0_When_10_Items_Adjusted_To_Negative_10()
 {
     ShoppingCart cart = new ShoppingCart("TEST");
     Product p = new Product("SKU");
     cart.AddItem(p, 10);
     cart.AdjustQuantity(p, -10);
     Assert.AreEqual(0, cart.Items.Count);
 }
Ejemplo n.º 11
0
 public ShoppingCartItem(Product product, int quantity,DateTime dateAdded)
 {
     _product = product;
     _quantity = quantity;
     _dateAdded = dateAdded;
 }
Ejemplo n.º 12
0
 public InStock(Product item)
 {
     _item = item;
 }
Ejemplo n.º 13
0
 public OnPreOrder(Product item)
 {
     _item = item;
 }
Ejemplo n.º 14
0
 public OnBackOrder(Product item)
 {
     _item = item;
 }
Ejemplo n.º 15
0
        /// <summary>
        /// Adds a product to the cart
        /// </summary>
        public void AddItem(Product product, int quantity, DateTime dateAdded)
        {
            //see if this item is in the cart already
            ShoppingCartItem 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);
                } else {
                    if (quantity > 0) {
                        item = new ShoppingCartItem(product, quantity, dateAdded);

                        //add to list
                        Items.Add(item);
                    }
                }

            }
        }
Ejemplo n.º 16
0
 /// <summary>
 /// Adds a product to the cart
 /// </summary>
 public void AddItem(Product product,int quantity)
 {
     AddItem(product, quantity,DateTime.Now);
 }
Ejemplo n.º 17
0
 /// <summary>
 /// Adds a product to the cart
 /// </summary>
 public void AddItem(Product product)
 {
     AddItem(product, 1);
 }
Ejemplo n.º 18
0
 public void Save(Product p)
 {
     productList.Add(p);
 }
Ejemplo n.º 19
0
 public void Nothing_Should_Be_Added_When_0_Passed_as_Quantity_To_AddItem()
 {
     ShoppingCart cart = new ShoppingCart("TEST");
     Product p = new Product("SKU");
     cart.AddItem(p, 0);
     Assert.AreEqual(0, cart.Items.Count);
 }
Ejemplo n.º 20
0
        public void Total_Should_Be_110_With_90_Subtotal_10_Tax_and_10_Shipping()
        {
            ShoppingCart cart = new ShoppingCart("TEST");
            Product p = new Product("SKU");
            p.Price = 90;
            cart.AddItem(p, 1);
            Assert.AreEqual(90, cart.SubTotal);

            cart.TaxAmount = 10;
            cart.ShippingAmount = 10;

            Assert.AreEqual(110, cart.Total);
        }
Ejemplo n.º 21
0
 public void ProductModel_Should_Set_Inventory_State_To_InStock_With_10_OnHand_And_DateAvailable_Now()
 {
     Product p = new Product("TEST","test","test",true, 10, 1, DateTime.Now.AddDays(-7), true,true);
     Assert.AreEqual(typeof(InStock), p.CurrentInventory.GetType());
 }
Ejemplo n.º 22
0
        /// <summary>
        /// Adjusts the quantity of an item in the cart
        /// </summary>
        public void AdjustQuantity(Product product, int newQuantity)
        {
            ShoppingCartItem itemToAdjust = FindItem(product);
            if (itemToAdjust != null) {
                if (newQuantity <= 0) {
                    this.RemoveItem(product);
                } else {
                    itemToAdjust.AdjustQuantity(newQuantity);
                }

            }
        }
Ejemplo n.º 23
0
 public void ProductModel_Should_Set_Inventory_State_To_Unavailable_With_0_OnHand_DateAvailable_And_Not_AllowBackOrder()
 {
     Product p = new Product("TEST", "test", "test", true, 10, 0, DateTime.Now.AddDays(-7), false, true);
     Assert.AreEqual(typeof(Unavailable), p.CurrentInventory.GetType());
 }
Ejemplo n.º 24
0
 /// <summary>
 /// Finds an item in the cart
 /// </summary>
 /// <param name="product"></param>
 /// <returns></returns>
 public ShoppingCartItem FindItem(Product product)
 {
     //see if this item is in the cart already
     return (from items in Items
             where items.Product.Equals(product)
             select items).SingleOrDefault();
 }
Ejemplo n.º 25
0
 /// <summary>
 /// Remmoves a product from the cart
 /// </summary>
 public void RemoveItem(Product product)
 {
     RemoveItem(product.SKU);
 }
Ejemplo n.º 26
0
 public void ProductModel_Should_Set_Inventory_State_To_PreOrder_With_10_OnHand_DateAvailable_Future()
 {
     Product p = new Product("TEST", "test", "test", true, 10, 10, DateTime.Now.AddDays(7), false, true);
     p.AllowPreOrder = true;
     Assert.AreEqual(typeof(OnPreOrder), p.CurrentInventory.GetType());
 }
Ejemplo n.º 27
0
 public Unavailable(Product item)
 {
     _item = item;
 }
Ejemplo n.º 28
0
 Product GetTestProduct()
 {
     var result = new Product("SKU", "Name", "Blurb", true, 100, 1, DateTime.Now, true, true);
     result.Price = 10M;
     return result;
 }
Ejemplo n.º 29
0
 public ShoppingCartItem(Product product)
     : this(product, 1,DateTime.Now)
 {
 }