public async Task <Result> ChangeItemQuantityAsync(string userId, int basketItemId, int quantity) { Basket basket = await _basketRepository.GetByUserIdAsync(userId); if (basket == null) { var message = string.Format(ErrorMessage.UserDoesntHaveBasket, userId); _logger.LogInformation(message); return(Result.Fail(message)); } BasketItem item = basket.Items.FirstOrDefault(i => i.Id == basketItemId); if (item == null) { var message = string.Format(ErrorMessage.BasketWithItemIdDoesntExists, basketItemId); _logger.LogInformation(message); return(Result.Fail(message)); } item.ChangeQuantity(quantity); await _basketRepository.UpdateAsync(basket); return(Result.Ok()); }
public void ChangeQuantity_WithNegativeQuantity_ShouldThrowContractException() { // Arrange var basketItem = new BasketItem(1, 2, Pounds.Of(3)); Action changeQuantity = () => basketItem.ChangeQuantity(-1); // Assert Assert.Throws <ContractException>(changeQuantity); }
public void ChangeQuantity_WithValidQuantity_ShouldChangeQuantity() { // Arrange var basketItem = new BasketItem(1, 2, Pounds.Of(3)); // Act basketItem.ChangeQuantity(4); // Assert Assert.Equal(4, basketItem.Quantity); }