public async Task Fund_Wallet_Should_Return_Bad_Request_Response_When_Amount_Is_Less_Than_One() { //Arrange var fundWallet = new FundWalletRequestModel { Amount = 0 }; Mediator.Setup(x => x.Send(It.IsAny <FundWalletRequestModel>(), new CancellationToken())). Throws(new ArgumentException()); var walletController = new WalletController(Mediator.Object); //Action var result = await walletController.Fund(fundWallet); //Assert Assert.IsType <BadRequestObjectResult>(result); }
public async Task <IActionResult> Fund([FromBody] FundWalletRequestModel fundRequest) { if (!ModelState.IsValid) { return(BadRequest(new Response { Success = false, Message = "Validation error-accountNumber and amount fields are required, with a valid amount." })); } try { var response = await _mediator.Send(fundRequest); return(Ok(new PayloadedResponse <FundWalletResponseModel> { Data = response, Message = "Wallet funded successfully", Success = true })); } catch (ArgumentException ex) { return(BadRequest(new Response { Success = false, Message = ex.Message })); } catch (Exception ex) { return(StatusCode(500, new ErrorResponse { Errors = { ex }, Success = false, Message = ex.Message })); } }