public void TestPut()
        {
            const string xmlRequest = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>" +
                                      "<chargebackUpdateRequest xmlns='http://www.vantivcnp.com/chargebacks'>" +
                                      "<activityType>ADD_NOTE</activityType>" +
                                      "<note>Any note</note>" +
                                      "</chargebackUpdateRequest>";
            var       sendingBytes = ChargebackUtils.StringToBytes(xmlRequest);
            const int caseId       = 1000;
            var       encoded      = ChargebackUtils.Encode64(_config.Get("username") + ":" + _config.Get("password"),
                                                              "utf-8");

            _comm.AddToHeader("Authorization", "Basic " + encoded);
            _comm.SetContentType("application/com.vantivcnp.services-v2+xml");
            _comm.SetAccept("application/com.vantivcnp.services-v2+xml");
            if (!String.IsNullOrEmpty(_config.Get("proxyHost")) && !String.IsNullOrEmpty(_config.Get("proxyPort")))
            {
                _comm.SetProxy(_config.Get("proxyHost"), int.Parse(_config.Get("proxyPort")));
            }
            var responseContent = _comm.Put("/services/chargebacks/" + caseId, sendingBytes);
            var receivedBytes   = responseContent.GetByteData();

            Assert.True(receivedBytes.Any());
            var xmlResponse = Regex.Replace(ChargebackUtils.BytesToString(receivedBytes), @"\t|\n|\r", "");
            var pattern     = @"<?xml version=.* encoding=.* standalone=.*?>.*" +
                              "<chargebackUpdateResponse xmlns=.*<transactionId>.*</transactionId>.*" +
                              "</chargebackUpdateResponse>";
            var regex = new Regex(pattern, RegexOptions.Multiline);

            Assert.True(regex.IsMatch(xmlResponse));
        }
        public void TestPost()
        {
            var caseId       = 1000;
            var documentId   = "callVantiv.pdf";
            var sendingBytes = ChargebackUtils.StringToBytes("Hello! Call Vantiv!");

            var encoded = ChargebackUtils.Encode64(_config.Get("username") + ":" + _config.Get("password"), "utf-8");

            _comm.AddToHeader("Authorization", "Basic " + encoded);
            if (!String.IsNullOrEmpty(_config.Get("proxyHost")) && !String.IsNullOrEmpty(_config.Get("proxyPort")))
            {
                _comm.SetProxy(_config.Get("proxyHost"), int.Parse(_config.Get("proxyPort")));
            }
            _comm.SetContentType("image/tiff");
            try
            {
                var responseContent = _comm.Post("/services/chargebacks/upload/" + caseId + "/" + documentId, sendingBytes);
                var receivedBytes   = responseContent.GetByteData();
                Assert.True(receivedBytes.Any());
                var xmlResponse = Regex.Replace(ChargebackUtils.BytesToString(receivedBytes), @"\t|\n|\r", "");
                var pattern     = @"<?xml version=.* encoding=.* standalone=.*?>.*" +
                                  "<chargebackDocumentUploadResponse xmlns=.*<merchantId>.*</merchantId>.*" +
                                  "<caseId>.*</caseId>.*" +
                                  "<responseCode>000</responseCode>.*" +
                                  "<responseMessage>Success</responseMessage>.*" +
                                  "</chargebackDocumentUploadResponse>";
                Regex regex = new Regex(pattern, RegexOptions.Multiline);
                Assert.True(regex.IsMatch(xmlResponse));
            }
            catch (Exception e)
            {
                Assert.Fail("Post failed" + e);
            }
        }
        public void TestDelete()
        {
            var          caseId     = 1000;
            const string documentId = "uploadTest.tiff";
            var          encoded    = ChargebackUtils.Encode64(_config.Get("username") + ":" + _config.Get("password"), "utf-8");

            _comm.AddToHeader("Authorization", "Basic " + encoded);
            if (!String.IsNullOrEmpty(_config.Get("proxyHost")) && !String.IsNullOrEmpty(_config.Get("proxyPort")))
            {
                _comm.SetProxy(_config.Get("proxyHost"), int.Parse(_config.Get("proxyPort")));
            }
            var responseContent = _comm.Delete(string.Format("/services/chargebacks/delete/{0}/{1}", caseId, documentId));
            var receivedBytes   = responseContent.GetByteData();

            Assert.True(receivedBytes.Any());
            var xmlResponse = Regex.Replace(ChargebackUtils.BytesToString(receivedBytes), @"\t|\n|\r", "");
            var pattern     = @"<?xml version=.* encoding=.* standalone=.*?>.*" +
                              "<chargebackDocumentUploadResponse xmlns=.*<merchantId>.*</merchantId>.*" +
                              "<caseId>.*</caseId>.*" +
                              "<responseCode>000</responseCode>.*" +
                              "<responseMessage>Success</responseMessage>.*" +
                              "</chargebackDocumentUploadResponse>";
            var regex = new Regex(pattern, RegexOptions.Multiline);

            Assert.True(regex.IsMatch(xmlResponse));
        }
        public void TestGet()
        {
            const string date    = "?date=2013-01-01";
            var          encoded = ChargebackUtils.Encode64(_config.Get("username") + ":" + _config.Get("password"),
                                                            "utf-8");

            _comm.AddToHeader("Authorization", "Basic " + encoded);
            _comm.SetContentType("application/com.vantivcnp.services-v2+xml");
            _comm.SetAccept("application/com.vantivcnp.services-v2+xml");
            if (!String.IsNullOrEmpty(_config.Get("proxyHost")) && !String.IsNullOrEmpty(_config.Get("proxyPort")))
            {
                _comm.SetProxy(_config.Get("proxyHost"), int.Parse(_config.Get("proxyPort")));
            }
            var responseContent = _comm.Get("/services/chargebacks/" + date);
            var contentType     = responseContent.GetContentType();
            var receivedBytes   = responseContent.GetByteData();

            Assert.True(receivedBytes.Any());
            Console.WriteLine("Content type returned from the server::" + contentType);
            var xmlResponse = Regex.Replace(ChargebackUtils.BytesToString(receivedBytes), @"\t|\n|\r", "");

            Console.WriteLine(xmlResponse);
            const string pattern = @"<?xml version=.* encoding=.* standalone=.*?>.*" +
                                   "<chargebackRetrievalResponse xmlns=.*<transactionId>.*</transactionId>.*" +
                                   "<chargebackCase>.*</chargebackCase>.*</chargebackRetrievalResponse>";
            var regex = new Regex(pattern, RegexOptions.Multiline);

            Assert.True(regex.IsMatch(xmlResponse));
        }
Пример #5
0
        public void TestBytesToString(string testString)
        {
            var bytes  = Encoding.ASCII.GetBytes(testString).ToList();
            var result = ChargebackUtils.BytesToString(bytes);

            Assert.AreEqual(testString, result);
        }
        public void TestReplaceDocument(long caseId, string documentId, string[] expectedDocumentIds,
                                        string expectedResponseCode, string expectedResponseMessage)
        {
            var tiffFilePath = Path.Combine(Directory.GetCurrentDirectory(), documentId);
            var writer       = new StreamWriter(File.Create(tiffFilePath));

            writer.WriteLine("Prototype an upload test file.");
            writer.Close();
            var sendingBytes        = File.ReadAllBytes(tiffFilePath).ToList();
            var expectedXmlResponse = generateXmlResponse(caseId, expectedDocumentIds,
                                                          expectedResponseCode, expectedResponseMessage);
            var expectedResponseContent
                = new ResponseContent(
                      "application/com.vantivcnp.services-v2+xml",
                      ChargebackUtils.StringToBytes(expectedXmlResponse));
            var commMock = new Mock <Communication>();

            commMock.Setup(c => c.Put(string.Format("/services/chargebacks/replace/{0}/{1}", caseId, documentId),
                                      sendingBytes)).Returns(expectedResponseContent);
            var docRequest        = new ChargebackDocumentationRequest(commMock.Object);
            var docUploadResponse = docRequest.ReplaceDocument(caseId, documentId, tiffFilePath);

            Assert.AreEqual(caseId, docUploadResponse.caseId);
            Assert.AreEqual(expectedDocumentIds, docUploadResponse.documentId);
            Assert.AreEqual(expectedResponseCode, docUploadResponse.responseCode);
            Assert.AreEqual(expectedResponseMessage, docUploadResponse.responseMessage);
        }
Пример #7
0
        public void TestRetrieveByCardNumber(string cardNumber, string expirationDate,
                                             int expectedId, int expectedNCases, bool expectedNull)
        {
            var expectedXmlResponse     = GenerateXmlResponse(expectedId, expectedNCases);
            var expectedResponseContent = new ResponseContent(
                "text/xml", ChargebackUtils.StringToBytes(expectedXmlResponse));
            var    commMock                 = new Mock <Communication>();
            var    cardExpirationdate       = ChargebackUtils.ParseDate(expirationDate);
            var    stringCardExpirationdate = cardExpirationdate.ToString("MMyy");
            string expectedQuery            =
                string.Format("/chargebacks/?cardNumber={0}&expirationDate={1}", cardNumber, stringCardExpirationdate);

            commMock.Setup(c => c.Get(expectedQuery))
            .Returns(expectedResponseContent);
            var request
                = new ChargebackRetrievalRequest(commMock.Object);
            var response
                = request.RetrieveByCardNumber(cardNumber, cardExpirationdate.Month, cardExpirationdate.Year);

            Assert.AreEqual(expectedId, response.transactionId);
            var nullCase = response.chargebackCase == null;

            Assert.AreEqual(expectedNull, nullCase);
            if (!nullCase)
            {
                Assert.AreEqual(expectedNCases, response.chargebackCase.Length);
            }
        }
Пример #8
0
        public void TestStringToBytes()
        {
            const string helloWorld  = "@Hello World!";
            var          bytes       = Encoding.ASCII.GetBytes(helloWorld).ToList();
            var          resultBytes = ChargebackUtils.StringToBytes(helloWorld);

            for (var i = 0; i < bytes.Count; i++)
            {
                Assert.AreEqual(bytes[i], resultBytes[i]);
            }
        }
        public void TestRetrieveDocument(long caseId, string documentId)
        {
            const string expectedFileContent          = "To test document retrieval";
            var          expectedRetrievedFileContent = ChargebackUtils.StringToBytes(expectedFileContent);
            var          expectedResponseContent      = new ResponseContent(
                "image/tiff", expectedRetrievedFileContent);
            var commMock = new Mock <Communication>();

            commMock.Setup(c => c.Get(string.Format("/services/chargebacks/retrieve/{0}/{1}", caseId, documentId)))
            .Returns(expectedResponseContent);
            var docRequest  = new ChargebackDocumentationRequest(commMock.Object);
            var docResponse = docRequest.RetrieveDocument(caseId, documentId);

            Assert.Less(0, docResponse.Count);
        }
        public void TestRetrieveDocumentFailure(long caseId, string documentId, string[] expectedDocumentIds,
                                                string expectedResponseCode, string expectedResponseMessage)
        {
            var expectedXmlResponse = generateXmlResponse(caseId, expectedDocumentIds,
                                                          expectedResponseCode, expectedResponseMessage);
            var expectedResponseContent = new ResponseContent(
                "application/com.vantivcnp.services-v2+xml",
                ChargebackUtils.StringToBytes(expectedXmlResponse));
            var commMock = new Mock <Communication>();

            commMock.Setup(c => c.Get(string.Format("/services/chargebacks/retrieve/{0}/{1}", caseId, documentId)))
            .Returns(expectedResponseContent);
            var docRequest = new ChargebackDocumentationRequest(commMock.Object);

            docRequest.RetrieveDocument(caseId, documentId);
        }
Пример #11
0
        public void TestAddNote(long caseId, string note, int expectedTxnId)
        {
            var expectedXmlResponse     = generateXmlResponse(expectedTxnId);
            var expectedXmlRequest      = generateXmlRequest(activityType.ADD_NOTE, null, note);
            var expectedSendingBytes    = ChargebackUtils.StringToBytes(expectedXmlRequest);
            var expectedResponseContent = new ResponseContent(
                "text/xml", ChargebackUtils.StringToBytes(expectedXmlResponse));
            var commMock = new Mock <Communication>();

            commMock.Setup(c => c.Put("/chargebacks/" + caseId, expectedSendingBytes))
            .Returns(expectedResponseContent);
            var request
                = new ChargebackUpdateRequest(commMock.Object);
            var response
                = request.AddNote(caseId, note);

            Assert.AreEqual(expectedTxnId, response.transactionId);
        }
Пример #12
0
        public void TestRepresentWithRepresentedAmount(long caseId, long representedAmount, string note, int expectedTxnId)
        {
            var expectedXmlResponse = generateXmlResponse(expectedTxnId);
            var expectedXmlRequest
                = generateXmlRequest(activityType.MERCHANT_REPRESENT, null, note, true, representedAmount);
            var expectedSendingBytes    = ChargebackUtils.StringToBytes(expectedXmlRequest);
            var expectedResponseContent = new ResponseContent(
                "text/xml", ChargebackUtils.StringToBytes(expectedXmlResponse));
            var commMock = new Mock <Communication>();

            commMock.Setup(c => c.Put("/chargebacks/" + caseId, expectedSendingBytes))
            .Returns(expectedResponseContent);
            var request
                = new ChargebackUpdateRequest(commMock.Object);
            var response
                = request.Represent(caseId, representedAmount, note);

            Assert.AreEqual(expectedTxnId, response.transactionId);
        }
        public void TestDeleteDocument(long caseId, string documentId, string[] expectedDocumentIds,
                                       string expectedResponseCode, string expectedResponseMessage)
        {
            var expectedXmlResponse = generateXmlResponse(caseId, expectedDocumentIds,
                                                          expectedResponseCode, expectedResponseMessage);
            var expectedResponseContent
                = new ResponseContent("application/com.vantivcnp.services-v2+xml",
                                      ChargebackUtils.StringToBytes(expectedXmlResponse));
            var commMock = new Mock <Communication>();

            commMock.Setup(c => c.Delete(string.Format("/services/chargebacks/delete/{0}/{1}", caseId, documentId)))
            .Returns(expectedResponseContent);
            var docRequest        = new ChargebackDocumentationRequest(commMock.Object);
            var docUploadResponse = docRequest.DeleteDocument(caseId, documentId);

            Assert.AreEqual(caseId, docUploadResponse.caseId);
            Assert.AreEqual(expectedDocumentIds, docUploadResponse.documentId);
            Assert.AreEqual(expectedResponseCode, docUploadResponse.responseCode);
            Assert.AreEqual(expectedResponseMessage, docUploadResponse.responseMessage);
        }
Пример #14
0
        public void TestRetrieveByActivityDate(string date, int expectedId, int expectedNCases, bool expectedNull)
        {
            var expectedXmlResponse     = GenerateXmlResponse(expectedId, expectedNCases);
            var expectedResponseContent = new ResponseContent(
                "text/xml", ChargebackUtils.StringToBytes(expectedXmlResponse));
            var commMock = new Mock <Communication>();

            commMock.Setup(c => c.Get("/chargebacks/?date=" + date))
            .Returns(expectedResponseContent);
            var request
                = new ChargebackRetrievalRequest(commMock.Object);
            var response
                = request.RetrieveByActivityDate(ChargebackUtils.ParseDate(date));

            Assert.AreEqual(expectedId, response.transactionId);
            var nullCase = response.chargebackCase == null;

            Assert.AreEqual(expectedNull, nullCase);
            if (!nullCase)
            {
                Assert.AreEqual(expectedNCases, response.chargebackCase.Length);
            }
        }
        public void Test_2_1_1_RetrieveByAParticularDate()
        {
            chargebackRetrievalResponse response = _retrievalRequest.RetrieveByActivityDate(ChargebackUtils.ParseDate("2013-1-1"));

            Assert.NotNull(response);
            Assert.AreEqual(11, response.chargebackCase.Length);
            chargebackApiCase[] cases = response.chargebackCase;
            Assert.AreEqual("1111111111", cases[0].acquirerReferenceNumber);
            Assert.AreEqual("2222222222", cases[1].acquirerReferenceNumber);
            Assert.AreEqual("3333333333", cases[2].acquirerReferenceNumber);
            Assert.AreEqual("4444444444", cases[3].acquirerReferenceNumber);
            Assert.AreEqual("5555555550", cases[4].acquirerReferenceNumber);
            Assert.AreEqual("5555555551", cases[5].acquirerReferenceNumber);
            Assert.AreEqual("5555555552", cases[6].acquirerReferenceNumber);
            Assert.AreEqual("6666666660", cases[7].acquirerReferenceNumber);
            Assert.AreEqual("7777777770", cases[8].acquirerReferenceNumber);
            Assert.AreEqual("7777777771", cases[9].acquirerReferenceNumber);
            Assert.AreEqual("7777777772", cases[10].acquirerReferenceNumber);

/*          Assert.AreEqual("FIRST_CHARGBACK", cases[0].cycle);
 *          Assert.AreEqual("FIRST_CHARGBACK", cases[1].cycle);
 *          Assert.AreEqual("FIRST_CHARGBACK", cases[2].cycle);
 *          Assert.AreEqual("FIRST_CHARGBACK", cases[3].cycle);
 *          Assert.AreEqual("PRE_ARB_CHARGBACK", cases[4].cycle);
 *          Assert.AreEqual("PRE_ARB_CHARGBACK", cases[5].cycle);
 *          Assert.AreEqual("PRE_ARB_CHARGBACK", cases[6].cycle);
 *          Assert.AreEqual("ARBITRATION_CHARGEBACK", cases[7].cycle);
 *          Assert.AreEqual("ISSUER_DECLINE_PRESAB", cases[8].cycle);
 *          Assert.AreEqual("ISSUER_DECLINE_PRESAB", cases[9].cycle);
 *          Assert.AreEqual("ISSUER_DECLINE_PRESAB", cases[10].cycle);*/
        }
Пример #16
0
        public void TestEncode64(string password)
        {
            var expectedEncodedPassword = Convert.ToBase64String(Encoding.GetEncoding("utf-8").GetBytes(password));

            Assert.AreEqual(expectedEncodedPassword, ChargebackUtils.Encode64(password, "utf-8"));
        }