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();
        }
示例#4
0
 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);
        }
示例#8
0
        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);
        }
示例#9
0
 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);
        }
示例#11
0
        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);
        }
示例#12
0
        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);
        }
示例#13
0
        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);
        }
示例#14
0
        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();
 }
示例#16
0
 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);
 }