Exemplo n.º 1
0
        public void AddCartItem_NotExisted_TotalItemCountIsIncreased()
        {
            var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now);

            cart.AddCartItem(new Product("11111111-1111-1111-1111-111111111111", "saleName", 200, 100, "saleDescription", int.MaxValue), 1);
            Assert.AreEqual(1, cart.TotalItemCount());

            cart.AddCartItem(new Product("22222222-2222-2222-2222-222222222222", "saleName", 200, 100, "saleDescription", int.MaxValue), 1);
            Assert.AreEqual(2, cart.TotalItemCount());
        }
Exemplo n.º 2
0
        public void AddCartItem_NotExisted_TotalItemCountIsIncreased()
        {
            var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now);

            cart.AddCartItem("11111111-1111-1111-1111-111111111111", 1, 100);
            Assert.AreEqual(1, cart.TotalItemCount());

            cart.AddCartItem("22222222-2222-2222-2222-222222222222", 1, 100);
            Assert.AreEqual(2, cart.TotalItemCount());
        }
Exemplo n.º 3
0
        protected async void BtnAddToCart_Click(object sender, EventArgs e)
        {
            Button       button       = (Button)sender;
            var          productID    = button.CommandArgument.ToString();
            RepeaterItem repeaterItem = button.NamingContainer as RepeaterItem;
            var          totalItem    = (TextBox)repeaterItem.FindControl("TotalItems");

            ProductModel product = await ProductRepository.SingleInstance.GetProductsAsync(int.Parse(productID));

            try
            {
                if (int.Parse(totalItem.Text) <= 0)
                {
                    BuildSweetAlert("#fff", AlertStatus.warning, "Error", "Error adding to cart item cannot have 0 value: " + product.ProductName);
                    return;
                }
                product.TotalNumberOfProduct = int.Parse(totalItem.Text);
                product.SubTotalPrice        = product.TotalNumberOfProduct * product.ProductPrice;
                if (await ProductRepository.SingleInstance.CheckIfProductIsEnough(product.TotalNumberOfProduct, int.Parse(productID)) == false || product.TotalNumberOfProduct == 0)
                {
                    BuildSweetAlert("#ffcccb", AlertStatus.error, "Error!", "Error adding to cart: " + product.ProductName + " due to not enough stocks!");
                    return;
                }
                BuildSweetAlert("#fff", AlertStatus.success, "Successfull", "Successfully added to cart: " + product.ProductName);
                Cart.AddCartItem(product);
            }
            catch (Exception)
            {
                BuildSweetAlert("#ffcccb", AlertStatus.error, "Error", "Error Adding to Cart: " + product.ProductName);
            }
            LoadCart();
        }
Exemplo n.º 4
0
        public void ModifyPrice_LessZero_ThrowArgumentException()
        {
            var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now);

            cart.AddCartItem("11111111-1111-1111-1111-111111111111", 1, 100);
            var cartItem = cart.GetCartItem("11111111-1111-1111-1111-111111111111");

            Assert.AreNotEqual(null, cartItem);
            Assert.AreEqual(100, cartItem.UnitPrice);
            cartItem.ModifyUnitPrice(-1);
        }
Exemplo n.º 5
0
        public void TestChangeProductQuantityOfNotAddedProductName()
        {
            var categoryType = CategoryWithDiscount.Clothing;
            var product      = new Product(categoryType)
            {
                name  = "Game Of Thrones",
                price = 100
            };

            var cartItem = new CartItem(product);

            cartItem.quantity = 10;

            var cart = new Cart(DiscountType.FixedDiscount, 100);

            cart.AddCartItem(cartItem);

            cart.AddCartItem(cartItem);
            cart.ChangeProductQuantity("Game Of Thrones", 200);
        }
Exemplo n.º 6
0
        public void ModifyPrice_LessZero_ThrowArgumentException()
        {
            var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now);

            cart.AddCartItem(new Product("11111111-1111-1111-1111-111111111111", "saleName", 200, 100, "saleDescription", int.MaxValue), 1);
            var cartItem = cart.GetCartItem("11111111-1111-1111-1111-111111111111");

            Assert.AreNotEqual(null, cartItem);
            Assert.AreEqual(100, cartItem.UnitPrice);
            cartItem.ModifyUnitPrice(-1);
        }
Exemplo n.º 7
0
        public void ModifyQuantity_EqualsZero_ThrowArgumentException()
        {
            var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now);

            cart.AddCartItem("11111111-1111-1111-1111-111111111111", 1, 100);
            var cartItem = cart.GetCartItem("11111111-1111-1111-1111-111111111111");

            Assert.AreNotEqual(null, cartItem);
            Assert.AreEqual(1, cartItem.Quantity);
            cartItem.ModifyQuantity(0);
        }
Exemplo n.º 8
0
        public void ModifyPrice_MoreZero_Success()
        {
            var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now);

            cart.AddCartItem("11111111-1111-1111-1111-111111111111", 1, 100);
            var cartItem = cart.GetCartItem("11111111-1111-1111-1111-111111111111");

            Assert.AreNotEqual(null, cartItem);
            Assert.AreEqual(100, cartItem.UnitPrice);
            cartItem.ModifyUnitPrice(10);
            Assert.AreEqual(10, cartItem.UnitPrice);
        }
Exemplo n.º 9
0
        public void ModifyQuantity_MoreZero_Success()
        {
            var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now);

            cart.AddCartItem(new Product("11111111-1111-1111-1111-111111111111", "saleName", 200, 100, "saleDescription", int.MaxValue), 1);
            var cartItem = cart.GetCartItem("11111111-1111-1111-1111-111111111111");

            Assert.AreNotEqual(null, cartItem);
            Assert.AreEqual(1, cartItem.Quantity);
            cartItem.ModifyQuantity(10);
            Assert.AreEqual(10, cartItem.Quantity);
        }
Exemplo n.º 10
0
        public void AddFavoritesItem_NotExist_Success()
        {
            var favorites = new Favorites("id", null);

            Assert.AreNotEqual(null, favorites);
            Assert.AreEqual(0, favorites.GetFavoritesItems().Count);

            var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now);

            cart.AddCartItem(new Product("11111111-1111-1111-1111-111111111111", "saleName", 200, 100, "saleDescription", int.MaxValue), 1);
            var cartItem = cart.GetCartItem("11111111-1111-1111-1111-111111111111");

            favorites.AddFavoritesItem(cartItem);
            Assert.AreEqual(1, favorites.GetFavoritesItems().Count);
        }
Exemplo n.º 11
0
        public void GenerateReceipt_ShouldProduceExpectedReceiptFormat(int item1Quantity, string item1ProductName, decimal item1ShelfPrice,
                                                                       int item2Quantity, string item2ProductName, decimal item2ShelfPrice,
                                                                       string expectedResult)
        {
            // Arrange
            var mockLogger = new Mock <ILogger>();

            var serviceProvider = RegisterServices();

            var cart = new Cart(mockLogger.Object, serviceProvider)
            {
                CartNo = 1
            };

            cart.AddCartItem(item1Quantity, item1ProductName, item1ShelfPrice);
            cart.AddCartItem(item2Quantity, item2ProductName, item2ShelfPrice);

            // Act
            string acualResult = cart.GenerateReceipt();

            // Assert
            acualResult = acualResult.Replace(Environment.NewLine, "");
            Assert.Equal(expectedResult, acualResult);
        }
Exemplo n.º 12
0
        public void AddCartItem_ShouldAllowToAddManyCartItems(int nbCartItemToAdd)
        {
            // Arrange
            var mockLogger      = new Mock <ILogger>();
            var serviceProvider = RegisterServices();
            var cart            = new Cart(mockLogger.Object, serviceProvider);

            // Act
            for (int i = 1; i <= nbCartItemToAdd; i++)
            {
                cart.AddCartItem(1, "item " + i, 10);
            }

            // Assert
            Assert.Equal(nbCartItemToAdd, cart.ListCartItem.Count);

            DisposeServices(serviceProvider);
        }
Exemplo n.º 13
0
        public void TestGetCartItemByProducNameNotAdded()
        {
            var categoryType = CategoryWithDiscount.Clothing;
            var product      = new Product(categoryType)
            {
                name  = "Game Of Thrones",
                price = 100
            };

            var cartItem = new CartItem(product);

            cartItem.quantity = 10;

            var cart = new Cart(DiscountType.FixedDiscount, 100);

            cart.AddCartItem(cartItem);

            cart.GetCartItem("abc").Should().BeNull();
        }
Exemplo n.º 14
0
        public void ListCartItemProductName()
        {
            var categoryType = CategoryWithDiscount.Clothing;
            var product      = new Product(categoryType)
            {
                name  = "Game Of Thrones",
                price = 100
            };

            var cartItem = new CartItem(product);

            cartItem.quantity = 10;

            var cart = new Cart(DiscountType.FixedDiscount, 100);

            cart.AddCartItem(cartItem);

            cart.ListCartItemProductName().Find(x => x == product.name).Should().Be("Game Of Thrones");
        }
Exemplo n.º 15
0
        public void AddCartItem_ShouldSetPropertiesCorrectly(int quantity, string productName, decimal shelfPrice)
        {
            // Arrange
            var mockLogger = new Mock <ILogger>();

            var serviceProvider = RegisterServices();

            var cart = new Cart(mockLogger.Object, serviceProvider);

            // Act
            var cartItem = cart.AddCartItem(quantity, productName, shelfPrice);

            // Assert
            Assert.Equal(quantity, cartItem.Quantity);
            Assert.Equal(productName, cartItem.Product.ProductName);
            Assert.Equal(shelfPrice, cartItem.ShelfPrice);

            DisposeServices(serviceProvider);
        }
Exemplo n.º 16
0
        public void TestRemoveCartItem()
        {
            var categoryType = CategoryWithDiscount.Clothing;
            var product      = new Product(categoryType)
            {
                name  = "Game Of Thrones",
                price = 100
            };

            var cartItem = new CartItem(product);

            cartItem.quantity = 10;

            var cart = new Cart(DiscountType.FixedDiscount, 100);

            cart.AddCartItem(cartItem);

            cart.RemoveCartItem("Game Of Thrones");
            cart.cartItemList.Count.Should().Be(0);
        }
Exemplo n.º 17
0
        public void LogReceipt_ShouldCallLoggerWithProductInfo()
        {
            // Arrange
            var mockLogger = new Mock <ILogger>();

            mockLogger.Setup(mock => mock.Log(It.IsAny <String>()));

            var serviceProvider = RegisterServices();

            var cart        = new Cart(mockLogger.Object, serviceProvider);
            var productName = "book";

            cart.AddCartItem(1, productName, 20);


            // Act
            cart.LogReceipt();

            // Assert
            mockLogger.Verify(mock => mock.Log(It.Is <string>(s => s.Contains(productName))), Times.Once);
        }
        protected override void Seed(ShoppingContext context)
        {
            // Users
            IList <User> users = new List <User>();
            User         kurt  = new User("Kurt", "Hansen", "*****@*****.**", "Imaginative Street 123, 4000 Fantasy World");

            users.Add(kurt);
            foreach (User user in users)
            {
                context.Users.Add(user);
            }

            // Items
            IList <Item> items               = new List <Item>();
            Item         datterinoTomater    = new Item("Datterino tomater", "Økologiske datterino tomater", 21.00m, "mad,frugtOgGrønt,grøntsager");
            Item         vildmoseKartofler   = new Item("Vildmose kartofler", "Miniature kartofler dyrket i Nordjylland", 20.00m, "mad,frugtOgGrønt,grøntsager");
            Item         roastbeef           = new Item("Roastbeef", "Af tyksteg", 210.00m, "mad,kød,oksekød");
            Item         oksetyndsteg        = new Item("Oksetyndsteg", "Lækker, lækker oksetyndsteg til en sulten mavse", 299.00m, "mad,kød,oksekød");
            Item         kulmulefilet        = new Item("Kulmulefilet", "Kulmulefilet med skind (merluccius merluccius)", 160.00m, "mad,fisk,fileterOgFars");
            Item         jerseyLetmælk       = new Item("JerseyLetmælk", "Irmas ækologiske mælk fra ko", 12.00m, "mad,mejeri,mælkOgFløde");
            Item         jomfruhummer        = new Item("Jjomfruhummer", "De har lange organer med muskuløse haler, og bor i sprækker eller huler på havbunden", 450.00m, "mad,fisk,fileterOgFars");
            Item         kærnemælk           = new Item("Kærnemælk", "Kærnemælk henviser til en række af mælkedrikke. Oprindeligt kærnemælk var væsken efterladt efter kærning smør ud af fløde", 6.95m, "mad,mejeri,mælkOgFløde");
            Item         chokoRugbrødsboller = new Item("Choko rugbrødsboller", "Super lækre chokoladefyldte rugbrødsboller", 40.00m, "mad,brødOgKager,rugbrød");
            Item         carbernetSauvignon  = new Item("Carbernet Sauvignon", "Denne vin stammer fra Los Morros ejendom i Maipo-dalen, der er den første vindyrknings dal i Chile til at blive internationalt anerkendt for sin fremragende Cabernet Sauvignon", 129.95m, "mad,vin,rødvin");
            Item         hyldebærSaft        = new Item("Hyldebær saft", "Juice er en væske (drik), der naturligt findes i frugt og grøntsager", 21.95m, "mad,drikkevarer,juiceSaftOgMost");
            Item         colafantasi         = new Item("Colafantasi", "Dejlig sukkerfyldt væske", 14.95m, "mad,drikkevarer,juiceSaftOgMost");
            Item         hvedemel            = new Item("Hvedemel", "Mel er et pulver fremstillet ved formaling af ubehandlede korn eller andre frø eller rødder", 16.00m, "mad,kolonial,bagning");
            Item         nøddemix            = new Item("Nøddemix", "En nød er en frugt, der består af en hård skal og en frø, som er generelt spiselige", 23.00m, "mad,kolonial,bagning");
            Item         chokoladetærte      = new Item("Chokoladetærte", "Dejlig chokoladetærte", 32.95m, "mad,kolonial,bagning");
            Item         millionbøf          = new Item("Millionbøf", "Med kartoffelmos", 18.75m, "mad,frost,middagsretter");
            Item         finskSødLakrids     = new Item("Finsk sød lakrids", "Lakrids er roden af Glycyrrhiza glabra, hvorfra en sød smag kan udvindes", 26.00m, "mad,kiosk,slik");
            Item         brystkarameller     = new Item("Brystkarameller", "Bolcher som i gamle dage", 29.95m, "mad,kiosk,slik");
            Item         vitaminC            = new Item("VitaminC", "Vitamin C eller L-ascorbinsyre, eller blot ascorbat (anionen af ascorbinsyre), er et vigtigt næringsstof for mennesker og visse andre dyrearter", 65.00m, "mad,pleje,vitaminerOgKosttilskud");
            Item         proteinbar          = new Item("Proteinbar", "Bliv bomstærk", 20.00m, "mad,pleje,vitaminerOgKosttilskud");
            Item         toiletpapir         = new Item("Toiletpapir", "3-lags papir fremstillet af ny papirmasse bleget med brintoverilte.", 35.00m, "husholdning,køkkenrulleOgToiletpapir");
            Item         granaPadano         = new Item("Grana Padano", "Den dufter af parmesan. Den knaser, har smag af salt og ægte umamismag, der bliver hængende i munden længe efter.", 54.00m, "mad,mejeri,ost");
            Item         landana             = new Item("Landana", "Smagfuld, blød og cremet. Naturligt lagret på træ. Produceret efter gamle hollandske ostetraditioner. 100% mælk fra fritgående køer.", 44.95m, "mad,mejeri,ost");
            Item         flødeost            = new Item("Flødeost", "m. hvidløg.", 9.95m, "mad,mejeri,ost");
            Item         brieMarcillat       = new Item("Brie Marcillat", "Plasir de Roi Brie.", 11.95m, "mad,mejeri,ost");
            Item         thybo               = new Item("Thybo", "Dejlig åååst.", 50.00m, "mad,mejeri,ost");
            Item         flødehavarti        = new Item("Flødehavarti", "38% fedt.", 17.95m, "mad,mejeri,ost");
            Item         gammelOlesFar       = new Item("Gammel Oles far", "Føj for satan den er ulækker den her.", 62.95m, "mad,mejeri,ost");

            items.Add(datterinoTomater);
            items.Add(vildmoseKartofler);
            items.Add(roastbeef);
            items.Add(oksetyndsteg);
            items.Add(kulmulefilet);
            items.Add(jerseyLetmælk);
            items.Add(kærnemælk);
            items.Add(jomfruhummer);
            items.Add(chokoRugbrødsboller);
            items.Add(carbernetSauvignon);
            items.Add(hyldebærSaft);
            items.Add(colafantasi);
            items.Add(hvedemel);
            items.Add(nøddemix);
            items.Add(chokoladetærte);
            items.Add(millionbøf);
            items.Add(finskSødLakrids);
            items.Add(brystkarameller);
            items.Add(vitaminC);
            items.Add(proteinbar);
            items.Add(toiletpapir);
            items.Add(granaPadano);
            items.Add(landana);
            items.Add(flødeost);
            items.Add(brieMarcillat);
            items.Add(thybo);
            items.Add(flødehavarti);
            items.Add(gammelOlesFar);

            foreach (Item item in items)
            {
                context.Items.Add(item);
            }

            // Carts
            IList <Cart> carts = new List <Cart>();

            //kurt cart 1 - open
            Cart cart1 = new Cart(kurt);

            cart1.AddCartItem(new CartItem(hvedemel, hvedemel.Price, 4));
            cart1.AddCartItem(new CartItem(jerseyLetmælk, jerseyLetmælk.Price, 6));
            cart1.AddCartItem(new CartItem(nøddemix, nøddemix.Price, 2));
            cart1.AddCartItem(new CartItem(millionbøf, millionbøf.Price, 1));
            cart1.AddCartItem(new CartItem(vitaminC, vitaminC.Price, 1));
            carts.Add(cart1);

            //kurt cart 2 - open
            Cart cart2 = new Cart(kurt);

            cart2.AddCartItem(new CartItem(toiletpapir, toiletpapir.Price, 35));
            cart2.AddCartItem(new CartItem(proteinbar, proteinbar.Price, 6));
            carts.Add(cart2);

            //kurt cart 3 - closed
            Cart cart3 = new Cart(kurt);

            cart3.AddCartItem(new CartItem(flødeost, flødeost.Price, 1));
            cart3.AddCartItem(new CartItem(millionbøf, millionbøf.Price, 1));
            cart3.AddCartItem(new CartItem(oksetyndsteg, oksetyndsteg.Price, 1));
            cart3.AddCartItem(new CartItem(thybo, thybo.Price, 2));
            cart3.AddCartItem(new CartItem(chokoladetærte, chokoladetærte.Price, 2));
            cart3.CheckedOutAt = DateTime.UtcNow.AddHours(2);
            carts.Add(cart3);

            foreach (Cart cart in carts)
            {
                context.Carts.Add(cart);
            }

            base.Seed(context);
        }
Exemplo n.º 19
0
        public void Test_Total_Price_Should_Be_100_When_1x_Potter_EP1_Is_In_Cart()
        {
            // arrange
            _cart.AddCartItem(new CartItem
            {
                ID    = 1,
                Name  = "Harry Potter (Book 1)",
                Price = 100,
                Count = 1
            });

            // act
            int actual   = _cart.GetTotalPrice();
            int expected = 100;

            // assert
            Assert.AreEqual(expected, actual);
        }