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

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

View File

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

View File

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

View File

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

View File

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