Exemple #1
0
        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);
        }
Exemple #2
0
        /// <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));
        }