public async Task Return_ShoppingCartItem_When_Correct_Carameters_Are_Passed() { var userId = "a"; var mockShoppingCart = ShoppingCardMock .GetMockShoppingCart(userId) .ShoppingCartItems.ToList() .FirstOrDefault(); var userShoppingCartItem = new UserShoppingCartItem() { ShoppingCartItem = mockShoppingCart, UserId = userId }; var requestProviderMock = new Mock <IRequestProvider>(); requestProviderMock .Setup(e => e.PostAsync <UserShoppingCartItem>(It.IsAny <string>(), It.IsAny <UserShoppingCartItem>(), It.IsAny <string>())) .Returns(Task.FromResult <UserShoppingCartItem>(userShoppingCartItem)); var shoppingCartDataService = new ShoppingCartDataService(requestProviderMock.Object); var shoppingCartOrderResult = await shoppingCartDataService.AddShoppingCartItem(mockShoppingCart, userId); Assert.NotNull(shoppingCartOrderResult); Assert.AreEqual(shoppingCartOrderResult.UserId, userId); Assert.NotNull(shoppingCartOrderResult.ShoppingCartItem); }
// GET: /<controller>/ public IActionResult Add([FromBody] UserShoppingCartItem userShoppingCartItem) { var shoppingCart = _appDbContext.ShoppingCarts.FirstOrDefault(s => s.UserId == userShoppingCartItem.UserId); if (shoppingCart == null) { shoppingCart = new ShoppingCart { UserId = userShoppingCartItem.UserId }; _appDbContext.ShoppingCarts.Add(shoppingCart); _appDbContext.SaveChanges(); } var pie = _appDbContext.Pies.FirstOrDefault(p => p.PieId == userShoppingCartItem.ShoppingCartItem.PieId); var shoppingCartItem = new ShoppingCartItem { Pie = pie, PieId = userShoppingCartItem.ShoppingCartItem.Pie.PieId, Quantity = userShoppingCartItem.ShoppingCartItem.Quantity, ShoppingCartId = shoppingCart.ShoppingCartId }; _appDbContext.ShoppingCartItems.Add(shoppingCartItem); _appDbContext.SaveChanges(); return(Ok(shoppingCartItem)); }
public async Task <UserShoppingCartItem> AddShoppingCartItem(ShoppingCartItem shoppingCartItem, string userId) { try { ValidationGuard .StringIsValidRange(userId, 1, $"Invalid {nameof(userId)}"); ValidationGuard .ObjectIsNull(shoppingCartItem, $"Invalid {nameof(shoppingCartItem)}"); UriBuilder builder = new UriBuilder(ApiConstants.BaseApiUrl) { Path = ApiConstants.AddShoppingCartItemEndpoint }; var userShoppingCartItem = new UserShoppingCartItem { ShoppingCartItem = shoppingCartItem, UserId = userId }; var shoppingCartApiCall = await _request.PostAsync <UserShoppingCartItem>(builder.ToString(), userShoppingCartItem); return(shoppingCartApiCall); } catch (Exception ex) { throw new ShoppingCartDataServiceException(ex.Message); } }
// GET: /<controller>/ public async Task <IActionResult> Add([FromBody] UserShoppingCartItem userShoppingCartItem) { ShoppingCartItem shoppingCartItem = new ShoppingCartItem(); var shoppingCart = _appDbContext.ShoppingCarts.Include(p => p.ShoppingCartItems).SingleOrDefault(s => s.UserId == userShoppingCartItem.UserId); if (shoppingCart != null) { shoppingCartItem = shoppingCart.ShoppingCartItems?.SingleOrDefault(item => item.PieId == userShoppingCartItem.ShoppingCartItem.Pie.PieId); if (shoppingCartItem != null) { shoppingCartItem.Quantity++; _appDbContext.Entry(shoppingCartItem).State = EntityState.Modified; await _appDbContext.SaveChangesAsync(); } else { //shoppingCart = _appDbContext.ShoppingCarts.FirstOrDefault(s => s.UserId == userShoppingCartItem.UserId); var pie = _appDbContext.Pies.FirstOrDefault(p => p.PieId == userShoppingCartItem.ShoppingCartItem.PieId); shoppingCartItem = new ShoppingCartItem { Pie = pie, PieId = userShoppingCartItem.ShoppingCartItem.Pie.PieId, Quantity = userShoppingCartItem.ShoppingCartItem.Quantity, ShoppingCartId = shoppingCart.ShoppingCartId, ClientNumber = userShoppingCartItem.ShoppingCartItem.ClientNumber }; _appDbContext.ShoppingCartItems.Add(shoppingCartItem); await _appDbContext.SaveChangesAsync(); } } else { shoppingCart = new ShoppingCart { UserId = userShoppingCartItem.UserId }; _appDbContext.ShoppingCarts.Add(shoppingCart); _appDbContext.SaveChanges(); } return(Ok(shoppingCartItem)); }
public async Task <ShoppingCartItem> AddShoppingCartItemAsync(ShoppingCartItem shoppingCartItem, string userId) { UriBuilder builder = new UriBuilder(ApiConstants.BaseApiUrl) { Path = ApiConstants.AddShoppingCartItemEndpoint }; var userShoppingCartItem = new UserShoppingCartItem { ShoppingCartItem = shoppingCartItem, UserId = userId }; var result = await _apiService.PostAsync(builder.ToString(), userShoppingCartItem); return(shoppingCartItem); }
public void Throws_When_ShoppingCartItem_Is_Null() { var userId = "a"; ShoppingCartItem shoppingItem = null; var userShoppingCartItem = new UserShoppingCartItem() { ShoppingCartItem = shoppingItem, UserId = userId }; var requestProviderMock = new Mock <IRequestProvider>(); requestProviderMock .Setup(e => e.PostAsync <UserShoppingCartItem>(It.IsAny <string>(), It.IsAny <UserShoppingCartItem>(), It.IsAny <string>())) .Returns(Task.FromResult <UserShoppingCartItem>(userShoppingCartItem)); var shoppingCartDataService = new ShoppingCartDataService(requestProviderMock.Object); Assert.ThrowsAsync <ShoppingCartDataServiceException>( async() => await shoppingCartDataService.AddShoppingCartItem(shoppingItem, userId)); }
public void Throws_When_Invalid_UserId_Is_Passed(string userId) { var mockShoppingCart = ShoppingCardMock .GetMockShoppingCart(userId) .ShoppingCartItems.ToList() .FirstOrDefault(); var userShoppingCartItem = new UserShoppingCartItem() { ShoppingCartItem = mockShoppingCart, UserId = userId }; var requestProviderMock = new Mock <IRequestProvider>(); requestProviderMock .Setup(e => e.PostAsync <UserShoppingCartItem>(It.IsAny <string>(), It.IsAny <UserShoppingCartItem>(), It.IsAny <string>())) .Returns(Task.FromResult <UserShoppingCartItem>(userShoppingCartItem)); var shoppingCartDataService = new ShoppingCartDataService(requestProviderMock.Object); Assert.ThrowsAsync <ShoppingCartDataServiceException>( async() => await shoppingCartDataService.AddShoppingCartItem(mockShoppingCart, userId)); }