コード例 #1
0
        public void SimpleQueryTransaction_MultipleResponses()
        {
            var query = new queryTransaction
            {
                id             = "myId",
                reportGroup    = "myReportGroup",
                origId         = "Auth2",
                origActionType = actionTypeEnum.A,
                origLitleTxnId = 54321
            };

            var response      = _litle.queryTransaction(query);
            var queryResponse = (queryTransactionResponse)response;

            Assert.NotNull(queryResponse);
            Assert.AreEqual("000", queryResponse.response);
            Assert.AreEqual("Original transaction found", queryResponse.message);
            Assert.AreEqual(2, queryResponse.results_max10.Count);

            Assert.AreEqual("000", ((authorizationResponse)queryResponse.results_max10[0]).response);
            Assert.AreEqual("Approved", ((authorizationResponse)queryResponse.results_max10[0]).message);

            Assert.AreEqual("000", ((authorizationResponse)queryResponse.results_max10[1]).response);
            Assert.AreEqual("Approved", ((authorizationResponse)queryResponse.results_max10[1]).message);
        }
コード例 #2
0
        public void TestQueryTransactionUnavailableResponse()
        {
            queryTransaction query = new queryTransaction();

            query.id             = "myId";
            query.reportGroup    = "myReportGroup";
            query.origId         = "12345";
            query.origActionType = actionTypeEnum.D;
            query.origCnpTxnId   = 54321;

            var mock = new Mock <Communications>();

            mock.Setup(Communications => Communications.HttpPost(It.IsRegex(".*<queryTransaction.*", RegexOptions.Singleline)))
            .Returns("<cnpOnlineResponse version='10.10' response='0' message='Valid Format' xmlns='http://www.vantivcnp.com/schema'><queryTransactionUnavailableResponse id='FindAuth' reportGroup='Mer5PM1' customerId='1'><response>152</response><responseTime>2015-12-03T14:45:31</responseTime><message>Original transaction found but response not yet available</message><location>sandbox</location></queryTransactionUnavailableResponse></cnpOnlineResponse>");

            Communications mockedCommunication = mock.Object;

            cnp.SetCommunication(mockedCommunication);
            transactionTypeWithReportGroup      response = (transactionTypeWithReportGroup)cnp.QueryTransaction(query);
            queryTransactionUnavailableResponse queryTransactionResponse = (queryTransactionUnavailableResponse)response;

            Assert.NotNull(queryTransactionResponse);
            Assert.AreEqual("152", queryTransactionResponse.response);
            Assert.AreEqual("sandbox", queryTransactionResponse.location);
        }
コード例 #3
0
        public void TestSimple()
        {
            queryTransaction query = new queryTransaction();

            query.id             = "myId";
            query.reportGroup    = "myReportGroup";
            query.origId         = "12345";
            query.origActionType = actionTypeEnum.D;
            query.origLitleTxnId = 54321;

            string result = query.Serialize();

            Assert.AreEqual("\r\n<queryTransaction id=\"myId\" reportGroup=\"myReportGroup\">\r\n<origId>12345</origId>\r\n<origActionType>D</origActionType>\r\n<origLitleTxnId>54321</origLitleTxnId>\r\n</queryTransaction>", result);
        }
コード例 #4
0
        public void testQueryTransactionUnavailableResponse()
        {
            var query = new queryTransaction
            {
                id             = "myId",
                reportGroup    = "myReportGroup",
                origId         = "Auth",
                origActionType = actionTypeEnum.A,
                origLitleTxnId = 54321
            };

            var response      = _litle.queryTransaction(query);
            var queryResponse = (queryTransactionUnavailableResponse)response;

            Assert.AreEqual("152", queryResponse.response);
            Assert.AreEqual("Original transaction found but response not yet available", queryResponse.message);
        }
コード例 #5
0
        public void testQueryTransactionNotFoundResponse()
        {
            var query = new queryTransaction
            {
                id             = "myId",
                reportGroup    = "myReportGroup",
                origId         = "Auth0",
                origActionType = actionTypeEnum.A,
                origLitleTxnId = 54321
            };

            var response      = _litle.queryTransaction(query);
            var queryResponse = (queryTransactionResponse)response;

            Assert.AreEqual("151", queryResponse.response);
            Assert.AreEqual("Original transaction not found", queryResponse.message);
        }
コード例 #6
0
        public void SimpleQueryTransaction()
        {
            var query = new queryTransaction
            {
                id             = "myId",
                reportGroup    = "myReportGroup",
                origId         = "Deposit1",
                origActionType = actionTypeEnum.D,
                origLitleTxnId = 54321
            };

            var response      = _litle.queryTransaction(query);
            var queryResponse = (queryTransactionResponse)response;

            Assert.NotNull(queryResponse);
            Assert.AreEqual("000", queryResponse.response);
            Assert.AreEqual("Original transaction found", queryResponse.message);
            Assert.AreEqual("000", ((captureResponse)queryResponse.results_max10[0]).response);
        }
コード例 #7
0
        public transactionTypeWithReportGroup queryTransaction(queryTransaction queryTransaction)
        {
            litleOnlineRequest request = createLitleOnlineRequest();

            request.queryTransaction = queryTransaction;

            litleOnlineResponse            litleresponse = sendToLitle(request);
            transactionTypeWithReportGroup response      = null;

            if (!(litleresponse.queryTransactionResponse == null))
            {
                response = litleresponse.queryTransactionResponse;
            }
            else if (!(litleresponse.queryTransactionUnavailableResponse == null))
            {
                response = litleresponse.queryTransactionUnavailableResponse;
            }
            return(response);
        }
コード例 #8
0
        public void SimpleQueryTransaction_MultipleResponses()
        {
            var query = new queryTransaction
            {
                id             = "myId",
                reportGroup    = "myReportGroup",
                origId         = "Auth2",
                origActionType = actionTypeEnum.A,
                origCnpTxnId   = 54321
            };

            var response      = _cnp.QueryTransaction(query);
            var queryResponse = (queryTransactionResponse)response;

            Assert.NotNull(queryResponse);
            Assert.AreEqual("150", queryResponse.response);
            Assert.AreEqual("Original transaction found", queryResponse.message);
            Assert.AreEqual(2, queryResponse.results_max10.Count);
        }
コード例 #9
0
        public void TestQueryTransactionAsync()
        {
            var query = new queryTransaction
            {
                id             = "myId",
                reportGroup    = "myReportGroup",
                origId         = "Deposit1",
                origActionType = actionTypeEnum.D,
                origCnpTxnId   = 54321
            };

            CancellationToken cancellationToken = new CancellationToken(false);
            var response      = _cnp.QueryTransactionAsync(query, cancellationToken);
            var queryResponse = (queryTransactionResponse)response.Result;

            Assert.NotNull(queryResponse);
            Assert.AreEqual("150", queryResponse.response);
            Assert.AreEqual("Original transaction found", queryResponse.message);
            Assert.AreEqual("000", ((captureResponse)queryResponse.results_max10[0]).response);
        }
コード例 #10
0
        public void TestQueryTransactionResponse()
        {
            queryTransaction query = new queryTransaction();

            query.id             = "myId";
            query.reportGroup    = "myReportGroup";
            query.origId         = "12345";
            query.origActionType = actionTypeEnum.D;
            query.origCnpTxnId   = 54321;

            var mock = new Mock <Communications>();

            mock.Setup(Communications => Communications.HttpPost(It.IsRegex(".*<queryTransaction.*", RegexOptions.Singleline)))
            .Returns("<cnpOnlineResponse version='10.10' response='0' message='Valid Format' xmlns='http://www.vantivcnp.com/schema'><queryTransactionResponse id='FindAuth' reportGroup='Mer5PM1' customerId='1'><response>000</response><responseTime>2015-12-03T10:30:02</responseTime><message>Original transaction found</message><results_max10><authorizationResponse id='1' reportGroup='defaultReportGroup'><cnpTxnId>756027696701750</cnpTxnId><orderId>GenericOrderId</orderId><response>000</response><responseTime>2015-04-14T12:04:59</responseTime><postDate>2015-04-14</postDate><message>Approved</message><authCode>055858</authCode></authorizationResponse><authorizationResponse id='1' reportGroup='defaultReportGroup'><cnpTxnId>756027696701751</cnpTxnId><orderId>GenericOrderId</orderId><response>000</response><responseTime>2015-04-14T12:04:59</responseTime><postDate>2015-04-14</postDate><message>Approved</message><authCode>055858</authCode></authorizationResponse><captureResponse><response>000</response><message>Deposit approved</message></captureResponse></results_max10><location>sandbox</location></queryTransactionResponse></cnpOnlineResponse>");

            Communications mockedCommunication = mock.Object;

            cnp.SetCommunication(mockedCommunication);
            transactionTypeWithReportGroup response = (transactionTypeWithReportGroup)cnp.QueryTransaction(query);
            queryTransactionResponse       queryTransactionResponse = (queryTransactionResponse)response;

            Assert.NotNull(queryTransactionResponse);
            Assert.AreEqual("sandbox", queryTransactionResponse.location);
            Assert.AreEqual("000", queryTransactionResponse.response);
            Assert.AreEqual(3, queryTransactionResponse.results_max10.Count);
            Assert.AreEqual("Original transaction found", queryTransactionResponse.message);
            Assert.AreEqual("000", ((authorizationResponse)queryTransactionResponse.results_max10[0]).response);
            Assert.AreEqual("Approved", ((authorizationResponse)queryTransactionResponse.results_max10[0]).message);
            Assert.AreEqual(756027696701750, ((authorizationResponse)queryTransactionResponse.results_max10[0]).cnpTxnId);

            Assert.AreEqual("000", ((authorizationResponse)queryTransactionResponse.results_max10[1]).response);
            Assert.AreEqual("Approved", ((authorizationResponse)queryTransactionResponse.results_max10[1]).message);
            Assert.AreEqual(756027696701751, ((authorizationResponse)queryTransactionResponse.results_max10[1]).cnpTxnId);

            Assert.AreEqual("000", ((authorizationResponse)queryTransactionResponse.results_max10[1]).response);
            Assert.AreEqual("Approved", ((authorizationResponse)queryTransactionResponse.results_max10[1]).message);
            Assert.AreEqual(756027696701751, ((authorizationResponse)queryTransactionResponse.results_max10[1]).cnpTxnId);

            Assert.AreEqual("000", ((captureResponse)queryTransactionResponse.results_max10[2]).response);
            Assert.AreEqual("Deposit approved", ((captureResponse)queryTransactionResponse.results_max10[2]).message);
        }
コード例 #11
0
        public void TestQueryTransactionUnavailableResponse()
        {
            var query = new queryTransaction
            {
                id             = "myId",
                reportGroup    = "myReportGroup",
                origId         = "Auth",
                origActionType = actionTypeEnum.A,
                origCnpTxnId   = 54321
            };

            var response = _cnp.QueryTransaction(query);

            if (response is queryTransactionResponse)
            {
                Assert.Fail("Unexpected type. Aborting the test");
            }
            else
            {
                var queryResponse = (queryTransactionUnavailableResponse)response;
                Assert.AreEqual("152", queryResponse.response);
                Assert.AreEqual("Original transaction found but response not yet available", queryResponse.message);
            }
        }
コード例 #12
0
 public Task <transactionTypeWithReportGroup> QueryTransactionAsync(queryTransaction transaction, CancellationToken cancellationToken)
 {
     return(this.SendTransactionAsync <transactionTypeWithReportGroup>(transaction, cancellationToken));
 }
コード例 #13
0
 public transactionTypeWithReportGroup QueryTransaction(queryTransaction transaction)
 {
     return(this.SendTransaction <transactionTypeWithReportGroup>(transaction));
 }
コード例 #14
0
 public transactionTypeWithReportGroup QueryTransaction(queryTransaction queryTransaction)
 {
     return(SendRequest(response => (response.queryTransactionResponse ?? (transactionTypeWithReportGroup)response.queryTransactionUnavailableResponse), queryTransaction));
 }
コード例 #15
0
 public Task <transactionTypeWithReportGroup> QueryTransactionAsync(queryTransaction queryTransaction, CancellationToken cancellationToken)
 {
     return(SendRequestAsync(response => (response.queryTransactionResponse ?? (transactionTypeWithReportGroup)response.queryTransactionUnavailableResponse), queryTransaction, cancellationToken));
 }