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)); }
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)); }
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)); }
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); }
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); }
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); }
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); }
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)); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }