コード例 #1
0
        public void Add_RedirectsToActionIndexInStore()
        {
            var actionResult = _controller.Add(_cart, 1) as RedirectToActionResult;

            Assert.Equal("Index", actionResult?.ActionName);
            Assert.Equal("Store", actionResult?.ControllerName);
        }
コード例 #2
0
        public void Add_Successful_RedirectsToActionIndexOfStore()
        {
            var result = _controller.Add(4, 2, _cart) as RedirectToActionResult;

            Assert.Equal("Index", result?.ActionName);
            Assert.Equal("Store", result?.ControllerName);
        }
コード例 #3
0
        public void AddShouldRedirectToActionIndexOfStoreWhenSuccessfull()
        {
            RedirectToActionResult result = _controller.Add(4, 2, _cart) as RedirectToActionResult;

            Assert.Equal("Index", result?.ActionName);
            Assert.Equal("Store", result?.ControllerName);
        }
コード例 #4
0
ファイル: AddToCart.aspx.cs プロジェクト: dhikanavy/Tokobedia
        protected void addToCartButton_Click(object sender, EventArgs e)
        {
            int    id = Int32.Parse(Request.QueryString["id"]), Quantity = 0;
            string messageError = "";

            messageError = CartController.Add(addToCartQuantityTxt.Text, id);

            if (messageError != "")
            {
                labelErrorAddToCart.Text = messageError;
            }
            else
            {
                User user = (User)Session[Constant.Keys.AUTH];
                Quantity = int.Parse(addToCartQuantityTxt.Text);
                Product product = ProductHandler.get(id);
                if (CartHandler.get(user.ID, product.ID) != null)
                {
                    CartHandler.updateQuantity(user.ID, id, Quantity);
                }
                else
                {
                    CartInformation currentProduct = new CartInformation();
                    currentProduct.ID       = product.ID;
                    currentProduct.Name     = product.Name;
                    currentProduct.Price    = product.Price;
                    currentProduct.Quantity = Quantity;
                    currentProduct.SubTotal = currentProduct.Quantity * currentProduct.Price;
                    CartHandler.add(user.ID, id, Quantity);
                }
                var redirecTo = Constant.Routes.VIEW_CART_ROUTE;
                Response.Redirect(redirecTo);
            }
        }
コード例 #5
0
        public void ShoulReturnInternalServerErrorWhenAddingWithException()
        {
            // Arrange
            var controller = new CartController(
                new StubIShoppingCartRepository
            {
                SaveShoppingCartShoppingCart = cart =>
                {
                    throw new Exception("error");
                }
            },
                new StubIProductRepository
            {
                ProductExistsInt32 = productId => productId.Equals(1)
            });

            SetupControllerForTests(controller);

            // Act
            var response = controller.Add(new CartItem
            {
                ProductId    = 1,
                ProductName  = "name",
                ProductPrice = 1m,
                Quantity     = 1
            });
            var error = JsonConvert.DeserializeAnonymousType(response.Content.ReadAsStringAsync().Result, new { Message = string.Empty });

            // Assert
            Assert.AreEqual(HttpStatusCode.InternalServerError, response.StatusCode);
            Assert.AreEqual("error", error.Message);
        }
コード例 #6
0
        public void ShoulReturnBadRequestWhenAddInvalidItemModel()
        {
            // Arrange
            var controller = new CartController(
                new StubIShoppingCartRepository(),
                new StubIProductRepository
            {
                ProductExistsInt32 = productId => productId.Equals(1)
            });

            SetupControllerForTests(controller);

            // Act
            var response = controller.Add(new CartItem
            {
                ProductId    = 1,
                ProductName  = string.Empty, // invalid product name
                ProductPrice = 9.99m,
                Quantity     = 1
            });
            var error = JsonConvert.DeserializeAnonymousType(response.Content.ReadAsStringAsync().Result, new { Message = string.Empty });

            // Assert
            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
            Assert.AreEqual("The ProductName field is required.", error.Message);
        }
コード例 #7
0
        public IEnumerable <Models.ShoppingBasketItem> Put(Guid shoppingBasketId, int productId, int newQuantity)
        {
            HttpContext.Current.Request.Cookies.Add(new HttpCookie("ShoppingCartId", shoppingBasketId.ToString("D")));
            var currentQuantity = _legacyController.Model.Items.FirstOrDefault(i => i.Product.Id == productId)?.Quantity ?? 0;

            if (currentQuantity != newQuantity)
            {
                if (newQuantity < currentQuantity)
                {
                    for (int iteration = 0; iteration < (currentQuantity - newQuantity); iteration++)
                    {
                        _legacyController.Remove(productId);
                    }
                }
                else
                {
                    for (int iteration = 0; iteration < (newQuantity - currentQuantity); iteration++)
                    {
                        _legacyController.Add(productId);
                    }
                }
            }

            return(Get(shoppingBasketId));
        }
コード例 #8
0
        public void Add_Successful_RedirectsToActionIndexOfStoreAndAddsProductToCart()
        {
            var result = Assert.IsType <RedirectToActionResult>(_controller.Add(4, 2, _cart));

            Assert.Equal("Index", result.ActionName);
            Assert.Equal("Store", result.ControllerName);
            Assert.Equal(2, _cart.NumberOfItems);
        }
コード例 #9
0
        public void Add_RedirectsToActionIndexInStoreAndAddsProductToCart()
        {
            _beerRepository.Setup(b => b.GetBy(1)).Returns(_context.BavikPils);
            var actionResult = Assert.IsType <RedirectToActionResult>(_controller.Add(_cart, 1, 4));

            Assert.Equal("Index", actionResult.ActionName);
            Assert.Equal("Store", actionResult.ControllerName);
            Assert.Equal(2, _cart.NumberOfItems);
        }
コード例 #10
0
ファイル: Cart.cs プロジェクト: chrzastek/ShopTemplate
        public void AddExistingProduct()
        {
            //arrange
            CartController cartController = new CartController(Mocks.GetProductRepository());

            //act
            IActionResult result = cartController.Add(1, Mocks.GetCart(), "returnUrl");

            //assert
            Assert.AreEqual(typeof(RedirectToActionResult), result.GetType());
        }
コード例 #11
0
ファイル: Cart.cs プロジェクト: chrzastek/ShopTemplate
        public void AddUnexistingProduct()
        {
            //arrange
            CartController cartController = new CartController(Mocks.GetProductRepository());

            //act
            IActionResult result = cartController.Add(55, Mocks.GetCart(), "returnUrl");

            //assert
            Assert.AreEqual(typeof(ViewResult), result.GetType());
            ViewResult viewResult = (ViewResult)result;

            Assert.AreEqual("Error", viewResult.ViewName);
        }
コード例 #12
0
        public void ShoulReturnBadRequestWhenAddNullModel()
        {
            // Arrange
            var controller = new CartController(null, null);

            SetupControllerForTests(controller);

            // Act
            var response = controller.Add(null);
            var error    = JsonConvert.DeserializeAnonymousType(response.Content.ReadAsStringAsync().Result, new { Message = string.Empty });

            // Assert
            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
コード例 #13
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);
        }
コード例 #14
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);
        }
コード例 #15
0
        public void Adding_Product_To_Cart_Goes_To_Cart_Screen()
        {
            Mock <IProductsRepository> mock = new Mock <IProductsRepository>();

            mock.Setup(m => m.Products).Returns(new Product[]
            {
                new Product {
                    ProductID = 1, Name = "P1", Price = 100m, Category = "Apples"
                }
            }.AsQueryable());

            Cart           cart       = new Cart();
            CartController controller = new CartController(mock.Object, null);

            RedirectToRouteResult result = controller.Add(cart, 2, "myUrl");

            Assert.AreEqual("Index", result.RouteValues["action"]);
            Assert.AreEqual("myUrl", result.RouteValues["returnUrl"]);
        }
コード例 #16
0
        public void Can_Add_To_Cart()
        {
            Mock <IProductsRepository> mock = new Mock <IProductsRepository>();

            mock.Setup(m => m.Products).Returns(new Product[]
            {
                new Product {
                    ProductID = 1, Name = "P1", Price = 100m, Category = "Apples"
                }
            }.AsQueryable());

            Cart           cart       = new Cart();
            CartController controller = new CartController(mock.Object, null);

            controller.Add(cart, 1, null);

            Assert.AreEqual(1, cart.Items.Count());
            Assert.AreEqual(1, cart.Items.ToArray()[0].Product.ProductID);
        }
コード例 #17
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);
        }
コード例 #18
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);
        }
コード例 #19
0
        public void ShouldAddAnItemToANewCart()
        {
            // Arrange
            var targetShoppingCartSaved = false;

            var cartRepository = new StubIShoppingCartRepository
            {
                SaveShoppingCartShoppingCart = (cart) =>
                {
                    targetShoppingCartSaved = true;
                    return(cart);
                }
            };

            var productRepository = new StubIProductRepository
            {
                ProductExistsInt32 = productId => productId.Equals(1)
            };

            var controller = new CartController(cartRepository, productRepository);

            SetupControllerForTests(controller);

            // Act
            var result = controller.Add(new CartItem
            {
                ProductId    = 1,
                ProductName  = "Test Product",
                ProductPrice = 9.99m,
                Quantity     = 1
            });

            // Assert
            Assert.IsTrue(targetShoppingCartSaved);
            Assert.AreEqual(result.StatusCode, HttpStatusCode.Created);
        }
コード例 #20
0
 public static String[] Add(String productID, String userID)
 {
     String[] message = controller.Add(Int32.Parse(productID), Int32.Parse(userID), 1);
     return(message);
 }