示例#1
0
        public async Task AddBookToShoppingCartAsync_WithExistingBookInCart_ShouldNotAddBookToCart()
        {
            var context = BookStoreDbContextInMemoryFactory.InitializeContext();

            await SeedData(context);

            var username    = "******";
            var userService = new Mock <IUserService>();

            userService.Setup(u => u.GetByUsernameAsync(username))
            .Returns(context.Users.FirstOrDefaultAsync(x => x.UserName == username));

            this.shoppingCartService = new ShoppingCartService(context, userService.Object);

            var book = context.Books.First();

            await shoppingCartService.AddBookToShoppingCartAsync(book.Id, username);

            var actualResult = await shoppingCartService.AddBookToShoppingCartAsync(book.Id, username);

            var shoppingCartBooks = context.ShoppingCartBooks.ToList();

            Assert.Single(shoppingCartBooks);
            Assert.False(actualResult);
        }
示例#2
0
        public async Task GetOrderBooksAsync_ShouldReturnOrderBooks()
        {
            var context = BookStoreDbContextInMemoryFactory.InitializeContext();

            await SeedData(context);

            var userService = new Mock <IUserService>();
            var username    = "******";

            userService.Setup(u => u.GetByUsernameAsync(username))
            .Returns(context.Users.FirstOrDefaultAsync(x => x.UserName == username));

            this.shoppingCartService = new ShoppingCartService(context, userService.Object);
            this.orderService        = new OrderService(context, userService.Object, shoppingCartService);

            var book = context.Books.First();

            await shoppingCartService.AddBookToShoppingCartAsync(book.Id, username);

            await orderService.CreateAsync(username);

            var order = context.Orders.First();
            var user  = context.Users.First(u => u.UserName == username);

            var expectedResult = context.OrderBooks.Where(ob => ob.OrderId == order.Id).ToList().Count;

            var result = await orderService.GetOrderBooksAsync(order.Id);

            List <OrderBookListingServiceModel> actualData = new List <OrderBookListingServiceModel>(result);

            var actualResult = actualData.Count();

            Assert.True(expectedResult == actualResult);
        }
示例#3
0
        public async Task DecreaseQuantityAsync_WithNonExistingBook_ShouldNotDecreaseBookQuantity()
        {
            var context = BookStoreDbContextInMemoryFactory.InitializeContext();

            await SeedData(context);

            var userService = new Mock <IUserService>();
            var username    = "******";
            var username1   = "user3";

            userService.Setup(u => u.GetByUsernameAsync(username))
            .Returns(context.Users.FirstOrDefaultAsync(x => x.UserName == username));

            this.shoppingCartService = new ShoppingCartService(context, userService.Object);

            var book = context.Books.First();

            await shoppingCartService.AddBookToShoppingCartAsync(book.Id, username);

            await shoppingCartService.IncreaseQuantityAsync(book.Id, username);

            var actualResult = await shoppingCartService.DecreaseQuantityAsync(-1, username1);

            var expectedQuantity = 2;
            var shoppingCartBook = context.ShoppingCartBooks.First();

            var actualQuantity = shoppingCartBook.Quantity;

            Assert.False(actualResult);
            Assert.Equal(expectedQuantity, actualQuantity);
        }
示例#4
0
        public async Task RemoveBookFromShoppingCartAsync_ShouldRemoveBook()
        {
            var context = BookStoreDbContextInMemoryFactory.InitializeContext();

            await SeedData(context);

            var userService = new Mock <IUserService>();
            var username    = "******";

            userService.Setup(u => u.GetByUsernameAsync(username))
            .Returns(context.Users.FirstOrDefaultAsync(x => x.UserName == username));

            this.shoppingCartService = new ShoppingCartService(context, userService.Object);

            var book = context.Books.First();

            await shoppingCartService.AddBookToShoppingCartAsync(book.Id, username);

            var actualResult = await shoppingCartService.RemoveBookFromShoppingCartAsync(book.Id, username);

            Assert.True(actualResult);
        }