Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
         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));
         }
Example #5
0
        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);
        }
Example #7
0
        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");
        }
Example #8
0
        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
        }