Ejemplo n.º 1
0
        public async Task GetShoppingCart_NoShoppingCart()
        {
            var serviceProvider = BuildInMemoryDBProvider();

            using (var dbContext = serviceProvider.GetService <DatabaseContext>())
            {
                //Arrange
                var user = new ApplicationUser()
                {
                    Id = "1"
                };
                dbContext.Add(user);
                await dbContext.SaveChangesAsync();

                var mockHttpContextAccessor = new Mock <IHttpContextAccessor>();
                mockHttpContextAccessor.Object.HttpContext = new DefaultHttpContext();
                var claims = new ClaimsPrincipal();
                mockHttpContextAccessor.Setup(x => x.HttpContext.User).Returns(claims);
                List <ApplicationUser> _users = new List <ApplicationUser>();
                var userManager            = MockUserManager <ApplicationUser>(_users).Object;
                var shoppingCartRepository = new ShoppingCartRepository(dbContext, userManager, mockHttpContextAccessor.Object);
                //Act
                var sc = await shoppingCartRepository.GetShoppingCart();

                //Assert
                sc.Should().BeOfType <ShoppingCart>();
                sc.Should().NotBeNull();
            }
        }
Ejemplo n.º 2
0
        public async Task RemoveItemFromCart_TwoDiffrentItemsRemoveBothOfThem()
        {
            var serviceProvider = BuildInMemoryDBProvider();

            using (var dbContext = serviceProvider.GetService <DatabaseContext>())
            {
                //Arrange
                var shoppingCart = new ShoppingCart()
                {
                    Id    = "1",
                    Items = new List <ShoppingCartMobilePhone>()
                };
                var item = new ShoppingCartMobilePhone()
                {
                    MobilePhoneId  = 1,
                    ShoppingCartId = "1",
                    Quantity       = 1
                };
                var item2 = new ShoppingCartMobilePhone()
                {
                    MobilePhoneId  = 2,
                    ShoppingCartId = "1",
                    Quantity       = 1
                };
                shoppingCart.Items.Add(item);
                shoppingCart.Items.Add(item2);
                var user = new ApplicationUser()
                {
                    Id           = "1",
                    ShoppingCart = shoppingCart
                };
                dbContext.Add(user);
                await dbContext.SaveChangesAsync();

                var mockHttpContextAccessor = new Mock <IHttpContextAccessor>();
                mockHttpContextAccessor.Object.HttpContext = new DefaultHttpContext();
                var claims = new ClaimsPrincipal();
                mockHttpContextAccessor.Setup(x => x.HttpContext.User).Returns(claims);
                List <ApplicationUser> _users = new List <ApplicationUser>();
                var userManager            = MockUserManager <ApplicationUser>(_users).Object;
                var shoppingCartRepository = new ShoppingCartRepository(dbContext, userManager, mockHttpContextAccessor.Object);
                //Act
                await shoppingCartRepository.RemoveItemFromCart(shoppingCart, 1);

                await shoppingCartRepository.RemoveItemFromCart(shoppingCart, 2);

                var sc = await shoppingCartRepository.GetShoppingCart();

                //Assert
                sc.Should().BeOfType <ShoppingCart>();
                sc.Should().NotBeNull();
                sc.Items.Should().HaveCount(0);
            }
        }
Ejemplo n.º 3
0
        public async Task CountTotal_OneItem()
        {
            var serviceProvider = BuildInMemoryDBProvider();

            using (var dbContext = serviceProvider.GetService <DatabaseContext>())
            {
                //Arrange
                var shoppingCart = new ShoppingCart()
                {
                    Id    = "1",
                    Items = new List <ShoppingCartMobilePhone>()
                };
                var user = new ApplicationUser()
                {
                    Id           = "1",
                    ShoppingCart = shoppingCart
                };
                var mobilePhone = new MobilePhone()
                {
                    Id    = 1,
                    Price = 2000
                };
                var item = new ShoppingCartMobilePhone()
                {
                    MobilePhoneId  = 1,
                    ShoppingCartId = "1",
                    Quantity       = 1
                };
                shoppingCart.Items.Add(item);
                dbContext.Add(mobilePhone);
                dbContext.Add(user);
                await dbContext.SaveChangesAsync();

                var mockHttpContextAccessor = new Mock <IHttpContextAccessor>();
                mockHttpContextAccessor.Object.HttpContext = new DefaultHttpContext();
                var claims = new ClaimsPrincipal();
                mockHttpContextAccessor.Setup(x => x.HttpContext.User).Returns(claims);
                List <ApplicationUser> _users = new List <ApplicationUser>();
                var userManager            = MockUserManager <ApplicationUser>(_users).Object;
                var shoppingCartRepository = new ShoppingCartRepository(dbContext, userManager, mockHttpContextAccessor.Object);
                //Act
                var result = await shoppingCartRepository.CountTotal(shoppingCart);

                var sc = await shoppingCartRepository.GetShoppingCart();

                //Assert
                result.Should().Be(2000);
                sc.Should().BeOfType <ShoppingCart>();
                sc.Should().NotBeNull();
                sc.Items.Should().HaveCount(1);
                sc.Items.ToList()[0].Quantity.Should().Be(1);
            }
        }