public async Task AddItemToCart_NotExistingItem_Failure() { using (var tester = new ShoppingCartTester()) { // Assert var cart = new Cart() { Id = "d3ab2dfa878227b15f1a0575", Items = new List <Item>() }; var notExistingItemId = "00002dfa878227b15f1a0000"; await tester.CartRepository.Add(cart); var addModel = new AddItemToCartRequest() { CartId = cart.Id, ItemId = notExistingItemId, Amount = 3 }; // Act var(result, message) = await tester.CartService.AddItemToCart(addModel); // Assert var resultItems = tester.CartRepository.GetAll().Result.ToList(); Assert.Empty(resultItems.First().Items); Assert.Null(result); Assert.NotNull(message); } }
public async Task CreateCart_WithoutItem_Success() { using (var tester = new ShoppingCartTester()) { // Assert var cart = new Cart() { Id = "d3ab2dfa878227b15f1a0575", Items = new List <Item>() }; // Act await tester.CartRepository.Add(cart); // Assert var resultItems = tester.CartRepository.GetAll().Result.ToList(); Assert.Equal(1, resultItems.Count); Assert.Equal(cart.Id, resultItems.First().Id); } }
public async Task AddItemToCart_NotExistingCart_Failure() { using (var tester = new ShoppingCartTester()) { // Assert var cartId = "16a70cb62d6a2ff9bfffe180"; var item1 = new Item() { Name = "Rose", Description = "Red", Quantity = 10, Price = 5 }; await tester.ItemRepository.Add(item1); tester.StockCache.SetStock(item1.Id, item1.Quantity); var addModel = new AddItemToCartRequest() { CartId = cartId, ItemId = item1.Id, Amount = 3 }; // Act var(result, message) = await tester.CartService.AddItemToCart(addModel); // Assert var cartFromDb = tester.CartRepository.Find(cartId).Result; Assert.Null(result); Assert.NotNull(message); Assert.Null(cartFromDb); } }
public async Task AddItemToCart_EmptyCart_ExistingItem_SufficientQuantity_Success() { using (var tester = new ShoppingCartTester()) { // Assert var cartId = "16a70cb62d6a2ff9bfffe180"; var cart = new Cart() { Id = cartId, Items = new List <Item>() }; var item1 = new Item() { Name = "Rose", Description = "Red", Quantity = 10, Price = 5 }; var item2 = new Item() { Name = "Daisy", Description = "White", Quantity = 3, Price = 2 }; await tester.CartRepository.Add(cart); await tester.ItemRepository.Add(item1); await tester.ItemRepository.Add(item2); tester.StockCache.SetStock(item1.Id, item1.Quantity); tester.StockCache.SetStock(item2.Id, item2.Quantity); var addModel = new AddItemToCartRequest() { CartId = cart.Id, ItemId = item1.Id, Amount = 3 }; // Act var(result, message) = await tester.CartService.AddItemToCart(addModel); // Assert var cartFromDb = tester.CartRepository.Find(cartId).Result; var remainingStock = tester.StockCache.GetStock(item1.Id); Assert.NotNull(result); Assert.Null(message); Assert.NotNull(cartFromDb); Assert.Equal(cart.Id, cartFromDb.Id); Assert.Single(cartFromDb.Items); Assert.Equal(item1.Id, cartFromDb.Items.First().Id); Assert.Equal(3, cartFromDb.Items.First().Quantity); Assert.Equal(7, remainingStock); } }