Beispiel #1
0
        public ActionResult GetShoppingCartContent()
        {
            var cart = ShoppingCart.GetCart(this.HttpContext);
            ShoppingCartCollection cartCollection = Manager.Instance().GetShoppingCartContent(cart.CartId);
            CartsCollection        carts          = Manager.Instance().ConvertBLCartsToSLCarts(cartCollection);

            return(View("GetShoppingCartContent", carts.ProductList));
        }
Beispiel #2
0
        public ActionResult DeleteItemFromCart(int productId)
        {
            // Remove the item from the cart
            var cart = ShoppingCart.GetCart(this.HttpContext);

            cart.Added.Id = productId;
            Manager.Instance().DeleteItemFromCart(cart);
            ShoppingCartCollection cartCollection = Manager.Instance().GetShoppingCartContent(cart.CartId);
            CartsCollection        carts          = Manager.Instance().ConvertBLCartsToSLCarts(cartCollection);

            return(View("GetShoppingCartContent", carts.ProductList));
        }
Beispiel #3
0
        public ActionResult AddOrder()
        {
            var                    cart           = ShoppingCart.GetCart(this.HttpContext);
            OrderModel             order          = new OrderModel();
            ShoppingCartCollection cartCollection = Manager.Instance().GetShoppingCartContent(cart.CartId);
            CartsCollection        carts          = Manager.Instance().ConvertBLCartsToSLCarts(cartCollection);

            foreach (var item in carts.ProductList)
            {
                order.Cart.Add(item);
            }
            return(View("AddOrder", order));
        }
Beispiel #4
0
        public void WhenCollectionIsEmptyThenGetAllReturnsEmptyArray()
        {
            var testContext = new TestContext();

            var inMemoryCollection = new CartsCollection();
            var controller         = new CartController(null, inMemoryCollection,
                                                        testContext.CartFactory, testContext.PriceList, new NeutralPipeline());

            var response = controller.GetAll();

            Assert.NotNull(response);
            Assert.Equal(CartOperationStatus.Successful, response.Status);
            Assert.Empty(response.Body);
        }
Beispiel #5
0
        public void WhenCartDoesNotExistThenGetCartReturnsExceptionInMessage()
        {
            var testContext = new TestContext();

            var inMemoryCollection = new CartsCollection();
            var controller         = new CartController(null, inMemoryCollection,
                                                        testContext.CartFactory, testContext.PriceList, new NeutralPipeline());

            var response = controller.GetCart("001");

            Assert.NotNull(response);
            Assert.Equal(CartOperationStatus.Error, response.Status);
            Assert.NotNull(response.Exception);
            Assert.Null(response.Body);
        }
Beispiel #6
0
        public void WhenAddingToCartAndSkuCouldNotBeFoundThenExceptionIsReturnedInMessage()
        {
            var testContext = new TestContext();

            var inMemoryCollection = new CartsCollection();
            var controller         = new CartController(null, inMemoryCollection,
                                                        testContext.CartFactory, testContext.PriceList, new NeutralPipeline());

            var response = controller.Add("001", "A", null);

            Assert.NotNull(response);
            Assert.Equal(CartOperationStatus.Error, response.Status);
            Assert.NotNull(response.Exception);
            Assert.Null(response.Body);
        }
Beispiel #7
0
        public CartsCollection ConvertBLCartsToSLCarts(ShoppingCartCollection carts)
        {
            CartsCollection Carts = new CartsCollection();

            foreach (var item in carts.ListOfCarts)
            {
                CartModel cart = new CartModel();
                cart.ProductId   = item.Added.Id;
                cart.ProductName = item.Added.Name;
                cart.Price       = item.Added.Price;
                cart.Quantity    = item.Quantity;
                Carts.ProductList.Add(cart);
            }
            return(Carts);
        }
Beispiel #8
0
        public ActionResult AddOrder(OrderModel order)
        {
            Manager.Instance().AddOrder(order);
            var Cart = ShoppingCart.GetCart(this.HttpContext);

            foreach (var item in order.Cart)
            {
                ShoppingCart cart = Manager.Instance().ConvertCartModelToCart(item);
                cart.CartId = Cart.CartId;
                Manager.Instance().DeleteItemFromCart(cart);
            }
            ShoppingCartCollection cartCollection = Manager.Instance().GetShoppingCartContent(Cart.CartId);
            CartsCollection        carts          = Manager.Instance().ConvertBLCartsToSLCarts(cartCollection);

            return(View("GetShoppingCartContent", carts.ProductList));
        }
Beispiel #9
0
        public void WhenAddingToNonExistingCartThenExceptionIsReturnedInMessage()
        {
            var testContext = new TestContext();

            var sku = testContext.CreateNewSku("A", 100);

            var inMemoryCollection = new CartsCollection();
            var controller         = new CartController(null, inMemoryCollection,
                                                        testContext.CartFactory, testContext.PriceList, new NeutralPipeline());

            var response = controller.Add("001", sku.Id, null);

            Assert.NotNull(response);
            Assert.Equal(CartOperationStatus.Error, response.Status);
            Assert.NotNull(response.Exception);
            Assert.Null(response.Body);
        }
Beispiel #10
0
        public void WhenCollectionIsNotEmptyThenGetAllReturnsInfoCollection()
        {
            var testContext = new TestContext();

            var inMemoryCollection = new CartsCollection();

            inMemoryCollection.Add(new CartsCollection.CartsCollectionEntry(
                                       new CartInfo(), testContext.CartFactory.Create()));

            var controller = new CartController(null, inMemoryCollection,
                                                testContext.CartFactory, testContext.PriceList, new NeutralPipeline());

            var response = controller.GetAll();

            Assert.NotNull(response);
            Assert.Equal(CartOperationStatus.Successful, response.Status);
            Assert.NotEmpty(response.Body);
            Assert.Single(response.Body);
        }
Beispiel #11
0
        public void CannotDeleteCheckedOutCart()
        {
            var testContext = new TestContext();

            var inMemoryCollection = new CartsCollection();
            var cartEntry          = new CartsCollection.CartsCollectionEntry(
                new CartInfo(), testContext.CartFactory.Create());

            cartEntry.Info.CheckedOut = true;
            inMemoryCollection.Add(cartEntry);
            var controller = new CartController(null, inMemoryCollection,
                                                testContext.CartFactory, testContext.PriceList, new NeutralPipeline());

            var response = controller.Delete(cartEntry.Id);

            Assert.NotNull(response);
            Assert.Equal(CartOperationStatus.Error, response.Status);
            Assert.NotNull(response.Exception);
            Assert.Null(response.Body);
        }
Beispiel #12
0
        public void WhenCheckoutEmptyCartThenExceptionIsReturnedInMessage()
        {
            var testContext = new TestContext();

            var inMemoryCollection = new CartsCollection();
            var cartEntry          = new CartsCollection.CartsCollectionEntry(
                new CartInfo(), testContext.CartFactory.Create());

            inMemoryCollection.Add(cartEntry);

            var controller = new CartController(null, inMemoryCollection,
                                                testContext.CartFactory, testContext.PriceList, new NeutralPipeline());

            var response = controller.Checkout(cartEntry.Id);

            Assert.NotNull(response);
            Assert.Equal(CartOperationStatus.Error, response.Status);
            Assert.NotNull(response.Exception);
            Assert.Null(response.Body);
        }
Beispiel #13
0
        public void WhenCheckoutCartThenCartMarkedInCollectionAndNotRemoved()
        {
            var testContext = new TestContext();

            var inMemoryCollection = new CartsCollection();
            var cartEntry          = new CartsCollection.CartsCollectionEntry(
                new CartInfo(), testContext.CartFactory.Create());

            cartEntry.Cart.Add(testContext.CreateNewSku("A", 100));
            inMemoryCollection.Add(cartEntry);

            var controller = new CartController(null, inMemoryCollection,
                                                testContext.CartFactory, testContext.PriceList, new NeutralPipeline());

            var response = controller.Checkout(cartEntry.Id);

            Assert.NotNull(response);
            Assert.Equal(CartOperationStatus.Successful, response.Status);
            Assert.NotNull(response.Body);
            Assert.True(cartEntry.Info.CheckedOut);
        }
Beispiel #14
0
        public void WhenCartExistsThenGetCartReturnsCartContent()
        {
            var testContext = new TestContext();

            var inMemoryCollection = new CartsCollection();
            var cartEntry          = new CartsCollection.CartsCollectionEntry(
                new CartInfo(), testContext.CartFactory.Create());

            inMemoryCollection.Add(cartEntry);

            var controller = new CartController(null, inMemoryCollection,
                                                testContext.CartFactory, testContext.PriceList, new NeutralPipeline());

            var response = controller.GetCart(cartEntry.Id);

            Assert.NotNull(response);
            Assert.Equal(CartOperationStatus.Successful, response.Status);
            Assert.Null(response.Exception);
            Assert.NotNull(response.Body);
            Assert.NotNull(response.Body.Info);
            Assert.NotNull(response.Body.CartEntries);
        }
Beispiel #15
0
        public void WhenAddingToCartThenCartIsUpdatedInCollection()
        {
            var testContext = new TestContext();

            var sku = testContext.CreateNewSku("A", 100);

            var inMemoryCollection = new CartsCollection();
            var cartEntry          = new CartsCollection.CartsCollectionEntry(
                new CartInfo(), testContext.CartFactory.Create());

            inMemoryCollection.Add(cartEntry);
            Assert.Empty(cartEntry.Cart);

            var controller = new CartController(null, inMemoryCollection,
                                                testContext.CartFactory, testContext.PriceList, new NeutralPipeline());

            var response = controller.Add(cartEntry.Id, sku.Id, null);

            Assert.NotNull(response);
            Assert.Equal(CartOperationStatus.Successful, response.Status);
            Assert.NotNull(response.Body);
            Assert.NotEmpty(cartEntry.Cart);
        }
Beispiel #16
0
        public void WhenAddingToCheckedOutCartThenExceptionIsReturnedInMessage()
        {
            var testContext = new TestContext();

            var sku = testContext.CreateNewSku("A", 100);

            var inMemoryCollection = new CartsCollection();
            var cartEntry          = new CartsCollection.CartsCollectionEntry(
                new CartInfo(), testContext.CartFactory.Create());

            cartEntry.Info.CheckedOut = true;
            inMemoryCollection.Add(cartEntry);

            var controller = new CartController(null, inMemoryCollection,
                                                testContext.CartFactory, testContext.PriceList, new NeutralPipeline());

            var response = controller.Add(cartEntry.Id, sku.Id, null);

            Assert.NotNull(response);
            Assert.Equal(CartOperationStatus.Error, response.Status);
            Assert.NotNull(response.Exception);
            Assert.Null(response.Body);
        }