public async Task No_Records_Are_Successfully_Created() { DNSRecordCollection dnsRecords = new DNSRecordCollection(new[] { new DNSRecord { Data = "100.100.100.100", TTL = 1800, Type = DNSRecordType.A }, new DNSRecord { Data = "100.100.100.101", TTL = 1800, Type = DNSRecordType.A }, }); IDigitalOceanClient client = A.Fake <IDigitalOceanClient>(); A.CallTo(() => client.UpdateDNSRecordAsync(A <string> .Ignored, A <DigitalOceanUpdateDomainRecordRequest> .Ignored, A <string> .Ignored, A <CancellationToken> .Ignored)).Returns(Result.Fail("Error")); IDigitalOceanDNSRecordUpdater creater = new DigitalOceanDNSRecordUpdater(client, _mappingHelper.Mapper); Result result = await creater.UpdateAsync(string.Empty, dnsRecords, string.Empty, CancellationToken.None); A.CallTo(() => client.UpdateDNSRecordAsync(A <string> .Ignored, A <DigitalOceanUpdateDomainRecordRequest> .Ignored, A <string> .Ignored, A <CancellationToken> .Ignored)).MustHaveHappenedTwiceExactly(); Assert.True(result.IsFailed); Assert.True(result.Errors.Count == 2); }
public async Task <Result> UpdateAsync(string domainName, DNSRecordCollection dnsRecords, string token, CancellationToken cancellation) { Result result = Result.Ok(); IEnumerable <DigitalOceanUpdateDomainRecordRequest> requests = _mapper.Map <IEnumerable <DigitalOceanUpdateDomainRecordRequest> >(dnsRecords); foreach (DigitalOceanUpdateDomainRecordRequest request in requests) { Result updateResult = await _digitalOceanClient.UpdateDNSRecordAsync(domainName, request, token, cancellation); result = result.Merge(updateResult); } return(result); }