public HttpResponseMessage Post(PayRequestDto PayReq) { try { if (ModelState.IsValid) { var payState = ipay.ProcessPayment(PayReq); var payResponse = new PayResponseDto() { IsProcessed = payState.PayState == PayStateEnum.Processed, paystate = payState }; if (payResponse.IsProcessed) { return(Request.CreateResponse(HttpStatusCode.OK, payResponse)); } else { return(Request.CreateResponse(HttpStatusCode.InternalServerError, new { error = "Payment could not be processed" })); } } else { return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, ModelState)); } } catch (Exception) { return(Request.CreateResponse(HttpStatusCode.InternalServerError)); } }
public void TestpayReqService(PayRequestDto payReqDto, PayStateDto cheapGateResDto, int cheapGateCount, PayStateDto expGateResponseDto, int ExpGateCount, PayStateEnum expPayStateEnum) { cheapPayGateway.Setup(c => c.ProcessPayment(payReqDto)).Returns(cheapGateResDto); expensivePayGateway.Setup(c => c.ProcessPayment(payReqDto)).Returns(expGateResponseDto); var payStateDto = PayReqService.ProcessPayment(payReqDto); Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotNull(payStateDto); Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(payStateDto.PayState, expPayStateEnum); cheapPayGateway.Verify(c => c.ProcessPayment(payReqDto), Times.Exactly(cheapGateCount)); expensivePayGateway.Verify(c => c.ProcessPayment(payReqDto), Times.Exactly(ExpGateCount)); }