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] [*.cs]
csharp_preferred_modifier_order = public, private, protected, internal, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, volatile, async:suggestion 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 # Only use "var" when it's obvious what the variable type is
csharp_style_var_for_built_in_types = false:warning 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}] [*.{xml,csproj,targets,props,json,yml}]
indent_size = 2 indent_size = 2
indent_style = space indent_style = space
[*.{json,yml}]
end_of_line = lf

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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