public async Task Can_add_items_to_cart()
        {
            const string cartId = "CartId_A";

            using (var context = CreateContext())
            {
                await context.Database.CreateExecutionStrategy().ExecuteAsync(
                    async() =>
                {
                    using (Fixture.BeginTransaction(context))
                    {
                        var albums = CreateTestAlbums(
                            10,
                            new Artist {
                            Name = "Kung Fu Kenny"
                        }, new Genre {
                            Name = "Rap"
                        });

                        context.AddRange(albums);
                        context.SaveChanges();

                        var controller = new ShoppingCartController(context, cartId);
                        var albumId    = albums[2].AlbumId;
                        await controller.AddToCart(albumId);

                        var cart = ShoppingCart.GetCart(context, cartId);
                        Assert.Single(await cart.GetCartItems());
                        Assert.Equal(albumId, (await cart.GetCartItems()).Single().AlbumId);
                    }
                });
            }
        }
Example #2
0
        public void AddProductToCartWhichExist()
        {
            FakeDataStore dataStore = MusicStoreEntitiesFactory.GetEmpty();

            dataStore.GenerateAndAddGenre(1);
            dataStore.GenerateAndAddArtist(1);
            dataStore.GenerateAndAddAlbum(3, 1, 1, 10M);
            ShoppingCartController controller = ControllerFactory.GetWiredUpController((s) => new ShoppingCartController(s), store: dataStore);

            controller.AddToCart(3, 5);
            RedirectToRouteResult result = controller.AddToCart(3, 5) as RedirectToRouteResult;

            controller.CartSummary();
            var cartCount = controller.ViewData["CartCount"].ToString();

            Assert.IsTrue(cartCount == "10");
        }
Example #3
0
        public void AddProductToCartInNegative()
        {
            FakeDataStore dataStore = MusicStoreEntitiesFactory.GetEmpty();

            dataStore.GenerateAndAddGenre(1);
            dataStore.GenerateAndAddArtist(1);
            dataStore.GenerateAndAddAlbum(2, 1, 1, 10M);
            ShoppingCartController controller = ControllerFactory.GetWiredUpController((s) => new ShoppingCartController(s), store: dataStore);
            RedirectToRouteResult  result     = controller.AddToCart(2, -5) as RedirectToRouteResult;

            Assert.IsTrue(result.RouteValues.ContainsValue("InvalidRequest"));
        }
Example #4
0
        public async void ShoppingCartAddToCartWorks()
        {
            var product = _context.Products.First();
            var user    = await _userManager.FindByNameAsync("*****@*****.**");

            var result = await _controller.AddToCart(product.ProductID, 2) as ViewResult;

            var model = result.Model as ShoppingCart;

            Assert.NotNull(model);
            Assert.Equal(model.ApplicationUser, user);
            Assert.Equal(model.Product, product);
        }
Example #5
0
        public void AddToCart_WhenCalled_ShouldAddItemToCart()
        {
            //Arrange
            var user = _context.Users.SingleOrDefault(u => u.UserName == "JohnJ");

            _controller.MockCurrentUser(user.Id, user.UserName);

            var itemType = GetItemType();

            var item = CreateNewItem(itemType);

            _context.Items.Add(item);
            _context.SaveChanges();

            //Act - Need to Mock HttpContext
            var result = _controller.AddToCart(item.Id);

            //Assert
            _context.Carts.Should().HaveCount(1);
        }
Example #6
0
        public void CallAddToCart()
        {
            // Arrange
            Mock <IShoppingCart>   shoppingCartMock   = new Mock <IShoppingCart>();
            Mock <ICartIdentifier> cartIdentifierMock = new Mock <ICartIdentifier>();

            Mock <ICoffee>         coffeeMock          = new Mock <ICoffee>();
            Mock <HttpContextBase> httpContextBaseMock = new Mock <HttpContextBase>();
            var id = Guid.NewGuid().ToString();

            cartIdentifierMock.Setup(m => m.GetCardId(It.IsAny <HttpContextBase>())).Returns(id);
            shoppingCartMock.Setup(m => m.GetShoppingCart(It.IsAny <string>())).Returns(shoppingCartMock.Object);

            ShoppingCartController shoppingCartController = new ShoppingCartController(shoppingCartMock.Object, cartIdentifierMock.Object);

            shoppingCartController.TempData["Order"] = coffeeMock.Object;

            //Act
            shoppingCartController.AddToCart();

            // Assert
            shoppingCartMock.Verify(m => m.AddToCart(It.IsAny <ICoffee>()), Times.Once());
        }
Example #7
0
        public void RedirectsToShoppingcartIndex()
        {
            // Arrange
            Mock <IShoppingCart>   shoppingCartMock   = new Mock <IShoppingCart>();
            Mock <ICartIdentifier> cartIdentifierMock = new Mock <ICartIdentifier>();

            Mock <ICoffee>         coffeeMock          = new Mock <ICoffee>();
            Mock <HttpContextBase> httpContextBaseMock = new Mock <HttpContextBase>();
            var id = Guid.NewGuid().ToString();

            cartIdentifierMock.Setup(m => m.GetCardId(It.IsAny <HttpContextBase>())).Returns(id);
            shoppingCartMock.Setup(m => m.GetShoppingCart(It.IsAny <string>())).Returns(shoppingCartMock.Object);

            ShoppingCartController shoppingCartController = new ShoppingCartController(shoppingCartMock.Object, cartIdentifierMock.Object);

            shoppingCartController.TempData["Order"] = coffeeMock.Object;

            //Act
            RedirectToRouteResult redirectResult = (RedirectToRouteResult)shoppingCartController.AddToCart();

            // Assert
            //Assert.That(redirectResult.RouteValues["controller"], Is.EqualTo("ShoppingCart"));
            Assert.That(redirectResult.RouteValues["action"], Is.EqualTo("Index"));
        }