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)); }
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); }
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))); }
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)); }