public async Task <ActionResult <ProductDTO> > BuyProduct(CreatorProductDTO creatorProductDTO) { if (!ModelState.IsValid) { var errorMsgModelArray = string.Join("; ", ModelState.Values .SelectMany(x => x.Errors) .Select(x => x.ErrorMessage)); return(BadRequest(errorMsgModelArray)); } var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value; if (userId == null) { BadRequest("Invalid user"); } try { return(await _paymentService.BuyProduct(Guid.Parse(userId), creatorProductDTO.TypeProduct)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task BuyProductPost_ReturnsBadRequestResult_WhenModelStateIsInvalid() { _controller.ModelState.AddModelError("TypeProduct", "Required"); var param = new CreatorProductDTO(); // Act var response = await _controller.BuyProduct(param); // Assert var actionResult = Assert.IsType <ActionResult <ProductDTO> >(response); Assert.IsType <BadRequestObjectResult>(actionResult.Result); }
public async Task BuyProductPost_ReturnsBadRequestResult_WhenModelStateIsValid() { var param = new CreatorProductDTO { Availability = 10, Product = new ProductDTO { Name = "Coffee", Price = 10 }, TypeProduct = Core.Models.TypeProduct.Coffee }; // Act var response = await _controller.BuyProduct(param); // Assert var actionResult = Assert.IsType <ActionResult <ProductDTO> >(response); var returnValue = Assert.IsType <ProductDTO>(actionResult.Value); _mockService.Verify(); Assert.Equal("Coffee", returnValue.Name); Assert.Equal(10, returnValue.Price); }