public async Task Get_DNS_Record_Failure_Is_Failure_Result()
        {
            _httpTest.RespondWith(string.Empty, (int)HttpStatusCode.NotFound);
            GoDaddyClient client = new GoDaddyClient(_httpClient);

            GoDaddyGetDNSRecordsRequest request = new GoDaddyGetDNSRecordsRequest("ApiKey", "ApiSecret", DNSRecordType.A, "test.com");

            Result <GoDaddyGetDNSRecordsResponse> result = await client.GetDNSRecordsAsync(request, new CancellationToken());

            Assert.True(result.IsFailed);
        }
        public async Task <Result <DNSRecordCollection> > ReadAsync(string domainName, GoDaddyAuthenticationDetails authentication, CancellationToken cancellation)
        {
            GoDaddyGetDNSRecordsRequest           request = new GoDaddyGetDNSRecordsRequest(authentication.ApiKey, authentication.ApiSecret, DNSRecordType.A, domainName);
            Result <GoDaddyGetDNSRecordsResponse> result  = await _client.GetDNSRecordsAsync(request, cancellation);

            if (result.IsSuccess)
            {
                IList <DNSRecord> records = _mapper.Map <IList <DNSRecord> >(result.Value.Records);
                return(Result.Ok(new DNSRecordCollection(records)).Merge(result));
            }
            return(result.ToResult());
        }
        public async Task Get_DNS_Record_Success_Is_Success_Result_And_Contains_Records()
        {
            _httpTest.RespondWith(_domainsResult);
            GoDaddyClient client = new GoDaddyClient(_httpClient);

            GoDaddyGetDNSRecordsRequest request = new GoDaddyGetDNSRecordsRequest("ApiKey", "ApiSecret", DNSRecordType.A, "test.com");

            Result <GoDaddyGetDNSRecordsResponse> result = await client.GetDNSRecordsAsync(request, new CancellationToken());

            Assert.True(result.IsSuccess);

            List <GoDaddyGetDNSRecordResponse> records = result.Value.Records.ToList();
            GoDaddyGetDNSRecordResponse        record  = records.First();

            Assert.Equal("testData", record.Data);
            Assert.Equal("testName", record.Name);
            Assert.Equal(0, record.Port);
            Assert.Equal(0, record.Priority);
            Assert.Equal("testProtocol", record.Protocol);
            Assert.Equal("testService", record.Service);
            Assert.Equal(0, record.Ttl);
            Assert.Equal("A", record.Type);
            Assert.Equal(0, record.Weight);
        }
Пример #4
0
        public async Task <Result <GoDaddyGetDNSRecordsResponse> > GetDNSRecordsAsync(GoDaddyGetDNSRecordsRequest request, CancellationToken cancellation)
        {
            string         path        = string.Format(_getDNSRecordsFormat, request.DomainName, request.DNSRecordType.Value);
            IFlurlRequest  httpRequest = BuildRequest(request.ApiKey, request.ApiSecret, path);
            IFlurlResponse response    = await httpRequest.GetAsync(cancellation);

            HttpResponseMessage message = response.ResponseMessage;

            if (message.StatusCode == HttpStatusCode.OK)
            {
                string content = await message.Content.ReadAsStringAsync();

                IEnumerable <GoDaddyGetDNSRecordResponse> records = JsonConvert.DeserializeObject <List <GoDaddyGetDNSRecordResponse> >(content);
                string resultMessage = string.Format(_getDNSRecordsSuccessMessageTemplate, records.Count(), request.DomainName);
                return(Result.Ok(new GoDaddyGetDNSRecordsResponse(records)).WithSuccess(resultMessage));
            }
            return(Result.Fail(string.Format(_getDNSRecordsFailureMessageTemplate, request.DomainName)));
        }