Ejemplo n.º 1
0
        public async Task MapsAllLinksAfterMandateImportHasBeenSubmitted()
        {
            // given
            var subject       = new MandateImportEntriesClient(_clientConfiguration);
            var mandateImport = await _resourceFactory.CreateMandateImport();

            var mandateImportEntry = await _resourceFactory.CreateMandateImportEntryFor(mandateImport, "first-record");

            var mandateImportsClient = new MandateImportsClient(_clientConfiguration);
            await mandateImportsClient.SubmitAsync(mandateImport.Id);

            var request = new GetMandateImportEntriesRequest
            {
                MandateImport = mandateImport.Id
            };

            // when
            var result = (await subject.GetPageAsync(request)).Items.ToList();

            // then
            Assert.That(result.Any(), Is.True);
            Assert.That(result[0].Links, Is.Not.Null);
            Assert.That(result[0].Links.Customer, Is.Not.Null);
            Assert.That(result[0].Links.CustomerBankAccount, Is.Not.Null);
            Assert.That(result[0].Links.Mandate, Is.Not.Null);
            Assert.That(result[0].Links.MandateImport, Is.Not.Null.And.EqualTo(mandateImport.Id));
        }
Ejemplo n.º 2
0
        public async Task PagesThroughMandateImportEntries()
        {
            // given
            var subject       = new MandateImportEntriesClient(_clientConfiguration);
            var mandateImport = await _resourceFactory.CreateMandateImport();

            var firstRecordId = "first-record";
            await _resourceFactory.CreateMandateImportEntryFor(mandateImport, firstRecordId);

            var secondRecordId = "second-record";
            await _resourceFactory.CreateMandateImportEntryFor(mandateImport, secondRecordId);

            var initialRequest = new GetMandateImportEntriesRequest
            {
                Limit         = 1,
                MandateImport = mandateImport.Id
            };

            // when
            var result = await subject
                         .BuildPager()
                         .StartFrom(initialRequest)
                         .AndGetAllAfterAsync();

            // then
            Assert.That(result.Count, Is.GreaterThan(1));
            Assert.That(result[0].RecordIdentifier, Is.Not.Null.And.Not.EqualTo(result[1].RecordIdentifier));
            Assert.That(result[1].RecordIdentifier, Is.Not.Null.And.Not.EqualTo(result[0].RecordIdentifier));
        }
        public void GetMandateImportEntriesRequestIsNullThrows()
        {
            // given
            var subject = new MandateImportEntriesClient(_clientConfiguration);
            GetMandateImportEntriesRequest request = null;

            // when
            AsyncTestDelegate test = () => subject.GetPageAsync(request);

            // then
            var ex = Assert.ThrowsAsync <ArgumentNullException>(test);

            Assert.That(ex.ParamName, Is.EqualTo(nameof(request)));
        }
        public async Task CallsGetMandateImportEntriesEndpoint()
        {
            // given
            var subject = new MandateImportEntriesClient(_clientConfiguration);
            var request = new GetMandateImportEntriesRequest
            {
                MandateImport = "IM12345678"
            };

            // when
            await subject.GetPageAsync(request);

            // then
            _httpTest
            .ShouldHaveCalled("https://api.gocardless.com/mandate_import_entries?mandate_import=IM12345678")
            .WithVerb(HttpMethod.Get);
        }
        public void GetMandateImportEntriesRequestMandateImportIsNullOrWhiteSpaceThrows(string mandateImport)
        {
            // given
            var subject = new MandateImportEntriesClient(_clientConfiguration);
            var request = new GetMandateImportEntriesRequest
            {
                MandateImport = mandateImport
            };

            // when
            AsyncTestDelegate test = () => subject.GetPageAsync(request);

            // then
            var ex = Assert.ThrowsAsync <ArgumentException>(test);

            Assert.That(ex.ParamName, Is.EqualTo(nameof(request.MandateImport)));
        }
Ejemplo n.º 6
0
        public async Task MapsPagingProperties()
        {
            // given
            var subject       = new MandateImportEntriesClient(_clientConfiguration);
            var mandateImport = await _resourceFactory.CreateMandateImport();

            var firstRecordId = "first-record";
            await _resourceFactory.CreateMandateImportEntryFor(mandateImport, firstRecordId);

            var secondRecordId = "second-record";
            await _resourceFactory.CreateMandateImportEntryFor(mandateImport, secondRecordId);

            var firstPageRequest = new GetMandateImportEntriesRequest
            {
                Limit         = 1,
                MandateImport = mandateImport.Id
            };

            // when
            var firstPageResult = await subject.GetPageAsync(firstPageRequest);

            var secondPageRequest = new GetMandateImportEntriesRequest
            {
                After         = firstPageResult.Meta.Cursors.After,
                Limit         = 1,
                MandateImport = mandateImport.Id
            };

            var secondPageResult = await subject.GetPageAsync(secondPageRequest);

            // then
            Assert.That(firstPageResult.Items.Count(), Is.EqualTo(firstPageRequest.Limit));
            Assert.That(firstPageResult.Meta.Limit, Is.EqualTo(firstPageRequest.Limit));
            Assert.That(firstPageResult.Meta.Cursors.Before, Is.Null);
            Assert.That(firstPageResult.Meta.Cursors.After, Is.Not.Null);

            Assert.That(secondPageResult.Items.Count(), Is.EqualTo(secondPageRequest.Limit));
            Assert.That(secondPageResult.Meta.Limit, Is.EqualTo(secondPageRequest.Limit));
            Assert.That(secondPageResult.Meta.Cursors.Before, Is.Not.Null);
            Assert.That(secondPageResult.Meta.Cursors.After, Is.Null);
        }
Ejemplo n.º 7
0
        public async Task ReturnsAllMandateImportEntries()
        {
            // given
            var subject       = new MandateImportEntriesClient(_clientConfiguration);
            var mandateImport = await _resourceFactory.CreateMandateImport();

            var firstRecordId = "first-record";
            var firstEntry    = await _resourceFactory.CreateMandateImportEntryFor(mandateImport, firstRecordId);

            var secondRecordId = "second-record";
            var secondEntry    = await _resourceFactory.CreateMandateImportEntryFor(mandateImport, secondRecordId);

            var request = new GetMandateImportEntriesRequest
            {
                MandateImport = mandateImport.Id
            };

            // when
            var result = (await subject.GetPageAsync(request)).Items.ToList();

            // then
            Assert.That(result.Any(), Is.True);

            var firstReturnedEntry  = result.SingleOrDefault(x => x.RecordIdentifier == firstRecordId);
            var secondReturnedEntry = result.SingleOrDefault(x => x.RecordIdentifier == secondRecordId);

            Assert.That(firstReturnedEntry, Is.Not.Null);
            Assert.That(firstReturnedEntry.CreatedAt, Is.Not.Null.And.Not.EqualTo(default(DateTimeOffset)));
            Assert.That(firstReturnedEntry.Links, Is.Not.Null);
            Assert.That(firstReturnedEntry.Links.MandateImport, Is.Not.Null.And.EqualTo(mandateImport.Id));
            Assert.That(firstReturnedEntry.RecordIdentifier, Is.EqualTo(firstRecordId));

            Assert.That(secondReturnedEntry, Is.Not.Null);
            Assert.That(secondReturnedEntry.CreatedAt, Is.Not.Null.And.Not.EqualTo(default(DateTimeOffset)));
            Assert.That(secondReturnedEntry.Links, Is.Not.Null);
            Assert.That(secondReturnedEntry.Links.MandateImport, Is.Not.Null.And.EqualTo(mandateImport.Id));
            Assert.That(secondReturnedEntry.RecordIdentifier, Is.EqualTo(secondRecordId));
        }