public void CreateTransaction_Direct_CaptureTrue_InvokeDirectPayment() { var mockRapidApiClient = new Mock<IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); //Arrange var transaction = TestUtil.CreateTransaction(true); mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.DirectPayment(It.IsAny<DirectPaymentRequest>())).Returns(new DirectPaymentResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.Direct, transaction); //Assert mockRapidApiClient.Verify(); }
public void CreateTransaction_Authorisation_InvokeDirectAuthorisation() { var mockRapidApiClient = new Mock <IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); //Arrange var transaction = TestUtil.CreateTransaction(false); mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.DirectAuthorisation(It.IsAny <DirectAuthorisationRequest>())).Returns(new DirectAuthorisationResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.Authorisation, transaction); //Assert mockRapidApiClient.Verify(); }
public void CreateTransaction_TransparentRedirect_CaptureTrue_TokenNo_InvokeCreateAccessCode() { var mockRapidApiClient = new Mock <IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); //Arrange var transaction = TestUtil.CreateTransaction(true); mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.CreateAccessCode(It.IsAny <CreateAccessCodeRequest>())).Returns(new CreateAccessCodeResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.TransparentRedirect, transaction); //Assert mockRapidApiClient.Verify(); }
public void CommunicationError_Test() { //Arrange var wr = new Mock<HttpWebResponse>(); wr.Setup(c => c.StatusCode).Returns(HttpStatusCode.ServiceUnavailable); var request = new Mock<HttpWebRequest>(); request.Setup(c => c.GetResponse()).Returns(wr.Object); var transaction = TestUtil.CreateTransaction(); var mockClient = new Mock<RapidService>(APIKEY, PASSWORD, ENDPOINT); var we = new WebException("MockException", null, WebExceptionStatus.ProtocolError, wr.Object); mockClient.Setup(x => x.GetWebResponse(It.IsAny<WebRequest>(), It.IsAny<string>())).Throws(we); var client = new RapidClient(mockClient.Object); //Act var response = client.Create(PaymentMethod.Direct, transaction); //Assert Assert.IsTrue(response.Errors[0] == RapidSystemErrorCode.COMMUNICATION_ERROR); }
public void CreateCustomer_TransparentRedirect_InvokeCreateAccessCode_MethodCreateTokenCustomer() { var mockRapidApiClient = new Mock<IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); CreateAccessCodeRequest assertRequest = null; //Arrange var customer = TestUtil.CreateCustomer(); mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.CreateAccessCode(It.IsAny<CreateAccessCodeRequest>())) .Callback<CreateAccessCodeRequest>(i => assertRequest = i) .Returns(new CreateAccessCodeResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.TransparentRedirect, customer); //Assert mockRapidApiClient.Verify(); Assert.IsNotNull(assertRequest); Assert.AreEqual(assertRequest.Method, Method.CreateTokenCustomer); }
public void CreateTransaction_ResponsiveShared_CaptureFalse_InvokeCreateAccessCodeShared_MethodAuthorise() { var mockRapidApiClient = new Mock<IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); CreateAccessCodeSharedRequest assertRequest = null; //Arrange var transaction = TestUtil.CreateTransaction(false); mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.CreateAccessCodeShared(It.IsAny<CreateAccessCodeSharedRequest>())) .Callback<CreateAccessCodeSharedRequest>(i => assertRequest = i) .Returns(new CreateAccessCodeSharedResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.ResponsiveShared, transaction); //Assert mockRapidApiClient.Verify(); Assert.IsNotNull(assertRequest); Assert.AreEqual(assertRequest.Method, Method.Authorise); }
public void CreateTransaction_Direct_CaptureFalse_InvokeDirectPayment_MethodAuthorise() { var mockRapidApiClient = new Mock <IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); DirectPaymentRequest assertRequest = null; //Arrange var transaction = TestUtil.CreateTransaction(false); mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.DirectPayment(It.IsAny <DirectPaymentRequest>())) .Callback <DirectPaymentRequest>(i => assertRequest = i) .Returns(new DirectPaymentResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.Direct, transaction); //Assert mockRapidApiClient.Verify(); Assert.IsNotNull(assertRequest); Assert.AreEqual(assertRequest.Method, Method.Authorise); }
public void CreateCustomer_ResponsiveShared_InvokeCreateAccessCodeShared_MethodCreateTokenCustomer() { var mockRapidApiClient = new Mock <IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); CreateAccessCodeSharedRequest assertRequest = null; //Arrange var customer = TestUtil.CreateCustomer(); mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.CreateAccessCodeShared(It.IsAny <CreateAccessCodeSharedRequest>())) .Callback <CreateAccessCodeSharedRequest>(i => assertRequest = i) .Returns(new CreateAccessCodeSharedResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.ResponsiveShared, customer); //Assert mockRapidApiClient.Verify(); Assert.IsNotNull(assertRequest); Assert.AreEqual(assertRequest.Method, Method.CreateTokenCustomer); }
public void SdkInternalErrors_Test() { //Arrange var mockClient = new Mock<IRapidService>(); mockClient.Setup(x => x.GetErrorCodes()).Returns(new List<string>(new[] { RapidSystemErrorCode.INTERNAL_SDK_ERROR })); var client = new RapidClient(mockClient.Object); var filter = new TransactionFilter() { TransactionID = 123, AccessCode = "abc", InvoiceNumber = "123", InvoiceReference = "123" }; //Act var response = client.QueryTransaction(filter); //Assert Assert.IsNotNull(response.Errors); Assert.AreEqual(response.Errors.First(), RapidSystemErrorCode.INTERNAL_SDK_ERROR); }
public void CreateTransaction_TransparentRedirect_CaptureTrue_TokenYes_InvokeCreateAccessCode_TokenPayment() { var mockRapidApiClient = new Mock <IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); CreateAccessCodeRequest assertRequest = null; //Arrange var transaction = TestUtil.CreateTransaction(true, "123123123"); mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.CreateAccessCode(It.IsAny <CreateAccessCodeRequest>())) .Callback <CreateAccessCodeRequest>(i => assertRequest = i) .Returns(new CreateAccessCodeResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.TransparentRedirect, transaction); //Assert mockRapidApiClient.Verify(); Assert.IsNotNull(assertRequest); Assert.AreEqual(assertRequest.Method, Method.TokenPayment); }
public void SdkInvalidStateErrors_Test() { //Arrange var mockClient = new Mock <IRapidService>(); mockClient.Setup(x => x.IsValid()).Returns(false); mockClient.Setup(x => x.GetErrorCodes()).Returns(new List <string>(new[] { RapidSystemErrorCode.INVALID_ENDPOINT_ERROR })); var transaction = TestUtil.CreateTransaction(); var customer = TestUtil.CreateCustomer(); var client = new RapidClient(mockClient.Object); //Act var response1 = client.Create(PaymentMethod.Direct, transaction); var response2 = client.Create(PaymentMethod.Direct, customer); //Assert Assert.IsNotNull(response1.Errors); Assert.AreEqual(response1.Errors.First(), RapidSystemErrorCode.INVALID_ENDPOINT_ERROR); Assert.IsNotNull(response2.Errors); Assert.AreEqual(response2.Errors.First(), RapidSystemErrorCode.INVALID_ENDPOINT_ERROR); }
public void CreateCustomer_Direct_InvokeSecureFields_MethodCreateTokenCustomer() { var mockRapidApiClient = new Mock <IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); DirectPaymentRequest assertRequest = null; //Arrange var customer = TestUtil.CreateCustomer(); customer.SecuredCardData = "44DD7jYYyRgaQnVibOAsYbbFIYmSXbS6hmTxosAhG6CK1biw="; mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.DirectPayment(It.IsAny <DirectPaymentRequest>())) .Callback <DirectPaymentRequest>(i => assertRequest = i) .Returns(new DirectPaymentResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.Direct, customer); //Assert mockRapidApiClient.Verify(); Assert.IsNotNull(assertRequest); Assert.AreEqual(assertRequest.Method, Method.CreateTokenCustomer); Assert.AreEqual(assertRequest.SecuredCardData, customer.SecuredCardData); }
public void CommunicationError_Test() { //Arrange var wr = new Mock <HttpWebResponse>(); wr.Setup(c => c.StatusCode).Returns(HttpStatusCode.ServiceUnavailable); var request = new Mock <HttpWebRequest>(); request.Setup(c => c.GetResponse()).Returns(wr.Object); var transaction = TestUtil.CreateTransaction(); var mockClient = new Mock <RapidService>(APIKEY, PASSWORD, ENDPOINT); var we = new WebException("MockException", null, WebExceptionStatus.ProtocolError, wr.Object); mockClient.Setup(x => x.GetWebResponse(It.IsAny <WebRequest>(), It.IsAny <string>())).Throws(we); var client = new RapidClient(mockClient.Object); //Act var response = client.Create(PaymentMethod.Direct, transaction); //Assert Assert.IsTrue(response.Errors[0] == RapidSystemErrorCode.COMMUNICATION_ERROR); }
public void SdkInternalErrors_Test() { //Arrange var mockClient = new Mock <IRapidService>(); mockClient.Setup(x => x.GetErrorCodes()).Returns(new List <string>(new[] { RapidSystemErrorCode.INTERNAL_SDK_ERROR })); var client = new RapidClient(mockClient.Object); var filter = new TransactionFilter() { TransactionID = 123, AccessCode = "abc", InvoiceNumber = "123", InvoiceReference = "123" }; //Act var response = client.QueryTransaction(filter); //Assert Assert.IsNotNull(response.Errors); Assert.AreEqual(response.Errors.First(), RapidSystemErrorCode.INTERNAL_SDK_ERROR); }
public void CreateTransaction_ResponsiveShared_CaptureTrue_TokenNo_InvokeCreateAccessCodeShared() { var mockRapidApiClient = new Mock<IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); //Arrange var transaction = TestUtil.CreateTransaction(true); mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.CreateAccessCodeShared(It.IsAny<CreateAccessCodeSharedRequest>())).Returns(new CreateAccessCodeSharedResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.ResponsiveShared, transaction); //Assert mockRapidApiClient.Verify(); }
public void SdkInvalidStateErrors_Test() { //Arrange var mockClient = new Mock<IRapidService>(); mockClient.Setup(x => x.IsValid()).Returns(false); mockClient.Setup(x => x.GetErrorCodes()).Returns(new List<string>(new[] { RapidSystemErrorCode.INVALID_ENDPOINT_ERROR })); var transaction = TestUtil.CreateTransaction(); var customer = TestUtil.CreateCustomer(); var client = new RapidClient(mockClient.Object); //Act var response1 = client.Create(PaymentMethod.Direct, transaction); var response2 = client.Create(PaymentMethod.Direct, customer); //Assert Assert.IsNotNull(response1.Errors); Assert.AreEqual(response1.Errors.First(), RapidSystemErrorCode.INVALID_ENDPOINT_ERROR); Assert.IsNotNull(response2.Errors); Assert.AreEqual(response2.Errors.First(), RapidSystemErrorCode.INVALID_ENDPOINT_ERROR); }
public void CreateTransaction_Wallet_CaptureTrue_InvokeDirectPayment_MethodProcessPayment() { var mockRapidApiClient = new Mock<IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); DirectPaymentRequest assertRequest = null; //Arrange var transaction = TestUtil.CreateTransaction(true); transaction.ThirdPartyWalletID = "123123123"; mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.DirectPayment(It.IsAny<DirectPaymentRequest>())) .Callback<DirectPaymentRequest>(i => assertRequest = i) .Returns(new DirectPaymentResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.Wallet, transaction); //Assert mockRapidApiClient.Verify(); Assert.IsNotNull(assertRequest); Assert.AreEqual(assertRequest.Method, Method.ProcessPayment); }
public void CreateTransaction_Wallet_CaptureFalse_InvokeDirectAuthorisation() { var mockRapidApiClient = new Mock<IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); //Arrange var transaction = TestUtil.CreateTransaction(false); transaction.ThirdPartyWalletID = "123123123"; mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.DirectAuthorisation(It.IsAny<DirectAuthorisationRequest>())).Returns(new DirectAuthorisationResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.Wallet, transaction); //Assert mockRapidApiClient.Verify(); }
public void CreateTransaction_TransparentRedirect_CaptureTrue_TokenYes_InvokeCreateAccessCode_TokenPayment() { var mockRapidApiClient = new Mock<IRapidService>(); var rapidSdkClient = new RapidClient(mockRapidApiClient.Object); CreateAccessCodeRequest assertRequest = null; //Arrange var transaction = TestUtil.CreateTransaction(true, "123123123"); mockRapidApiClient.Setup(x => x.IsValid()).Returns(true); mockRapidApiClient.Setup(x => x.CreateAccessCode(It.IsAny<CreateAccessCodeRequest>())) .Callback<CreateAccessCodeRequest>(i => assertRequest = i) .Returns(new CreateAccessCodeResponse()).Verifiable(); //Act rapidSdkClient.Create(PaymentMethod.TransparentRedirect, transaction); //Assert mockRapidApiClient.Verify(); Assert.IsNotNull(assertRequest); Assert.AreEqual(assertRequest.Method, Method.TokenPayment); }