public async Task <IActionResult> AddItemToBasket(BasketItemCreateViewModel model) { if (!ModelState.IsValid) { return(BadRequest("Invalid model")); } BasketViewModel basket = await _basketViewModelService.GetOrCreateBasketForUserAsync(User.Identity.Name); var priceResult = Pounds.Create(model.PriceInPounds); if (priceResult.IsFailure) { return(BadRequest(priceResult.Error)); } var result = await _basketService.AddItemToBasketAsync(basket.Id, model.ProductId, model.Quantity, priceResult.Value); if (result.IsFailure) { return(NotFound(result.Error)); } BasketItemViewModel item = await _basketViewModelService.GetBasketItemForUserAsync(User.Identity.Name, result.Value); return(CreatedAtAction("GetItem", new { id = item.Id }, item)); }
public void Create_WithNegativeAmount_ShouldReturnFailure() { // Arrange var result = Pounds.Create(-1); // Assert Assert.True(result.IsFailure); }
public void Create_WithValidAmount_ShouldReturnSuccess() { // Arrange var result = Pounds.Create(1); // Assert Assert.True(result.IsSuccess); }
public void Create_WithPartOfPennyAmount_ShouldReturnFailure() { // Arrange var result = Pounds.Create(0.001m); // Assert Assert.True(result.IsFailure); }
public void Create_WithBigAmount_ShouldReturnFailure() { // Arrange var result = Pounds.Create(Pounds.MaxPoundAmount + 1); // Assert Assert.True(result.IsFailure); }