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 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); } }
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); }
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); }
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); }
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); }
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); } }