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