public void GetChargeWithMultipleHistory() { // charge var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var chargeResponse = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); // capture var chargeCaptureModel = TestHelper.GetChargeCaptureModel(chargeResponse.Model.Value); var captureResponse = CheckoutClient.ChargeService.CaptureCharge(chargeResponse.Model.Id, chargeCaptureModel); // refund var chargeRefundModel = TestHelper.GetChargeRefundModel(chargeResponse.Model.Value); var refundResponse = CheckoutClient.ChargeService.RefundCharge(captureResponse.Model.Id, chargeRefundModel); var response = CheckoutClient.ChargeService.GetChargeHistory(chargeResponse.Model.Id); response.Should().NotBeNull(); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.Model.Charges.Should().HaveCount(3); response.Model.Charges[0].Id.Should().Be(refundResponse.Model.Id); response.Model.Charges[1].Id.Should().Be(captureResponse.Model.Id); response.Model.Charges[2].Id.Should().Be(chargeResponse.Model.Id); chargeResponse.Model.Id.Should().Be(captureResponse.Model.OriginalId); refundResponse.Model.OriginalId.Should().Be(captureResponse.Model.Id); }
public void GetChargeWithMultipleHistory() { // charge var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var chargeResponse = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); // capture var chargeCaptureModel = TestHelper.GetChargeCaptureModel(chargeResponse.Model.Value); var captureResponse = CheckoutClient.ChargeService.CaptureCharge(chargeResponse.Model.Id, chargeCaptureModel); // refund var chargeRefundModel = TestHelper.GetChargeRefundModel(chargeResponse.Model.Value); var refundResponse = CheckoutClient.ChargeService.RefundCharge(captureResponse.Model.Id, chargeRefundModel); var response = CheckoutClient.ChargeService.GetChargeHistory(chargeResponse.Model.Id); Assert.NotNull(response); Assert.IsTrue(response.HttpStatusCode == System.Net.HttpStatusCode.OK); Assert.IsTrue(response.Model.Charges.Count == 3); Assert.IsTrue(response.Model.Charges[0].Id == refundResponse.Model.Id); Assert.IsTrue(response.Model.Charges[1].Id == captureResponse.Model.Id); Assert.IsTrue(response.Model.Charges[2].Id == chargeResponse.Model.Id); Assert.IsTrue(chargeResponse.Model.Id == captureResponse.Model.OriginalId); Assert.IsTrue(refundResponse.Model.OriginalId == captureResponse.Model.Id); }
public void GetChargeWithMultipleHistory() { // Collect charge IDs from charge, capture, refund List <string> responseIds = new List <string>(); // charge var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var chargeResponse = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); responseIds.Add(chargeResponse.Model.Id); // capture var chargeCaptureModel = TestHelper.GetChargeCaptureModel(chargeResponse.Model.Value); var captureResponse = CheckoutClient.ChargeService.CaptureCharge(chargeResponse.Model.Id, chargeCaptureModel); responseIds.Add(captureResponse.Model.Id); // refund var chargeRefundModel = TestHelper.GetChargeRefundModel(chargeResponse.Model.Value); var refundResponse = CheckoutClient.ChargeService.RefundCharge(captureResponse.Model.Id, chargeRefundModel); responseIds.Add(refundResponse.Model.Id); var response = CheckoutClient.ChargeService.GetChargeHistory(chargeResponse.Model.Id); // Isolate charge IDs from GetChargeHistory() List <string> historyIds = new List <string>(); for (int i = 0; i < response.Model.Charges.Count; i++) { historyIds.Add(response.Model.Charges[i].Id.ToString()); } response.Should().NotBeNull(); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.Model.Charges.Should().HaveCount(responseIds.Count); historyIds.Count.Should().Be(responseIds.Count); // Pre-sorting for index matching responseIds.Sort(); historyIds.Sort(); for (int i = 0; i < historyIds.Count; i++) { historyIds[i].Should().Be(responseIds[i]); } chargeResponse.Model.Id.Should().Be(captureResponse.Model.OriginalId); refundResponse.Model.OriginalId.Should().Be(captureResponse.Model.Id); }
public void CaptureCharge() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var charge = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel).Model; var chargeCaptureModel = TestHelper.GetChargeCaptureModel(charge.Value); var response = CheckoutClient.ChargeService.CaptureCharge(charge.Id, chargeCaptureModel); ////Check if charge details match Assert.NotNull(response); Assert.IsTrue(response.HttpStatusCode == System.Net.HttpStatusCode.OK); Assert.IsTrue(response.Model.OriginalId.Equals(charge.Id, System.StringComparison.OrdinalIgnoreCase)); }
public void CaptureCharge() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var charge = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel).Model; var chargeCaptureModel = TestHelper.GetChargeCaptureModel(charge.Value); var response = CheckoutClient.ChargeService.CaptureCharge(charge.Id, chargeCaptureModel); ////Check if charge details match response.Should().NotBeNull(); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.Model.OriginalId.Should().BeEquivalentTo(charge.Id); }
public void RefundCharge() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var charge = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel).Model; var chargeCaptureModel = TestHelper.GetChargeCaptureModel(charge.Value); var captureResponse = CheckoutClient.ChargeService.CaptureCharge(charge.Id, chargeCaptureModel); var chargeRefundModel = TestHelper.GetChargeRefundModel(charge.Value); var response = CheckoutClient.ChargeService.RefundCharge(captureResponse.Model.Id, chargeRefundModel); //Check if charge details match Assert.NotNull(response); Assert.IsTrue(response.HttpStatusCode == System.Net.HttpStatusCode.OK); Assert.IsTrue(response.Model.OriginalId == captureResponse.Model.Id); }
public void SoftFailRefundCharge() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var charge = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel).Model; charge.ResponseCode.Should().StartWith("10", "Charge must be 'Approved' first in order to be able to capture"); var chargeCaptureModel = TestHelper.GetChargeCaptureModel(charge.Value); var captureResponse = CheckoutClient.ChargeService.CaptureCharge(charge.Id, chargeCaptureModel); var chargeRefundModel = TestHelper.GetChargeRefundModel((Int32.Parse(charge.Value) + 1).ToString()); var response = CheckoutClient.ChargeService.RefundCharge(captureResponse.Model.Id, chargeRefundModel); var refund = response.Error; //Check if charge details match response.Should().NotBeNull(); response.HttpStatusCode.Should().Be(HttpStatusCode.BadRequest); response.HasError.Should().BeTrue(); refund.ErrorCode.Should().Be("83024"); }
public void RefundCharge() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var charge = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel).Model; charge.ResponseCode.Should().StartWith("10", "Charge must be 'Approved' first in order to be able to capture"); var chargeCaptureModel = TestHelper.GetChargeCaptureModel(charge.Value); var captureResponse = CheckoutClient.ChargeService.CaptureCharge(charge.Id, chargeCaptureModel); var chargeRefundModel = TestHelper.GetChargeRefundModel(charge.Value); var response = CheckoutClient.ChargeService.RefundCharge(captureResponse.Model.Id, chargeRefundModel); var refund = response.Model; //Check if charge details match response.Should().NotBeNull(); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.HasError.Should().BeFalse(); refund.OriginalId.Should().Be(captureResponse.Model.Id); }
public void QueryTransactions_CreateChargeAndCapture_BothTransactionsFoundBy(Field?field) { string cardNumber; var charge = CreateChargeWithNewTrackId(out cardNumber); var filter = new Filter { Field = field, Value = GetChargePropertyValueFromField(charge, field, cardNumber) }; var request = TestHelper.GetQueryTransactionModel(new List <Filter> { filter }); var firstQueryResponse = CheckoutClient.ReportingService.QueryTransaction(request); #region Assert First Query Response firstQueryResponse.Should().NotBeNull(); if (field.HasValue) { firstQueryResponse.HttpStatusCode.Should().Be(HttpStatusCode.OK); firstQueryResponse.Model.TotalRecords.Should().BeGreaterThan(0); if (field == Field.Status) { firstQueryResponse.Model.Data.Should().OnlyContain(t => t.Status.Equals(filter.Value, _ignoreCase)); } else if (field == Field.Email) { firstQueryResponse.Model.Data.Should() .OnlyContain(t => t.Customer.Email.Equals(filter.Value, _ignoreCase)); } else { firstQueryResponse.Model.Data.Should().OnlyContain(t => t.TrackId.Equals(charge.TrackId)); } } else { firstQueryResponse.HttpStatusCode.Should().Be(HttpStatusCode.BadRequest); firstQueryResponse.HasError.Should().BeTrue(); } #endregion Assert First Query Response // capture charge and query 2nd time var chargeCapture = TestHelper.GetChargeCaptureModel(charge.Value); chargeCapture.TrackId = charge.TrackId; var captureChargeResponse = CheckoutClient.ChargeService.CaptureCharge(charge.Id, chargeCapture); captureChargeResponse.Should().NotBeNull(); captureChargeResponse.HttpStatusCode.Should().Be(HttpStatusCode.OK); var secondQueryResponse = CheckoutClient.ReportingService.QueryTransaction(request); #region Assert Second Query Response secondQueryResponse.Should().NotBeNull(); if (field.HasValue) { secondQueryResponse.HttpStatusCode.Should().Be(HttpStatusCode.OK); secondQueryResponse.Model.TotalRecords.Should().BeGreaterThan(0); if (field == Field.Status) { secondQueryResponse.Model.Data.Should().OnlyContain(t => t.Status.Equals(filter.Value, _ignoreCase)); } else if (field == Field.Email) { secondQueryResponse.Model.Data.Should() .OnlyContain(t => t.Customer.Email.Equals(filter.Value, _ignoreCase)); } else if (field == Field.CardNumber || field == Field.ChargeId) { secondQueryResponse.Model.Data.Should() .OnlyContain(t => t.TrackId == charge.TrackId) .And.HaveCount(1); } else if (field == Field.TrackId) { secondQueryResponse.Model.Data.Should() .OnlyContain(t => t.TrackId == charge.TrackId) .And.HaveCount(2); } } else { secondQueryResponse.HttpStatusCode.Should().Be(HttpStatusCode.BadRequest); secondQueryResponse.HasError.Should().BeTrue(); } #endregion Assert Second Query Response }