Пример #1
0
        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);
        }
Пример #2
0
        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
                }));
            }
        }