public async Task ShouldListMandatesForACustomer()
        {
            var responseFixture = "fixtures/client/list_mandates_for_a_customer.json";

            mockHttp.EnqueueResponse(200, responseFixture);
            var mandateListRequest = new MandateListRequest()
            {
                Customer  = "CU00003068FG73",
                CreatedAt = new MandateListRequest.CreatedAtParam
                {
                    GreaterThan = new DateTimeOffset(2017, 5, 2, 11, 12, 13, TimeSpan.FromHours(-5))
                }
            };
            var listResponse = await client.Mandates.ListAsync(mandateListRequest);

            TestHelpers.AssertResponseCanSerializeBackToFixture(listResponse, responseFixture);
            var mandates = listResponse.Mandates;

            Assert.AreEqual(2, mandates.Count);
            Assert.AreEqual("MD00001PEYCSQF", mandates[0].Id);
            Assert.AreEqual("CR000035EME9H5", mandates[0].Links.Creditor);
            Assert.AreEqual("MD00001P57AN84", mandates[1].Id);
            Assert.AreEqual("CR000035EME9H5", mandates[1].Links.Creditor);
            mockHttp.AssertRequestMade("GET",
                                       "/mandates?created_at[gt]=2017-05-02T11:12:13.0000000-05:00&customer=CU00003068FG73");
        }
        public async Task Headers()
        {
            http.EnqueueResponse(201, "fixtures/client/create_a_mandate_response.json", resp => resp.Headers.Location = new Uri("/mandates/MD000126", UriKind.Relative));
            var mandateResponse = await client.Mandates.CreateAsync(new MandateCreateRequest());

            var mandate = mandateResponse.Mandate;

            http.AssertRequestMade("POST", "/mandates", null, req =>
            {
                Assert.AreEqual("Bearer access-token", req.Item1.Headers.GetValues("Authorization").Single());
                Assert.AreEqual("2015-07-06", req.Item1.Headers.GetValues("GoCardless-Version").Single());
                Assert.AreEqual("gocardless-dotnet", req.Item1.Headers.GetValues("GoCardless-Client-Library").Single());
            });
        }
예제 #3
0
        public async Task ShouldBuildValidRequest()
        {
            var responseFixture = "fixtures/client/create_a_redirect_flow_response.json";

            mockHttp.EnqueueResponse(201, responseFixture);
            var prefilledCustomer = new RedirectFlowCreateRequest.RedirectFlowPrefilledCustomer()
            {
                Email      = "*****@*****.**",
                GivenName  = "Frank",
                FamilyName = "Osborne"
            };

            var redirectFlowRequest = new RedirectFlowCreateRequest()
            {
                Description        = "Wine boxes",
                SessionToken       = "SESS_wSs0uGYMISxzqOBq",
                SuccessRedirectUrl = "https://example.com/pay/confirm",
                PrefilledCustomer  = prefilledCustomer
            };

            var redirectFlowResponse = await client.RedirectFlows.CreateAsync(redirectFlowRequest);

            TestHelpers.AssertResponseCanSerializeBackToFixture(redirectFlowResponse, responseFixture);

            var redirectFlow = redirectFlowResponse.RedirectFlow;

            Assert.AreEqual("http://pay.gocardless.dev/flow/RE123", redirectFlow.RedirectUrl);
            mockHttp.AssertRequestMade("POST", "/redirect_flows");
        }