Updated DNS unit tests to latest recommendations

This commit is contained in:
2025-08-08 17:58:44 +02:00
parent 09e3c8ce48
commit b806fcda4a
26 changed files with 965 additions and 868 deletions

View File

@@ -91,6 +91,7 @@ dotnet_naming_style.prefix_underscore.required_prefix = _
[*.cs]
csharp_preferred_modifier_order = public, private, protected, internal, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, volatile, async:suggestion
csharp_style_prefer_primary_constructors = false
# Only use "var" when it's obvious what the variable type is
csharp_style_var_for_built_in_types = false:warning
@@ -157,3 +158,6 @@ csharp_space_between_square_brackets = false
[*.{xml,csproj,targets,props,json,yml}]
indent_size = 2
indent_style = space
[*.{json,yml}]
end_of_line = lf

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions
[TestClass]
public class AddCustomNameserverTest
{
public TestContext TestContext { get; set; }
private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string Nameserver = "ns1.example.com";
@@ -50,21 +52,21 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions
var client = GetClient();
// Act
var response = await client.AddCustomNameserver(_request);
var response = await client.AddCustomNameserver(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/custom_ns", callback.RequestPath);
Assert.IsNotNull(callback.Request);
var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/custom_ns", requestPath);
Assert.IsNotNull(request);
Assert.AreEqual(_request.NameserverName, callback.Request.NameserverName);
Assert.IsNull(callback.Request.NameserverSet);
Assert.AreEqual(_request.NameserverName, request.NameserverName);
Assert.IsNull(request.NameserverSet);
_clientMock.Verify(m => m.PostAsync<CustomNameserver, InternalAddCustomNameserverRequest>($"/accounts/{AccountId}/custom_ns", It.IsAny<InternalAddCustomNameserverRequest>(), null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions
[TestClass]
public class DeleteCustomNameserverTest
{
public TestContext TestContext { get; set; }
private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string Nameserver = "ns1.example.com";
@@ -45,18 +47,18 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions
var client = GetClient();
// Act
var response = await client.DeleteCustomNameserver(AccountId, Nameserver);
var response = await client.DeleteCustomNameserver(AccountId, Nameserver, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/custom_ns/{Nameserver}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/custom_ns/{Nameserver}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.DeleteAsync<IReadOnlyCollection<string>>($"/accounts/{AccountId}/custom_ns/{Nameserver}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -66,16 +68,13 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions
[DataRow(null)]
[DataRow("")]
[DataRow(" ")]
[ExpectedException(typeof(ArgumentNullException))]
public async Task ShouldDeleteCustomNameserver(string nameserver)
{
// Arrange
var client = GetClient();
// Act
var response = await client.DeleteCustomNameserver(AccountId, nameserver);
// Assert - ArgumentNullException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentNullException>(async () => await client.DeleteCustomNameserver(AccountId, nameserver, TestContext.CancellationTokenSource.Token));
}
private ICloudflareClient GetClient()

View File

@@ -10,9 +10,9 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions
[TestClass]
public class ListCustomNameserverTest
{
private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353";
public TestContext TestContext { get; set; }
private const string Nameserver = "ns1.example.com";
private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock;
@@ -45,18 +45,18 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions
var client = GetClient();
// Act
var response = await client.ListCustomNameserver(AccountId);
var response = await client.ListCustomNameserver(AccountId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/custom_ns", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/custom_ns", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<CustomNameserver>>($"/accounts/{AccountId}/custom_ns", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions
[TestClass]
public class ShowDnsAccountSettingsTest
{
public TestContext TestContext { get; set; }
private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c354";
@@ -69,19 +71,19 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions
var client = GetClient();
// Act
var response = await client.ShowDnsAccountSettings(AccountId);
var response = await client.ShowDnsAccountSettings(AccountId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings", callback.RequestPath);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings", requestPath);
Assert.IsNull(callback.QueryFilter);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<DnsAccountSettings>($"/accounts/{AccountId}/dns_settings", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions
[TestClass]
public class UpdateDnsAccountSettingsTest
{
public TestContext TestContext { get; set; }
private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c354";
@@ -100,37 +102,37 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions
var client = GetClient();
// Act
var response = await client.UpdateDnsAccountSettings(_request);
var response = await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings", callback.RequestPath);
var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings", requestPath);
Assert.IsNotNull(callback.Request);
Assert.IsTrue(callback.Request.ZoneDefaults.FlattenAllCnames);
Assert.IsFalse(callback.Request.ZoneDefaults.FoundationDns);
Assert.IsNotNull(callback.Request.ZoneDefaults.InternalDns);
Assert.AreEqual(ZoneId, callback.Request.ZoneDefaults.InternalDns.ReferenceZoneId);
Assert.IsFalse(callback.Request.ZoneDefaults.MultiProvider);
Assert.IsNotNull(callback.Request.ZoneDefaults.Nameservers);
Assert.AreEqual(DnsAccountNameserversType.Random, callback.Request.ZoneDefaults.Nameservers.Type);
Assert.AreEqual(86400, callback.Request.ZoneDefaults.NameserverTtl);
Assert.IsFalse(callback.Request.ZoneDefaults.SecondaryOverrides);
Assert.IsNotNull(callback.Request.ZoneDefaults.SOA);
Assert.AreEqual(604800, callback.Request.ZoneDefaults.SOA.Expire);
Assert.AreEqual(1800, callback.Request.ZoneDefaults.SOA.MinimumTtl);
Assert.AreEqual("ns1.example.org", callback.Request.ZoneDefaults.SOA.PrimaryNameserver);
Assert.AreEqual(28800, callback.Request.ZoneDefaults.SOA.Refresh);
Assert.AreEqual(3600, callback.Request.ZoneDefaults.SOA.Retry);
Assert.AreEqual(43200, callback.Request.ZoneDefaults.SOA.TimeToLive);
Assert.AreEqual("admin.example.org", callback.Request.ZoneDefaults.SOA.ZoneAdministrator);
Assert.AreEqual(DnsZoneMode.Standard, callback.Request.ZoneDefaults.ZoneMode);
Assert.IsNotNull(request);
Assert.IsTrue(request.ZoneDefaults.FlattenAllCnames);
Assert.IsFalse(request.ZoneDefaults.FoundationDns);
Assert.IsNotNull(request.ZoneDefaults.InternalDns);
Assert.AreEqual(ZoneId, request.ZoneDefaults.InternalDns.ReferenceZoneId);
Assert.IsFalse(request.ZoneDefaults.MultiProvider);
Assert.IsNotNull(request.ZoneDefaults.Nameservers);
Assert.AreEqual(DnsAccountNameserversType.Random, request.ZoneDefaults.Nameservers.Type);
Assert.AreEqual(86400, request.ZoneDefaults.NameserverTtl);
Assert.IsFalse(request.ZoneDefaults.SecondaryOverrides);
Assert.IsNotNull(request.ZoneDefaults.SOA);
Assert.AreEqual(604800, request.ZoneDefaults.SOA.Expire);
Assert.AreEqual(1800, request.ZoneDefaults.SOA.MinimumTtl);
Assert.AreEqual("ns1.example.org", request.ZoneDefaults.SOA.PrimaryNameserver);
Assert.AreEqual(28800, request.ZoneDefaults.SOA.Refresh);
Assert.AreEqual(3600, request.ZoneDefaults.SOA.Retry);
Assert.AreEqual(43200, request.ZoneDefaults.SOA.TimeToLive);
Assert.AreEqual("admin.example.org", request.ZoneDefaults.SOA.ZoneAdministrator);
Assert.AreEqual(DnsZoneMode.Standard, request.ZoneDefaults.ZoneMode);
_clientMock.Verify(m => m.PatchAsync<DnsAccountSettings, InternalUpdateDnsAccountSettingsRequest>($"/accounts/{AccountId}/dns_settings", It.IsAny<InternalUpdateDnsAccountSettingsRequest>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -140,24 +142,24 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions
public async Task ShouldUpdateDnsSettingsNone()
{
// Arrange
var request = new UpdateDnsAccountSettingsRequest(AccountId);
var req = new UpdateDnsAccountSettingsRequest(AccountId);
var client = GetClient();
// Act
var response = await client.UpdateDnsAccountSettings(request);
var response = await client.UpdateDnsAccountSettings(req, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings", callback.RequestPath);
var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings", requestPath);
Assert.IsNotNull(callback.Request);
Assert.IsNull(callback.Request.ZoneDefaults);
Assert.IsNotNull(request);
Assert.IsNull(request.ZoneDefaults);
_clientMock.Verify(m => m.PatchAsync<DnsAccountSettings, InternalUpdateDnsAccountSettingsRequest>($"/accounts/{AccountId}/dns_settings", It.IsAny<InternalUpdateDnsAccountSettingsRequest>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -167,196 +169,196 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions
public async Task ShouldUpdateDnsSettingsNoneDefaults()
{
// Arrange
var request = new UpdateDnsAccountSettingsRequest(AccountId)
var req = new UpdateDnsAccountSettingsRequest(AccountId)
{
ZoneDefaults = new DnsAccountZoneDefaults()
};
var client = GetClient();
// Act
var response = await client.UpdateDnsAccountSettings(request);
var response = await client.UpdateDnsAccountSettings(req, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings", callback.RequestPath);
var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings", requestPath);
Assert.IsNotNull(callback.Request);
Assert.IsNotNull(callback.Request.ZoneDefaults);
Assert.IsNull(callback.Request.ZoneDefaults.FlattenAllCnames);
Assert.IsNull(callback.Request.ZoneDefaults.FoundationDns);
Assert.IsNull(callback.Request.ZoneDefaults.MultiProvider);
Assert.IsNull(callback.Request.ZoneDefaults.Nameservers);
Assert.IsNull(callback.Request.ZoneDefaults.NameserverTtl);
Assert.IsNull(callback.Request.ZoneDefaults.SecondaryOverrides);
Assert.IsNull(callback.Request.ZoneDefaults.SOA);
Assert.IsNull(callback.Request.ZoneDefaults.ZoneMode);
Assert.IsNotNull(request);
Assert.IsNotNull(request.ZoneDefaults);
Assert.IsNull(request.ZoneDefaults.FlattenAllCnames);
Assert.IsNull(request.ZoneDefaults.FoundationDns);
Assert.IsNull(request.ZoneDefaults.MultiProvider);
Assert.IsNull(request.ZoneDefaults.Nameservers);
Assert.IsNull(request.ZoneDefaults.NameserverTtl);
Assert.IsNull(request.ZoneDefaults.SecondaryOverrides);
Assert.IsNull(request.ZoneDefaults.SOA);
Assert.IsNull(request.ZoneDefaults.ZoneMode);
_clientMock.Verify(m => m.PatchAsync<DnsAccountSettings, InternalUpdateDnsAccountSettingsRequest>($"/accounts/{AccountId}/dns_settings", It.IsAny<InternalUpdateDnsAccountSettingsRequest>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
}
[TestMethod]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidMode()
{
// Arrange
_request.ZoneDefaults.ZoneMode = 0;
var client = GetClient();
// Act
await client.UpdateDnsAccountSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidNameserverType()
{
// Arrange
_request.ZoneDefaults.Nameservers.Type = 0;
var client = GetClient();
// Act
await client.UpdateDnsAccountSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(29)]
[DataRow(86401)]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidNameserverTtl(int ttl)
{
// Arrange
_request.ZoneDefaults.NameserverTtl = ttl;
var client = GetClient();
// Act
await client.UpdateDnsAccountSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(86399)]
[DataRow(2419201)]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaExpire(int ttl)
{
// Arrange
_request.ZoneDefaults.SOA.Expire = ttl;
var client = GetClient();
// Act
await client.UpdateDnsAccountSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(59)]
[DataRow(86401)]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaMinimumTtl(int ttl)
{
// Arrange
_request.ZoneDefaults.SOA.MinimumTtl = ttl;
var client = GetClient();
// Act
await client.UpdateDnsAccountSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(null)]
[DataRow("")]
[DataRow(" ")]
[ExpectedException(typeof(ArgumentNullException))]
public async Task ShouldThrowArgumentNullExceptionForMissingSoaNameserver(string nameserver)
{
// Arrange
_request.ZoneDefaults.SOA.PrimaryNameserver = nameserver;
var client = GetClient();
// Act
await client.UpdateDnsAccountSettings(_request);
// Assert - ArgumentNullException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentNullException>(async () =>
{
await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(599)]
[DataRow(86401)]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaRefresh(int ttl)
{
// Arrange
_request.ZoneDefaults.SOA.Refresh = ttl;
var client = GetClient();
// Act
await client.UpdateDnsAccountSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(599)]
[DataRow(86401)]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaRetry(int ttl)
{
// Arrange
_request.ZoneDefaults.SOA.Retry = ttl;
var client = GetClient();
// Act
await client.UpdateDnsAccountSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(299)]
[DataRow(86401)]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaTtl(int ttl)
{
// Arrange
_request.ZoneDefaults.SOA.TimeToLive = ttl;
var client = GetClient();
// Act
await client.UpdateDnsAccountSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(null)]
[DataRow("")]
[DataRow(" ")]
[ExpectedException(typeof(ArgumentNullException))]
public async Task ShouldThrowArgumentNullExceptionForMissingSoaAdministrator(string admin)
{
// Arrange
_request.ZoneDefaults.SOA.ZoneAdministrator = admin;
var client = GetClient();
// Act
await client.UpdateDnsAccountSettings(_request);
// Assert - ArgumentNullException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentNullException>(async () =>
{
await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
private ICloudflareClient GetClient()

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
[TestClass]
public class CreateInternalDnsViewTest
{
public TestContext TestContext { get; set; }
private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string ViewId = "023e105f4ecef8ad9ca31a8372d0c354";
private const string ViewName = "InternalView";
@@ -50,21 +52,21 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
var client = GetClient();
// Act
var response = await client.CreateInternalDnsView(_request);
var response = await client.CreateInternalDnsView(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views", callback.RequestPath);
Assert.IsNotNull(callback.Request);
var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views", requestPath);
Assert.IsNotNull(request);
Assert.AreEqual(ViewName, callback.Request.Name);
CollectionAssert.AreEqual(_request.ZoneIds.ToList(), callback.Request.Zones.ToList());
Assert.AreEqual(ViewName, request.Name);
CollectionAssert.AreEqual(_request.ZoneIds.ToList(), request.Zones.ToList());
_clientMock.Verify(m => m.PostAsync<InternalDnsView, InternalModifyInternalDnsViewRequest>($"/accounts/{AccountId}/dns_settings/views", It.IsAny<InternalModifyInternalDnsViewRequest>(), null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -74,31 +76,31 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
[DataRow(null)]
[DataRow("")]
[DataRow(" ")]
[ExpectedException(typeof(ArgumentNullException))]
public async Task ShouldThrowArgumentNullExceptionWhenNameIsNull(string name)
{
// Arrange
_request.Name = name;
var client = GetClient();
// Act
var response = await client.CreateInternalDnsView(_request);
// Assert - ArgumentNullException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentNullException>(async () =>
{
var response = await client.CreateInternalDnsView(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionWhenNameTooLong()
{
// Arrange
_request.Name = new string('a', 256);
var client = GetClient();
// Act
var response = await client.CreateInternalDnsView(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
var response = await client.CreateInternalDnsView(_request, TestContext.CancellationTokenSource.Token);
});
}
private ICloudflareClient GetClient()

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
[TestClass]
public class DeleteInternalDnsViewTest
{
public TestContext TestContext { get; set; }
private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string ViewId = "023e105f4ecef8ad9ca31a8372d0c354";
@@ -45,18 +47,18 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
var client = GetClient();
// Act
var response = await client.DeleteInternalDnsView(AccountId, ViewId);
var response = await client.DeleteInternalDnsView(AccountId, ViewId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views/{ViewId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views/{ViewId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.DeleteAsync<Identifier>($"/accounts/{AccountId}/dns_settings/views/{ViewId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
[TestClass]
public class InternalDnsViewDetailsTest
{
public TestContext TestContext { get; set; }
private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string ViewId = "023e105f4ecef8ad9ca31a8372d0c354";
private const string ViewName = "InternalView";
@@ -43,18 +45,18 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
var client = GetClient();
// Act
var response = await client.InternalDnsViewDetails(AccountId, ViewId);
var response = await client.InternalDnsViewDetails(AccountId, ViewId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views/{ViewId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views/{ViewId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<InternalDnsView>(
$"/accounts/{AccountId}/dns_settings/views/{ViewId}",

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
[TestClass]
public class ListInternalDnsViewsTest
{
public TestContext TestContext { get; set; }
private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock;
@@ -45,19 +47,19 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
var client = GetClient();
// Act
var response = await client.ListInternalDnsViews(AccountId);
var response = await client.ListInternalDnsViews(AccountId, cancellationToken: TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.IsNotNull(response.Result);
Assert.AreEqual(2, response.Result.Count);
Assert.HasCount(2, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<InternalDnsView>>(
$"/accounts/{AccountId}/dns_settings/views",
@@ -77,18 +79,18 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
};
// Act
var response = await client.ListInternalDnsViews(AccountId, filter);
var response = await client.ListInternalDnsViews(AccountId, filter, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.IsNotNull(response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views", callback.RequestPath);
Assert.AreEqual(filter, callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views", requestPath);
Assert.AreEqual(filter, queryFilter);
_clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<InternalDnsView>>(
$"/accounts/{AccountId}/dns_settings/views",
@@ -110,7 +112,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -137,7 +139,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(11, dict.Count);
Assert.HasCount(11, dict);
Assert.AreEqual("desc", dict["direction"]);
Assert.AreEqual("all", dict["match"]);
@@ -166,7 +168,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -183,7 +185,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -200,7 +202,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -217,7 +219,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -233,7 +235,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -249,7 +251,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -265,7 +267,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -281,7 +283,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -298,7 +300,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -315,7 +317,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -332,7 +334,7 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
#endregion QueryFilter

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
[TestClass]
public class UpdateInternalDnsViewTest
{
public TestContext TestContext { get; set; }
private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string ViewId = "023e105f4ecef8ad9ca31a8372d0c354";
private const string ViewName = "InternalView";
@@ -50,21 +52,21 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
var client = GetClient();
// Act
var response = await client.UpdateInternalDnsView(_request);
var response = await client.UpdateInternalDnsView(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views/{ViewId}", callback.RequestPath);
Assert.IsNotNull(callback.Request);
var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/accounts/{AccountId}/dns_settings/views/{ViewId}", requestPath);
Assert.IsNotNull(request);
Assert.AreEqual(ViewName, callback.Request.Name);
CollectionAssert.AreEqual(_request.ZoneIds.ToList(), callback.Request.Zones.ToList());
Assert.AreEqual(ViewName, request.Name);
CollectionAssert.AreEqual(_request.ZoneIds.ToList(), request.Zones.ToList());
_clientMock.Verify(m => m.PatchAsync<InternalDnsView, InternalModifyInternalDnsViewRequest>(
$"/accounts/{AccountId}/dns_settings/views/{ViewId}",
@@ -77,31 +79,31 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions.Views
[DataRow(null)]
[DataRow("")]
[DataRow(" ")]
[ExpectedException(typeof(ArgumentNullException))]
public async Task ShouldThrowArgumentNullExceptionWhenNameIsNull(string name)
{
// Arrange
_request.Name = name;
var client = GetClient();
// Act
var response = await client.UpdateInternalDnsView(_request);
// Assert - ArgumentNullException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentNullException>(async () =>
{
var response = await client.UpdateInternalDnsView(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionWhenNameTooLong()
{
// Arrange
_request.Name = new string('a', 256);
var client = GetClient();
// Act
var response = await client.UpdateInternalDnsView(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
var response = await client.UpdateInternalDnsView(_request, TestContext.CancellationTokenSource.Token);
});
}
private ICloudflareClient GetClient()

View File

@@ -10,13 +10,15 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions
[TestClass]
public class DeleteDnssecRecordsTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock;
private CloudflareResponse<string> _response;
private List<(string RequestPath, IQueryParameterFilter? QueryFilter)> _callbacks;
private List<(string RequestPath, IQueryParameterFilter QueryFilter)> _callbacks;
[TestInitialize]
public void Initialize()
@@ -45,18 +47,18 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions
var client = GetClient();
// Act
var response = await client.DeleteDnssecRecords(ZoneId);
var response = await client.DeleteDnssecRecords(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dnssec", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dnssec", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.DeleteAsync<string>(
$"/zones/{ZoneId}/dnssec",
@@ -71,9 +73,9 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions
_clientMock
.Setup(m => m.DeleteAsync<string>(
It.IsAny<string>(),
It.IsAny<IQueryParameterFilter?>(),
It.IsAny<IQueryParameterFilter>(),
It.IsAny<CancellationToken>()))
.Callback<string, IQueryParameterFilter?, CancellationToken>((requestPath, queryFilter, _) => _callbacks.Add((requestPath, queryFilter)))
.Callback<string, IQueryParameterFilter, CancellationToken>((requestPath, queryFilter, _) => _callbacks.Add((requestPath, queryFilter)))
.ReturnsAsync(() => _response);
return _clientMock.Object;

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions
[TestClass]
public class DnssecDetailsTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock;
@@ -61,18 +63,18 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions
var client = GetClient();
// Act
var response = await client.DnssecDetails(ZoneId);
var response = await client.DnssecDetails(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dnssec", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dnssec", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<DNSSEC>(
$"/zones/{ZoneId}/dnssec",

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions
[TestClass]
public class EditDnssecStatusTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock;
@@ -72,23 +74,23 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions
var client = GetClient();
// Act
var response = await client.EditDnssecStatus(_request);
var response = await client.EditDnssecStatus(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dnssec", callback.RequestPath);
var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dnssec", requestPath);
Assert.IsNotNull(callback.Request);
Assert.AreEqual(_request.DnssecMultiSigner, callback.Request.DnssecMultiSigner);
Assert.AreEqual(_request.DnssecPresigned, callback.Request.DnssecPresigned);
Assert.AreEqual(_request.DnssecUseNsec3, callback.Request.DnssecUseNsec3);
Assert.AreEqual(_request.Status, callback.Request.Status);
Assert.IsNotNull(request);
Assert.AreEqual(_request.DnssecMultiSigner, request.DnssecMultiSigner);
Assert.AreEqual(_request.DnssecPresigned, request.DnssecPresigned);
Assert.AreEqual(_request.DnssecUseNsec3, request.DnssecUseNsec3);
Assert.AreEqual(_request.Status, request.Status);
_clientMock.Verify(m => m.PatchAsync<DNSSEC, InternalEditDnssecStatusRequest>(
$"/zones/{ZoneId}/dnssec",

View File

@@ -12,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
[TestClass]
public class BatchDnsRecordsTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355";
@@ -63,7 +65,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.BatchDnsRecords(_request);
var response = await client.BatchDnsRecords(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -79,32 +81,32 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
Assert.AreEqual(RecordId, response.Result.Overwrites.Single().Id);
Assert.AreEqual(IpContent, response.Result.Overwrites.Single().Content);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/batch", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
Assert.IsNotNull(callback.Request);
var (requestPath, request, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/batch", requestPath);
Assert.IsNull(queryFilter);
Assert.IsNotNull(request);
Assert.AreEqual(1, callback.Request.Deletes.Count);
Assert.AreEqual(RecordId, callback.Request.Deletes.First().Id);
Assert.HasCount(1, request.Deletes);
Assert.AreEqual(RecordId, request.Deletes.First().Id);
Assert.AreEqual(1, callback.Request.Patches.Count);
var patch = callback.Request.Patches.First();
Assert.HasCount(1, request.Patches);
var patch = request.Patches.First();
Assert.AreEqual(RecordId, patch.Id);
Assert.AreEqual(DomainName, patch.Name);
Assert.AreEqual(DnsRecordType.A, patch.Type);
Assert.AreEqual(IpContent, patch.Content);
Assert.AreEqual(1, callback.Request.Puts.Count);
var put = callback.Request.Puts.First();
Assert.HasCount(1, request.Puts);
var put = request.Puts.First();
Assert.AreEqual(RecordId, put.Id);
Assert.AreEqual(DomainName, put.Name);
Assert.AreEqual(DnsRecordType.A, put.Type);
Assert.AreEqual(IpContent, put.Content);
Assert.AreEqual(1, callback.Request.Posts.Count);
var post = callback.Request.Posts.First();
Assert.HasCount(1, request.Posts);
var post = request.Posts.First();
Assert.AreEqual(DomainName, post.Name);
Assert.AreEqual(DnsRecordType.A, post.Type);
Assert.AreEqual(IpContent, post.Content);

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
[TestClass]
public class DeleteDnsRecordTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355";
@@ -45,18 +47,18 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DeleteDnsRecord(ZoneId, RecordId);
var response = await client.DeleteDnsRecord(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.DeleteAsync<Identifier>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
[TestClass]
public class DnsRecordDetailsTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355";
@@ -59,7 +61,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -67,11 +69,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -101,7 +103,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -109,11 +111,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -142,7 +144,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -150,11 +152,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -183,7 +185,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -191,11 +193,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -224,7 +226,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -232,11 +234,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -265,7 +267,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -273,11 +275,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -306,7 +308,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -314,11 +316,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -347,7 +349,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -355,11 +357,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -388,7 +390,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -396,11 +398,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -429,7 +431,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -437,11 +439,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -470,7 +472,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -478,11 +480,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -511,7 +513,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -519,11 +521,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -552,7 +554,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -560,11 +562,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -593,7 +595,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -601,11 +603,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -634,7 +636,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -642,11 +644,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -675,7 +677,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -683,11 +685,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -716,7 +718,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -724,11 +726,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -757,7 +759,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -765,11 +767,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -798,7 +800,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -806,11 +808,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -839,7 +841,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -847,11 +849,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -880,7 +882,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -888,11 +890,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
AssertRecord(result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -906,18 +908,18 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.IsNull(response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -933,18 +935,18 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.DnsRecordDetails(ZoneId, RecordId);
var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.IsNull(response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<JObject>($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
[TestClass]
public class ExportDnsRecordsTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock;
@@ -35,18 +37,18 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.ExportDnsRecords(ZoneId);
var response = await client.ExportDnsRecords(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/export", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/export", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<string>($"/zones/{ZoneId}/dns_records/export", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();

View File

@@ -12,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
[TestClass]
public class ImportDnsRecordsTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string BindConfigContent = "www.example.com. 300 IN A 127.0.0.1";
@@ -55,25 +57,25 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.ImportDnsRecords(_request);
var response = await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", callback.RequestPath);
Assert.IsNotNull(callback.Request);
var (requestPath, request, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", requestPath);
Assert.IsNotNull(request);
Assert.AreEqual(1, callback.Request.Count());
Assert.AreEqual(1, request.Count());
var part = callback.Request.First();
var part = request.First();
Assert.AreEqual("file", part.Headers.ContentDisposition.Name);
Assert.IsInstanceOfType<ByteArrayContent>(part);
Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync());
Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token));
_clientMock.Verify(m => m.PostAsync<RecordImportResponse, MultipartFormDataContent>($"/zones/{ZoneId}/dns_records/import", It.IsAny<MultipartFormDataContent>(), It.IsAny<IQueryParameterFilter>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -91,25 +93,25 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.ImportDnsRecords(_request);
var response = await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", callback.RequestPath);
Assert.IsNotNull(callback.Request);
var (requestPath, request, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", requestPath);
Assert.IsNotNull(request);
Assert.AreEqual(1, callback.Request.Count());
Assert.AreEqual(1, request.Count());
var part = callback.Request.First();
var part = request.First();
Assert.AreEqual("file", part.Headers.ContentDisposition.Name);
Assert.IsInstanceOfType<ByteArrayContent>(part);
Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync());
Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token));
_clientMock.Verify(m => m.PostAsync<RecordImportResponse, MultipartFormDataContent>($"/zones/{ZoneId}/dns_records/import", It.IsAny<MultipartFormDataContent>(), It.IsAny<IQueryParameterFilter>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -130,30 +132,30 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.ImportDnsRecords(_request);
var response = await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", callback.RequestPath);
Assert.IsNotNull(callback.Request);
var (requestPath, request, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", requestPath);
Assert.IsNotNull(request);
Assert.AreEqual(2, callback.Request.Count());
Assert.AreEqual(2, request.Count());
var part = callback.Request.First();
var part = request.First();
Assert.AreEqual("proxied", part.Headers.ContentDisposition.Name);
Assert.IsInstanceOfType<StringContent>(part);
Assert.AreEqual(proxied.ToString().ToLower(), await part.ReadAsStringAsync());
Assert.AreEqual(proxied.ToString().ToLower(), await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token));
part = callback.Request.Last();
part = request.Last();
Assert.AreEqual("file", part.Headers.ContentDisposition.Name);
Assert.IsInstanceOfType<ByteArrayContent>(part);
Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync());
Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token));
_clientMock.Verify(m => m.PostAsync<RecordImportResponse, MultipartFormDataContent>($"/zones/{ZoneId}/dns_records/import", It.IsAny<MultipartFormDataContent>(), It.IsAny<IQueryParameterFilter>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -174,30 +176,30 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.ImportDnsRecords(_request);
var response = await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", callback.RequestPath);
Assert.IsNotNull(callback.Request);
var (requestPath, request, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", requestPath);
Assert.IsNotNull(request);
Assert.AreEqual(2, callback.Request.Count());
Assert.AreEqual(2, request.Count());
var part = callback.Request.First();
var part = request.First();
Assert.AreEqual("proxied", part.Headers.ContentDisposition.Name);
Assert.IsInstanceOfType<StringContent>(part);
Assert.AreEqual(proxied.ToString().ToLower(), await part.ReadAsStringAsync());
Assert.AreEqual(proxied.ToString().ToLower(), await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token));
part = callback.Request.Last();
part = request.Last();
Assert.AreEqual("file", part.Headers.ContentDisposition.Name);
Assert.IsInstanceOfType<ByteArrayContent>(part);
Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync());
Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token));
_clientMock.Verify(m => m.PostAsync<RecordImportResponse, MultipartFormDataContent>($"/zones/{ZoneId}/dns_records/import", It.IsAny<MultipartFormDataContent>(), It.IsAny<IQueryParameterFilter>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -212,17 +214,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
[DataRow(null)]
[DataRow("")]
[DataRow(" ")]
[ExpectedException(typeof(ArgumentNullException))]
public async Task ShouldThrowArgumentNullExceptionForFile(string file)
{
// Arrange
_request.File = file;
var client = GetClient();
// Act
await client.ImportDnsRecords(_request);
// Assert - ArgumentNullException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentNullException>(async () => await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token));
}
private ICloudflareClient GetClient()

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
[TestClass]
public class ListDnsRecordsTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock;
@@ -83,14 +85,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.ListDnsRecords(ZoneId);
var response = await client.ListDnsRecords(ZoneId, cancellationToken: TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.IsNotNull(response.Result);
Assert.AreEqual(2, response.Result.Count);
Assert.HasCount(2, response.Result);
Assert.IsInstanceOfType<ARecord>(response.Result.First());
Assert.AreEqual("023e105f4ecef8ad9ca31a8372d0c353", response.Result.First().Id);
@@ -98,11 +100,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
Assert.IsInstanceOfType<AAAARecord>(response.Result.Last());
Assert.AreEqual("023e105f4ecef8ad9ca31a8372d0c355", response.Result.Last().Id);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records", callback.RequestPath);
Assert.IsNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath);
Assert.IsNull(queryFilter);
_clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<JObject>>($"/zones/{ZoneId}/dns_records", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -120,14 +122,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.ListDnsRecords(ZoneId, filter);
var response = await client.ListDnsRecords(ZoneId, filter, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.IsNotNull(response.Result);
Assert.AreEqual(2, response.Result.Count);
Assert.HasCount(2, response.Result);
Assert.IsInstanceOfType<ARecord>(response.Result.First());
Assert.AreEqual("023e105f4ecef8ad9ca31a8372d0c353", response.Result.First().Id);
@@ -135,14 +137,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
Assert.IsInstanceOfType<AAAARecord>(response.Result.Last());
Assert.AreEqual("023e105f4ecef8ad9ca31a8372d0c355", response.Result.Last().Id);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records", callback.RequestPath);
Assert.IsNotNull(callback.QueryFilter);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath);
Assert.IsNotNull(queryFilter);
Assert.IsInstanceOfType<ListDnsRecordsFilter>(callback.QueryFilter);
Assert.AreEqual("example.com", ((ListDnsRecordsFilter)callback.QueryFilter).Name);
Assert.IsInstanceOfType<ListDnsRecordsFilter>(queryFilter);
Assert.AreEqual("example.com", ((ListDnsRecordsFilter)queryFilter).Name);
_clientMock.Verify(m => m.GetAsync<IReadOnlyCollection<JObject>>($"/zones/{ZoneId}/dns_records", filter, It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -159,7 +161,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -214,7 +216,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(33, dict.Count);
Assert.HasCount(33, dict);
Assert.IsTrue(dict.ContainsKey("comment"));
Assert.IsTrue(dict.ContainsKey("comment.absent"));
@@ -311,7 +313,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -327,7 +329,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -344,7 +346,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -361,7 +363,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -378,7 +380,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -394,7 +396,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -411,7 +413,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -428,7 +430,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -445,7 +447,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -462,7 +464,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -479,7 +481,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -496,7 +498,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -512,7 +514,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -528,7 +530,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -545,7 +547,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -562,7 +564,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -579,7 +581,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -596,7 +598,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -613,7 +615,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -629,7 +631,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -645,7 +647,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -662,7 +664,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -679,7 +681,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -696,7 +698,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -713,7 +715,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -730,7 +732,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -747,7 +749,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -764,7 +766,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -781,7 +783,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -797,7 +799,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
[TestMethod]
@@ -813,7 +815,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
// Assert
Assert.IsNotNull(dict);
Assert.AreEqual(0, dict.Count);
Assert.IsEmpty(dict);
}
private ICloudflareClient GetClient()

View File

@@ -12,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
[TestClass]
public class OverwriteDnsRecordTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355";
@@ -65,7 +67,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.OverwriteDnsRecord(_request);
var response = await client.OverwriteDnsRecord(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -88,15 +90,15 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
Assert.IsNotNull(response.Result.CommentModifiedOn);
Assert.IsNotNull(response.Result.TagsModifiedOn);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNotNull(callback.Request);
var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNotNull(request);
Assert.AreEqual("example.com", callback.Request.Name);
Assert.AreEqual(DnsRecordType.A, callback.Request.Type);
Assert.AreEqual("127.0.1.22", callback.Request.Content);
Assert.AreEqual("example.com", request.Name);
Assert.AreEqual(DnsRecordType.A, request.Type);
Assert.AreEqual("127.0.1.22", request.Content);
_clientMock.Verify(m => m.PutAsync<JObject, InternalDnsRecordRequest>($"/zones/{ZoneId}/dns_records/{RecordId}", It.IsAny<InternalDnsRecordRequest>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
[TestClass]
public class ScanDnsRecordsTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock;
@@ -45,14 +47,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.ScanDnsRecords(ZoneId);
var response = await client.ScanDnsRecords(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
Assert.AreEqual($"/zones/{ZoneId}/dns_records/scan", _callbacks.First());
_clientMock.Verify(m => m.PostAsync<RecordScanResponse, object>($"/zones/{ZoneId}/dns_records/scan", null, null, It.IsAny<CancellationToken>()), Times.Once);

View File

@@ -1,7 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using AMWD.Net.Api.Cloudflare;
@@ -15,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
[TestClass]
public class UpdateDnsRecordTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355";
@@ -70,7 +69,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
var client = GetClient();
// Act
var response = await client.UpdateDnsRecord(_request);
var response = await client.UpdateDnsRecord(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
@@ -93,15 +92,15 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions
Assert.IsNotNull(response.Result.CommentModifiedOn);
Assert.IsNotNull(response.Result.TagsModifiedOn);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath);
Assert.IsNotNull(callback.Request);
var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath);
Assert.IsNotNull(request);
Assert.AreEqual("example.com", callback.Request.Name);
Assert.AreEqual(DnsRecordType.A, callback.Request.Type);
Assert.AreEqual("127.0.1.22", callback.Request.Content);
Assert.AreEqual("example.com", request.Name);
Assert.AreEqual(DnsRecordType.A, request.Type);
Assert.AreEqual("127.0.1.22", request.Content);
_clientMock.Verify(m => m.PatchAsync<JObject, InternalDnsRecordRequest>($"/zones/{ZoneId}/dns_records/{RecordId}", It.IsAny<InternalDnsRecordRequest>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();

View File

@@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions
[TestClass]
public class ShowDnsZoneSettingsTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock;
@@ -65,19 +67,19 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions
var client = GetClient();
// Act
var response = await client.ShowDnsZoneSettings(ZoneId);
var response = await client.ShowDnsZoneSettings(ZoneId, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_settings", callback.RequestPath);
var (requestPath, queryFilter) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_settings", requestPath);
Assert.IsNull(callback.QueryFilter);
Assert.IsNull(queryFilter);
_clientMock?.Verify(m => m.GetAsync<DnsZoneSettings>($"/zones/{ZoneId}/dns_settings", null, It.IsAny<CancellationToken>()), Times.Once);
_clientMock?.VerifyNoOtherCalls();

View File

@@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions
[TestClass]
public class UpdateDnsZoneSettingsTest
{
public TestContext TestContext { get; set; }
private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353";
private Mock<ICloudflareClient> _clientMock;
@@ -93,37 +95,37 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions
var client = GetClient();
// Act
var response = await client.UpdateDnsZoneSettings(_request);
var response = await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_settings", callback.RequestPath);
var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_settings", requestPath);
Assert.IsNotNull(callback.Request);
Assert.IsTrue(callback.Request.FlattenAllCnames);
Assert.IsFalse(callback.Request.FoundationDns);
Assert.IsNotNull(callback.Request.InternalDns);
Assert.AreEqual(ZoneId, callback.Request.InternalDns.ReferenceZoneId);
Assert.IsFalse(callback.Request.MultiProvider);
Assert.IsNotNull(callback.Request.Nameservers);
Assert.AreEqual(DnsZoneNameserversType.Standard, callback.Request.Nameservers.Type);
Assert.AreEqual(86400, callback.Request.NameserverTtl);
Assert.IsFalse(callback.Request.SecondaryOverrides);
Assert.IsNotNull(callback.Request.SOA);
Assert.AreEqual(604800, callback.Request.SOA.Expire);
Assert.AreEqual(1800, callback.Request.SOA.MinimumTtl);
Assert.AreEqual("ns1.example.org", callback.Request.SOA.PrimaryNameserver);
Assert.AreEqual(28800, callback.Request.SOA.Refresh);
Assert.AreEqual(3600, callback.Request.SOA.Retry);
Assert.AreEqual(43200, callback.Request.SOA.TimeToLive);
Assert.AreEqual("admin.example.org", callback.Request.SOA.ZoneAdministrator);
Assert.AreEqual(DnsZoneMode.Standard, callback.Request.ZoneMode);
Assert.IsNotNull(request);
Assert.IsTrue(request.FlattenAllCnames);
Assert.IsFalse(request.FoundationDns);
Assert.IsNotNull(request.InternalDns);
Assert.AreEqual(ZoneId, request.InternalDns.ReferenceZoneId);
Assert.IsFalse(request.MultiProvider);
Assert.IsNotNull(request.Nameservers);
Assert.AreEqual(DnsZoneNameserversType.Standard, request.Nameservers.Type);
Assert.AreEqual(86400, request.NameserverTtl);
Assert.IsFalse(request.SecondaryOverrides);
Assert.IsNotNull(request.SOA);
Assert.AreEqual(604800, request.SOA.Expire);
Assert.AreEqual(1800, request.SOA.MinimumTtl);
Assert.AreEqual("ns1.example.org", request.SOA.PrimaryNameserver);
Assert.AreEqual(28800, request.SOA.Refresh);
Assert.AreEqual(3600, request.SOA.Retry);
Assert.AreEqual(43200, request.SOA.TimeToLive);
Assert.AreEqual("admin.example.org", request.SOA.ZoneAdministrator);
Assert.AreEqual(DnsZoneMode.Standard, request.ZoneMode);
_clientMock.Verify(m => m.PatchAsync<DnsZoneSettings, InternalUpdateDnsZoneSettingsRequest>($"/zones/{ZoneId}/dns_settings", It.IsAny<InternalUpdateDnsZoneSettingsRequest>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
@@ -133,192 +135,192 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions
public async Task ShouldUpdateDnsSettingsNone()
{
// Arrange
var request = new UpdateDnsZoneSettingsRequest(ZoneId);
var req = new UpdateDnsZoneSettingsRequest(ZoneId);
var client = GetClient();
// Act
var response = await client.UpdateDnsZoneSettings(request);
var response = await client.UpdateDnsZoneSettings(req, TestContext.CancellationTokenSource.Token);
// Assert
Assert.IsNotNull(response);
Assert.IsTrue(response.Success);
Assert.AreEqual(_response.Result, response.Result);
Assert.AreEqual(1, _callbacks.Count);
Assert.HasCount(1, _callbacks);
var callback = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_settings", callback.RequestPath);
var (requestPath, request) = _callbacks.First();
Assert.AreEqual($"/zones/{ZoneId}/dns_settings", requestPath);
Assert.IsNotNull(callback.Request);
Assert.IsNull(callback.Request.FlattenAllCnames);
Assert.IsNull(callback.Request.FoundationDns);
Assert.IsNull(callback.Request.MultiProvider);
Assert.IsNull(callback.Request.Nameservers);
Assert.IsNull(callback.Request.NameserverTtl);
Assert.IsNull(callback.Request.SecondaryOverrides);
Assert.IsNull(callback.Request.SOA);
Assert.IsNull(callback.Request.ZoneMode);
Assert.IsNotNull(request);
Assert.IsNull(request.FlattenAllCnames);
Assert.IsNull(request.FoundationDns);
Assert.IsNull(request.MultiProvider);
Assert.IsNull(request.Nameservers);
Assert.IsNull(request.NameserverTtl);
Assert.IsNull(request.SecondaryOverrides);
Assert.IsNull(request.SOA);
Assert.IsNull(request.ZoneMode);
_clientMock.Verify(m => m.PatchAsync<DnsZoneSettings, InternalUpdateDnsZoneSettingsRequest>($"/zones/{ZoneId}/dns_settings", It.IsAny<InternalUpdateDnsZoneSettingsRequest>(), It.IsAny<CancellationToken>()), Times.Once);
_clientMock.VerifyNoOtherCalls();
}
[TestMethod]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidMode()
{
// Arrange
_request.ZoneMode = 0;
var client = GetClient();
// Act
await client.UpdateDnsZoneSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidNameserverType()
{
// Arrange
_request.Nameservers.Type = 0;
var client = GetClient();
// Act
await client.UpdateDnsZoneSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(29)]
[DataRow(86401)]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidNameserverTtl(int ttl)
{
// Arrange
_request.NameserverTtl = ttl;
var client = GetClient();
// Act
await client.UpdateDnsZoneSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(86399)]
[DataRow(2419201)]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaExpire(int ttl)
{
// Arrange
_request.SOA.Expire = ttl;
var client = GetClient();
// Act
await client.UpdateDnsZoneSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(59)]
[DataRow(86401)]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaMinimumTtl(int ttl)
{
// Arrange
_request.SOA.MinimumTtl = ttl;
var client = GetClient();
// Act
await client.UpdateDnsZoneSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(null)]
[DataRow("")]
[DataRow(" ")]
[ExpectedException(typeof(ArgumentNullException))]
public async Task ShouldThrowArgumentNullExceptionForMissingSoaNameserver(string nameserver)
{
// Arrange
_request.SOA.PrimaryNameserver = nameserver;
var client = GetClient();
// Act
await client.UpdateDnsZoneSettings(_request);
// Assert - ArgumentNullException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentNullException>(async () =>
{
await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(599)]
[DataRow(86401)]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaRefresh(int ttl)
{
// Arrange
_request.SOA.Refresh = ttl;
var client = GetClient();
// Act
await client.UpdateDnsZoneSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(599)]
[DataRow(86401)]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaRetry(int ttl)
{
// Arrange
_request.SOA.Retry = ttl;
var client = GetClient();
// Act
await client.UpdateDnsZoneSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(299)]
[DataRow(86401)]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaTtl(int ttl)
{
// Arrange
_request.SOA.TimeToLive = ttl;
var client = GetClient();
// Act
await client.UpdateDnsZoneSettings(_request);
// Assert - ArgumentOutOfRangeException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () =>
{
await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
[TestMethod]
[DataRow(null)]
[DataRow("")]
[DataRow(" ")]
[ExpectedException(typeof(ArgumentNullException))]
public async Task ShouldThrowArgumentNullExceptionForMissingSoaAdministrator(string admin)
{
// Arrange
_request.SOA.ZoneAdministrator = admin;
var client = GetClient();
// Act
await client.UpdateDnsZoneSettings(_request);
// Assert - ArgumentNullException
// Act & Assert
await Assert.ThrowsExactlyAsync<ArgumentNullException>(async () =>
{
await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token);
});
}
private ICloudflareClient GetClient()