public void MapResponseTest() { // Arrange string rawJson = "{\"id\":\"TRN_BHZ1whvNJnMvB6dPwf3znwWTsPjCn0\",\"time_created\":\"2020-12-04T12:46:05.235Z\",\"type\":\"SALE\",\"status\":\"PREAUTHORIZED\",\"channel\":\"CNP\",\"capture_mode\":\"LATER\",\"amount\":\"1400\",\"currency\":\"USD\",\"country\":\"US\",\"merchant_id\":\"MER_c4c0df11039c48a9b63701adeaa296c3\",\"merchant_name\":\"Sandbox_merchant_2\",\"account_id\":\"TRA_6716058969854a48b33347043ff8225f\",\"account_name\":\"Transaction_Processing\",\"reference\":\"15fbcdd9-8626-4e29-aae8-050f823f995f\",\"payment_method\":{\"result\":\"00\",\"message\":\"[ test system ] AUTHORISED\",\"entry_mode\":\"ECOM\",\"card\":{\"brand\":\"VISA\",\"masked_number_last4\":\"XXXXXXXXXXXX5262\",\"authcode\":\"12345\",\"brand_reference\":\"PSkAnccWLNMTcRmm\",\"brand_time_created\":\"\",\"cvv_result\":\"MATCHED\"}},\"batch_id\":\"\",\"action\":{\"id\":\"ACT_BHZ1whvNJnMvB6dPwf3znwWTsPjCn0\",\"type\":\"PREAUTHORIZE\",\"time_created\":\"2020-12-04T12:46:05.235Z\",\"result_code\":\"SUCCESS\",\"app_id\":\"Uyq6PzRbkorv2D4RQGlldEtunEeGNZll\",\"app_name\":\"sample_app_CERT\"}}"; // Act Transaction transaction = GpApiMapping.MapResponse(rawJson); JsonDoc doc = JsonDoc.Parse(rawJson); // Assert Assert.AreEqual(doc.GetValue <string>("id"), transaction.TransactionId); Assert.AreEqual(doc.GetValue <string>("amount").ToAmount(), transaction.BalanceAmount); Assert.AreEqual(doc.GetValue <string>("time_created"), transaction.Timestamp); Assert.AreEqual(doc.GetValue <string>("status"), transaction.ResponseMessage); Assert.AreEqual(doc.GetValue <string>("reference"), transaction.ReferenceNumber); Assert.AreEqual(doc.GetValue <string>("batch_id"), transaction.BatchSummary?.SequenceNumber); Assert.AreEqual(doc.Get("action").GetValue <string>("result_code"), transaction.ResponseCode); Assert.AreEqual(doc.GetValue <string>("id"), transaction.Token); if (doc.Has("payment_method")) { Assert.AreEqual(doc.Get("payment_method")?.GetValue <string>("result"), transaction.AuthorizationCode); Assert.AreEqual(doc.Get("payment_method")?.Get("card")?.GetValue <string>("brand"), transaction.CardType); Assert.AreEqual(doc.Get("payment_method")?.Get("card")?.GetValue <string>("masked_number_last4"), transaction.CardLast4); } if (doc.Has("card")) { Assert.AreEqual(doc.Get("card")?.GetValue <string>("number"), transaction.CardNumber); Assert.AreEqual(doc.Get("card")?.GetValue <string>("brand"), transaction.CardType); Assert.AreEqual(doc.Get("card")?.GetValue <int>("expiry_month"), transaction.CardExpMonth); Assert.AreEqual(doc.Get("card")?.GetValue <int>("expiry_year"), transaction.CardExpYear); } }
public Transaction ProcessSecure3d(Secure3dBuilder builder) { if (string.IsNullOrEmpty(AccessToken)) { SignIn(); } var request = GpApiSecure3DRequestBuilder.BuildRequest(builder, this); if (request != null) { var response = DoTransaction(request.Verb, request.Endpoint, request.RequestBody, request.QueryStringParams, builder.IdempotencyKey); return(GpApiMapping.Map3DSecureData(response)); } return(null); }
public T ProcessReport <T>(ReportBuilder <T> builder) where T : class { if (string.IsNullOrEmpty(AccessToken)) { SignIn(); } GpApiRequest request = GpApiReportRequestBuilder.BuildRequest(builder, this); if (request != null) { var response = DoTransaction(request.Verb, request.Endpoint, request.RequestBody, request.QueryStringParams); return(GpApiMapping.MapReportResponse <T>(response, builder.ReportType)); } return(null); }
public Transaction ManageTransaction(ManagementBuilder builder) { if (string.IsNullOrEmpty(AccessToken)) { SignIn(); } GpApiRequest request = GpApiManagementRequestBuilder.BuildRequest(builder, this); if (request != null) { var response = DoTransaction(request.Verb, request.Endpoint, request.RequestBody, request.QueryStringParams, builder.IdempotencyKey); return(GpApiMapping.MapResponse(response)); } return(null); }
public Transaction ProcessAuthorization(AuthorizationBuilder builder) { if (string.IsNullOrEmpty(AccessToken)) { SignIn(); } GpApiRequest request = GpApiAuthorizationRequestBuilder.BuildRequest(builder, this); if (request != null) { var response = DoTransaction(request.Verb, request.Endpoint, request.RequestBody, request.QueryStringParams, builder.IdempotencyKey); if (builder.PaymentMethod is AlternativePaymentMethod) { return(GpApiMapping.MapResponseAPM(response)); } return(GpApiMapping.MapResponse(response)); } return(null); }
public void MapDepositSummaryTest_NullDates() { // Arrange string rawJson = "{\"id\":\"DEP_2342423423\",\"time_created\":\"\",\"status\":\"FUNDED\",\"funding_type\":\"CREDIT\",\"amount\":\"11400\",\"currency\":\"USD\",\"aggregation_model\":\"H-By Date\",\"bank_transfer\":{\"masked_account_number_last4\":\"XXXXXX9999\",\"bank\":{\"code\":\"XXXXX0001\"}},\"system\":{\"mid\":\"101023947262\",\"hierarchy\":\"055-70-024-011-019\",\"name\":\"XYZ LTD.\",\"dba\":\"XYZ Group\"},\"sales\":{\"count\":4,\"amount\":\"12400\"},\"refunds\":{\"count\":1,\"amount\":\"-1000\"},\"discounts\":{\"count\":0,\"amount\":\"\"},\"tax\":{\"count\":0,\"amount\":\"\"},\"disputes\":{\"chargebacks\":{\"count\":0,\"amount\":\"\"},\"reversals\":{\"count\":0,\"amount\":\"\"}},\"fees\":{\"amount\":\"\"},\"action\":{\"id\":\"ACT_TWdmMMOBZ91iQX1DcvxYermuVJ6E6h\",\"type\":\"DEPOSIT_SINGLE\",\"time_created\":\"\",\"result_code\":\"SUCCESS\",\"app_id\":\"JF2GQpeCrOivkBGsTRiqkpkdKp67Gxi0\",\"app_name\":\"test_app\"}}"; JsonDoc doc = JsonDoc.Parse(rawJson); // Act DepositSummary deposit = GpApiMapping.MapDepositSummary(doc); // Assert Assert.AreEqual(doc.GetValue <string>("id"), deposit.DepositId); Assert.IsNull(deposit.DepositDate); Assert.AreEqual(doc.GetValue <string>("status"), deposit.Status); Assert.AreEqual(doc.GetValue <string>("funding_type"), deposit.Type); Assert.AreEqual(doc.GetValue <string>("amount").ToAmount(), deposit.Amount); Assert.AreEqual(doc.GetValue <string>("currency"), deposit.Currency); Assert.AreEqual(doc.Get("system")?.GetValue <string>("mid"), deposit.MerchantNumber); Assert.AreEqual(doc.Get("system")?.GetValue <string>("hierarchy"), deposit.MerchantHierarchy); Assert.AreEqual(doc.Get("system")?.GetValue <string>("name"), deposit.MerchantName); Assert.AreEqual(doc.Get("system")?.GetValue <string>("dba"), deposit.MerchantDbaName); Assert.AreEqual(doc.Get("sales")?.GetValue <int>("count") ?? default(int), deposit.SalesTotalCount); Assert.AreEqual(doc.Get("sales")?.GetValue <string>("amount").ToAmount(), deposit.SalesTotalAmount); Assert.AreEqual(doc.Get("refunds")?.GetValue <int>("count") ?? default(int), deposit.RefundsTotalCount); Assert.AreEqual(doc.Get("refunds")?.GetValue <string>("amount").ToAmount(), deposit.RefundsTotalAmount); Assert.AreEqual(doc.Get("disputes")?.Get("chargebacks")?.GetValue <int>("count") ?? default(int), deposit.ChargebackTotalCount); Assert.AreEqual(doc.Get("disputes")?.Get("chargebacks")?.GetValue <string>("amount").ToAmount(), deposit.ChargebackTotalAmount); Assert.AreEqual(doc.Get("disputes")?.Get("reversals")?.GetValue <int>("count") ?? default(int), deposit.AdjustmentTotalCount); Assert.AreEqual(doc.Get("disputes")?.Get("reversals")?.GetValue <string>("amount").ToAmount(), deposit.AdjustmentTotalAmount); Assert.AreEqual(doc.Get("fees")?.GetValue <string>("amount").ToAmount(), deposit.FeesTotalAmount); }