public async Task TestGetDnsRecordsAsync() { var displayOptions = new DisplayOptions { Page = 1, PerPage = 20, Order = OrderType.Asc }; var dnsRecordFilter = new DnsRecordFilter { Content = "127.0.0.1", Match = false, Name = "tothnet.hu", Type = DnsRecordType.A }; var zone = ZoneTestData.Zones.First(); _wireMockServer .Given(Request.Create() .WithPath($"/{ZoneEndpoints.Base}/{zone.Id}/{DnsRecordEndpoints.Base}/") .WithParam(Filtering.Page) .WithParam(Filtering.PerPage) .WithParam(Filtering.Order) .WithParam(Filtering.Name) .WithParam(Filtering.Content) .WithParam(Filtering.DnsRecordType) .UsingGet()) .RespondWith(Response.Create().WithStatusCode(200) .WithBody(WireMockResponseHelper.CreateTestResponse(DnsRecordTestData.DnsRecords))); using var client = new CloudFlareClient(WireMockConnection.ApiKeyAuthentication, _connectionInfo); var records = await client.Zones.DnsRecords.GetAsync(zone.Id, dnsRecordFilter, displayOptions); records.Result.Should().BeEquivalentTo(DnsRecordTestData.DnsRecords); }
/// <inheritdoc /> public async Task <CloudFlareResult <IReadOnlyList <DnsRecord> > > GetAsync(string zoneId, DnsRecordFilter filter = null, DisplayOptions displayOptions = null, CancellationToken cancellationToken = default) { var builder = new ParameterBuilderHelper() .InsertValue(Filtering.DnsRecordType, filter?.Type) .InsertValue(Filtering.Name, filter?.Name) .InsertValue(Filtering.Content, filter?.Content) .InsertValue(Filtering.Page, displayOptions?.Page) .InsertValue(Filtering.PerPage, displayOptions?.PerPage) .InsertValue(Filtering.Order, displayOptions?.Order) .InsertValue(Filtering.Match, filter?.Match); var requestUri = $"{ZoneEndpoints.Base}/{zoneId}/{DnsRecordEndpoints.Base}"; if (builder.ParameterCollection.HasKeys()) { requestUri = $"{requestUri}/?{builder.ParameterCollection}"; } return(await Connection.GetAsync <IReadOnlyList <DnsRecord> >(requestUri, cancellationToken).ConfigureAwait(false)); }