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 CreateChargeWithCard() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var response = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); //Check if charge details match response.Should().NotBeNull(); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.Model.Id.Should().StartWith("charge_"); response.Model.AutoCapTime.Should().Be(cardCreateModel.AutoCapTime); response.Model.AutoCapture.Should().BeEquivalentTo(cardCreateModel.AutoCapture); response.Model.Email.Should().BeEquivalentTo(cardCreateModel.Email); response.Model.Currency.Should().BeEquivalentTo(cardCreateModel.Currency); response.Model.Description.Should().BeEquivalentTo(cardCreateModel.Description); response.Model.Value.Should().Be(cardCreateModel.Value); response.Model.Status.Should().NotBeNullOrEmpty(); response.Model.AuthCode.Should().NotBeNullOrEmpty(); response.Model.ResponseCode.Should().NotBeNullOrEmpty(); //Check if card details match response.Model.Card.Name.Should().Be(cardCreateModel.Card.Name); response.Model.Card.ExpiryMonth.Should().Be(cardCreateModel.Card.ExpiryMonth); response.Model.Card.ExpiryYear.Should().Be(cardCreateModel.Card.ExpiryYear); cardCreateModel.Card.Number.Should().EndWith(response.Model.Card.Last4); response.Model.Card.BillingDetails.ShouldBeEquivalentTo(cardCreateModel.Card.BillingDetails); //Check if shipping details match response.Model.Products.ShouldBeEquivalentTo(cardCreateModel.Products); //Check if metadatadetails match response.Model.Metadata.ShouldBeEquivalentTo(cardCreateModel.Metadata); }
public void GetChargeHistory() { #region setup charge history var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var chargeResponse = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); chargeResponse.Model.ResponseCode.Should().StartWith("10", "Charge must be 'Approved' first in order to be able to void"); var chargeVoidModel = TestHelper.GetChargeVoidModel(); var voidResponse = CheckoutClient.ChargeService.VoidCharge(chargeResponse.Model.Id, chargeVoidModel); #endregion var response = CheckoutClient.ChargeService.GetChargeHistory(voidResponse.Model.Id); response.Should().NotBeNull(); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.Model.Charges.Should().HaveCount(2); response.Model.Charges[0].Id.Should().Be(voidResponse.Model.Id); response.Model.Charges[1].Id.Should().Be(chargeResponse.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); 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 CreateZeroAuthorisationCharge() { CardCharge cardChargeRequestModel = TestHelper.GetCardChargeCreateModel(customerEmail: TestHelper.RandomData.Email); var response = CheckoutClient.ChargeService.ChargeWithCard(cardChargeRequestModel); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.Model.Id.Should().StartWith("charge_test_"); response.Model.Used.Should().Be(false); }
public void CreateCharge_FailsWithError_IfCardNumberIsInvalid() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email);; cardCreateModel.Card.Number = "4242424242424243"; var response = new APIClient().ChargeService.ChargeWithCard(cardCreateModel); Assert.NotNull(response); Assert.IsTrue(response.HttpStatusCode != System.Net.HttpStatusCode.OK); Assert.IsTrue(response.HasError); }
public void UpdateCharge() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var charge = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel).Model; var chargeUpdateModel = TestHelper.GetChargeUpdateModel(); var response = CheckoutClient.ChargeService.UpdateCharge(charge.Id, chargeUpdateModel); response.Should().NotBeNull(); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.Model.Message.Should().BeEquivalentTo("Ok"); }
public void CreateCharge_FailsWithError_IfCardNumberIsInvalid() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); ; cardCreateModel.Card.Number = "4242424242424243"; var response = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); response.Should().NotBeNull(); response.HttpStatusCode.Should().NotBe(HttpStatusCode.OK); response.HasError.Should().BeTrue(); }
public void UpdateCharge() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var charge = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel).Model; var chargeUpdateModel = TestHelper.GetChargeUpdateModel(); var response = CheckoutClient.ChargeService.UpdateCharge(charge.Id, chargeUpdateModel); Assert.NotNull(response); Assert.IsTrue(response.HttpStatusCode == System.Net.HttpStatusCode.OK); Assert.IsTrue(response.Model.Message.Equals("Ok", System.StringComparison.OrdinalIgnoreCase)); }
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); }
/// <summary> /// Creates a new charge with default card and new track id and asserts that is not declined /// </summary> /// <param name="cardNumber"></param> /// <returns></returns> protected Charge CreateChargeWithNewTrackId(out string cardNumber) { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); cardCreateModel.TrackId = "TRF" + Guid.NewGuid(); var chargeResponse = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); chargeResponse.Should().NotBeNull(); chargeResponse.HttpStatusCode.Should().Be(HttpStatusCode.OK); chargeResponse.Model.Status.Should().NotBe("Declined"); cardNumber = cardCreateModel.Card.Number; return(chargeResponse.Model); }
public void CreateChargeWithCard_N3DChargeMode() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var response = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); response.Should().NotBeNull(); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.Model.Id.Should().StartWith("charge_test"); response.Model.ChargeMode.Should().Be(1); response.Model.AttemptN3D.Should().BeTrue(); //response.Model.RedirectUrl.Should().StartWith("http"); // only use if redirect URL is configured response.Model.ResponseCode.Should().NotBeNullOrEmpty(); response.Model.TrackId.ShouldBeEquivalentTo(cardCreateModel.TrackId); }
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 GetCharge() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var chargeResponse = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); var response = CheckoutClient.ChargeService.GetCharge(chargeResponse.Model.Id); //Check if charge details match Assert.NotNull(response); Assert.IsTrue(response.HttpStatusCode == System.Net.HttpStatusCode.OK); Assert.IsTrue(response.Model.Id.StartsWith("charge_")); Assert.IsTrue(chargeResponse.Model.Id == response.Model.Id); }
public void VoidCharge() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var charge = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel).Model; var chargeVoidModel = TestHelper.GetChargeVoidModel(); var response = CheckoutClient.ChargeService.VoidCharge(charge.Id, chargeVoidModel); //Check if charge details match response.Should().NotBeNull(); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.Model.OriginalId.Should().Be(charge.Id); }
public void VoidCharge() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var charge = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel).Model; var chargeVoidModel = TestHelper.GetChargeVoidModel(); var response = CheckoutClient.ChargeService.VoidCharge(charge.Id, chargeVoidModel); //Check if charge details match Assert.NotNull(response); Assert.IsTrue(response.HttpStatusCode == System.Net.HttpStatusCode.OK); Assert.IsTrue(response.Model.OriginalId == charge.Id); }
public void CreateChargeWithCard_FailsWithValidationError_IfDetailsInvalid() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(); cardCreateModel.Currency = string.Empty; cardCreateModel.Value = "-100"; var response = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); response.Should().NotBeNull(); response.HttpStatusCode.Should().NotBe(HttpStatusCode.OK); response.HasError.Should().BeTrue(); response.Error.ErrorCode.Should().Be("70000"); response.Error.Message.Should().BeEquivalentTo("validation error"); }
public void CreateChargeWithCard_FailsWithValidationError_IfDetailsInvalid() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(); cardCreateModel.Currency = string.Empty; cardCreateModel.Value = "-100"; var response = new APIClient().ChargeService.ChargeWithCard(cardCreateModel); Assert.NotNull(response); Assert.IsTrue(response.HttpStatusCode != System.Net.HttpStatusCode.OK); Assert.IsTrue(response.HasError); Assert.IsTrue(response.Error.ErrorCode == "70000"); Assert.IsTrue(response.Error.Message.ToLower() == "validation error"); }
public void GetCharge() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var chargeResponse = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); var response = CheckoutClient.ChargeService.GetCharge(chargeResponse.Model.Id); //Check if charge details match response.Should().NotBeNull(); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.Model.Id.Should().StartWith("charge_"); chargeResponse.Model.Id.Should().Be(response.Model.Id); }
public void CreateChargeWithCard_3DChargeMode() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); cardCreateModel.ChargeMode = 2; var response = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); //Check if charge details match response.Should().NotBeNull(); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.Model.Id.Should().StartWith("pay_tok"); response.Model.ChargeMode.Should().Be(2); response.Model.RedirectUrl.Should().StartWith("http"); response.Model.ResponseCode.Should().NotBeNullOrEmpty(); response.Model.TrackId.ShouldBeEquivalentTo(cardCreateModel.TrackId); }
public void CreateChargeWithCard() { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var response = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); //Check if charge details match Assert.NotNull(response); Assert.IsTrue(response.HttpStatusCode == System.Net.HttpStatusCode.OK); Assert.IsTrue(response.Model.Id.StartsWith("charge_")); Assert.IsTrue(response.Model.AutoCapTime == cardCreateModel.AutoCapTime); Assert.IsTrue(response.Model.AutoCapture.Equals(cardCreateModel.AutoCapture, System.StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(response.Model.Email.Equals(cardCreateModel.Email, System.StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(response.Model.Currency.Equals(cardCreateModel.Currency, System.StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(response.Model.Description.Equals(cardCreateModel.Description, System.StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(response.Model.Value == cardCreateModel.Value); Assert.IsNotNullOrEmpty(response.Model.Status); Assert.IsNotNullOrEmpty(response.Model.AuthCode); Assert.IsNotNullOrEmpty(response.Model.ResponseCode); //Check if card details match Assert.IsTrue(response.Model.Card.Name == cardCreateModel.Card.Name); Assert.IsTrue(response.Model.Card.ExpiryMonth == cardCreateModel.Card.ExpiryMonth); Assert.IsTrue(response.Model.Card.ExpiryYear == cardCreateModel.Card.ExpiryYear); Assert.IsTrue(cardCreateModel.Card.Number.EndsWith(response.Model.Card.Last4)); var isCardBillingAddressSame = ReflectionHelper.CompareProperties(response.Model.Card.BillingDetails, cardCreateModel.Card.BillingDetails); Assert.IsTrue(isCardBillingAddressSame); //Check if shipping details match for (int i = 0; i < cardCreateModel.Products.Count; i++) { var isProductSame = ReflectionHelper.CompareProperties(response.Model.Products[i], cardCreateModel.Products[i], "ProductId","customerId" ); Assert.IsTrue(isProductSame); } //Check if metadatadetails match foreach (string key in cardCreateModel.Metadata.Keys) { Assert.IsTrue(response.Model.Metadata[key].Equals(cardCreateModel.Metadata[key], System.StringComparison.OrdinalIgnoreCase)); } }
public void GetChargeHistory() { #region setup charge history var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); var chargeResponse = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); var chargeVoidModel = TestHelper.GetChargeVoidModel(); var voidResponse = CheckoutClient.ChargeService.VoidCharge(chargeResponse.Model.Id, chargeVoidModel); #endregion var response = CheckoutClient.ChargeService.GetChargeHistory(voidResponse.Model.Id); Assert.NotNull(response); Assert.IsTrue(response.HttpStatusCode == System.Net.HttpStatusCode.OK); Assert.IsTrue(response.Model.Charges.Count ==2); Assert.IsTrue(response.Model.Charges[0].Id == voidResponse.Model.Id); Assert.IsTrue(response.Model.Charges[1].Id == chargeResponse.Model.Id); }
/// <summary> /// Creates a new charge with default card and new track id and asserts that is not declined /// </summary> /// <param name="cardNumber"></param> /// <returns></returns> protected Charge CreateChargeWithNewTrackId(out string cardNumber) { var cardCreateModel = TestHelper.GetCardChargeCreateModel(TestHelper.RandomData.Email); cardCreateModel.TrackId = "TRF" + Guid.NewGuid(); var chargeResponse = CheckoutClient.ChargeService.ChargeWithCard(cardCreateModel); chargeResponse.Should().NotBeNull(); chargeResponse.HttpStatusCode.Should().Be(HttpStatusCode.OK); if (CheckoutClient.CheckoutConfiguration.DebugMode && chargeResponse.Model.ResponseCode != "10000") { Console.WriteLine(string.Format("\n** Charge status is not 'Approved' **\n** Charge status is '{0}' **", chargeResponse.Model.Status.ToUpper())); Console.WriteLine(string.Format("\n** Advanced Info ** {0}", chargeResponse.Model.ResponseAdvancedInfo)); } ; chargeResponse.Model.Status.Should().NotBe("Declined", "CreateChargeWithNewTrackId(out string cardNumber) must create an authorized charge, you may re-run this test"); cardNumber = cardCreateModel.Card.Number; return(chargeResponse.Model); }
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 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"); }