public void CaptureCharge_Success()
        {
            _createChargeRequest.CardDetails = _workingCard;

            Charge createChargeResponse = _service.CreateCharge(_createChargeRequest).Content;

            Assert.IsTrue(createChargeResponse.State == ChargeState.Authorized);

            CaptureChargeRequest captureRequest = new CaptureChargeRequest();

            captureRequest.ChargeId = createChargeResponse.Id;
            captureRequest.Amount   = createChargeResponse.Amount;

            CaptureChargeResponse captureResponse = _service.CaptureCharge(captureRequest).Content;

            Assert.AreEqual(createChargeResponse.Id, captureResponse.ChargeId);
            Assert.AreEqual(createChargeResponse.Amount, captureResponse.ChargeAmount);
            Assert.IsTrue(captureResponse.State == ChargeState.Captured);

            GetChargeRequest getChargeRequest = new GetChargeRequest();

            getChargeRequest.ChargeId = captureRequest.ChargeId;
            Charge charge = _service.GetCharge(getChargeRequest).Content;

            Assert.AreEqual(charge.CapturedAmount, captureResponse.CapturedAmount);
            Assert.IsTrue(charge.State == ChargeState.Captured);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Capture payment on a Charge in the Authorized state.
        /// </summary>
        /// <returns>ChargeResponse response</returns>
        public ChargeResponse CaptureCharge(string chargeId, CaptureChargeRequest captureRequest, Dictionary <string, string> headers = null)
        {
            var apiPath    = apiUrlBuilder.BuildFullApiPath(Constants.ApiServices.Default, Constants.Resources.WebStore.Charges, chargeId, Constants.Methods.Capture);
            var apiRequest = new ApiRequest(apiPath, HttpMethod.POST, captureRequest, headers);

            var result = CallAPI <ChargeResponse>(apiRequest);

            return(result);
        }
Ejemplo n.º 3
0
 public void CanCaptureCharge()
 {
     mockClient.Protected().As <IClientMapping>()
     .Setup(c => c.ProcessRequest <ChargeResponse>(It.IsAny <ApiRequest>(),
                                                   It.IsAny <Dictionary <string, string> >()))
     .Returns((ApiRequest request, Dictionary <string, string> headers) => AssertPreProcessRequestFlow <ChargeResponse>(request, headers, HttpMethod.POST,
                                                                                                                        $"{Constants.Resources.WebStore.Charges}/{checkoutSessionIdToTest}/capture"));
     var testRequest = new CaptureChargeRequest(10, Currency.USD);
     var result      = mockClient.Object.CaptureCharge(checkoutSessionIdToTest, testRequest);
 }
Ejemplo n.º 4
0
        public void ChargesCaptureTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            string id = null;
            CaptureChargeRequest body = null;
            string idempotencyKey     = null;
            var    response           = instance.ChargesCapture(id, body, idempotencyKey);

            Assert.IsInstanceOf <Charge> (response, "response is Charge");
        }
        public void CanConstructWithAllPropertiesInitializedAsExpected()
        {
            // act
            var request = new CaptureChargeRequest(12.99M, Currency.EUR);

            // assert
            Assert.IsNotNull(request);
            Assert.IsNotNull(request.CaptureAmount);
            Assert.AreEqual(12.99, request.CaptureAmount.Amount);
            Assert.IsNull(request.SoftDescriptor);
        }
        public void CanConvertToJsonMinimal()
        {
            // arrange
            var request = new CaptureChargeRequest(12.99M, Currency.EUR);

            // act
            string json  = request.ToJson();
            string json2 = request.ToJson();

            // assert
            Assert.AreEqual(json, json2);
            Assert.AreEqual("{\"captureAmount\":{\"amount\":12.99,\"currencyCode\":\"EUR\"}}", json);
        }
        public void CanConvertToJsonFull()
        {
            // arrange
            var request = new CaptureChargeRequest(12.99M, Currency.EUR);

            request.SoftDescriptor = "foo";

            // act
            string json  = request.ToJson();
            string json2 = request.ToJson();

            // assert
            Assert.AreEqual(json, json2);
            Assert.AreEqual("{\"captureAmount\":{\"amount\":12.99,\"currencyCode\":\"EUR\"},\"softDescriptor\":\"foo\"}", json);
        }
        public void CaptureCharge_ChargeAlreadyCaptured_Fails()
        {
            _createChargeRequest.CardDetails = _workingCard;
            _createChargeRequest.Capture     = true;
            Charge createChargeResponse = _service.CreateCharge(_createChargeRequest).Content;

            CaptureChargeRequest captureRequest = new CaptureChargeRequest();

            captureRequest.ChargeId = createChargeResponse.Id;
            captureRequest.Amount   = createChargeResponse.Amount;

            ApiResponse <CaptureChargeResponse> captureResponse = _service.CaptureCharge(captureRequest);

            Assert.IsTrue(captureResponse.IsError);
            Assert.IsTrue(captureResponse.Error.Type == ErrorType.Request);
            Assert.AreEqual("Only authorized charges can be captured.", captureResponse.Error.Message);
        }
        public void CaptureCharge_WithMoreThanAuthorized_Fails()
        {
            _createChargeRequest.CardDetails = _workingCard;

            Charge createChargeResponse = _service.CreateCharge(_createChargeRequest).Content;

            Assert.IsTrue(createChargeResponse.State == ChargeState.Authorized);

            CaptureChargeRequest captureRequest = new CaptureChargeRequest();

            captureRequest.ChargeId = createChargeResponse.Id;
            captureRequest.Amount   = createChargeResponse.Amount + 200;

            ApiResponse <CaptureChargeResponse> captureResponse = _service.CaptureCharge(captureRequest);

            Assert.IsTrue(captureResponse.IsError);
            Assert.IsTrue(captureResponse.Error.Type == ErrorType.Request);
            Assert.AreEqual("Request params are invalid.", captureResponse.Error.Message);
        }
        public ApiResponse <CaptureChargeResponse> CaptureCharge(CaptureChargeRequest request)
        {
            ApiResponse <CaptureChargeResponse> response = SendApiRequest <CaptureChargeRequest, CaptureChargeResponse>(request);

            return(response);
        }