diff --git a/.editorconfig b/.editorconfig index 92ed11e..7fb01f9 100644 --- a/.editorconfig +++ b/.editorconfig @@ -91,6 +91,7 @@ dotnet_naming_style.prefix_underscore.required_prefix = _ [*.cs] csharp_preferred_modifier_order = public, private, protected, internal, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, volatile, async:suggestion +csharp_style_prefer_primary_constructors = false # Only use "var" when it's obvious what the variable type is csharp_style_var_for_built_in_types = false:warning @@ -157,3 +158,6 @@ csharp_space_between_square_brackets = false [*.{xml,csproj,targets,props,json,yml}] indent_size = 2 indent_style = space + +[*.{json,yml}] +end_of_line = lf diff --git a/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/AddCustomNameserverTest.cs b/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/AddCustomNameserverTest.cs index 73e726f..7a2477c 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/AddCustomNameserverTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/AddCustomNameserverTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions [TestClass] public class AddCustomNameserverTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string Nameserver = "ns1.example.com"; @@ -50,21 +52,21 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions var client = GetClient(); // Act - var response = await client.AddCustomNameserver(_request); + var response = await client.AddCustomNameserver(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/custom_ns", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/custom_ns", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(_request.NameserverName, callback.Request.NameserverName); - Assert.IsNull(callback.Request.NameserverSet); + Assert.AreEqual(_request.NameserverName, request.NameserverName); + Assert.IsNull(request.NameserverSet); _clientMock.Verify(m => m.PostAsync($"/accounts/{AccountId}/custom_ns", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/DeleteCustomNameserverTest.cs b/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/DeleteCustomNameserverTest.cs index f06e6bf..fc88628 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/DeleteCustomNameserverTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/DeleteCustomNameserverTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions [TestClass] public class DeleteCustomNameserverTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string Nameserver = "ns1.example.com"; @@ -45,18 +47,18 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions var client = GetClient(); // Act - var response = await client.DeleteCustomNameserver(AccountId, Nameserver); + var response = await client.DeleteCustomNameserver(AccountId, Nameserver, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/custom_ns/{Nameserver}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/custom_ns/{Nameserver}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.DeleteAsync>($"/accounts/{AccountId}/custom_ns/{Nameserver}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -66,16 +68,13 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldDeleteCustomNameserver(string nameserver) { // Arrange var client = GetClient(); - // Act - var response = await client.DeleteCustomNameserver(AccountId, nameserver); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.DeleteCustomNameserver(AccountId, nameserver, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/ListCustomNameserverTest.cs b/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/ListCustomNameserverTest.cs index 4bb2372..8d0d1c8 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/ListCustomNameserverTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/CustomNameserversExtensions/ListCustomNameserverTest.cs @@ -10,9 +10,9 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions [TestClass] public class ListCustomNameserverTest { - private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; + public TestContext TestContext { get; set; } - private const string Nameserver = "ns1.example.com"; + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -45,18 +45,18 @@ namespace Cloudflare.Dns.Tests.CustomNameserversExtensions var client = GetClient(); // Act - var response = await client.ListCustomNameserver(AccountId); + var response = await client.ListCustomNameserver(AccountId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/custom_ns", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/custom_ns", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>($"/accounts/{AccountId}/custom_ns", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/ShowDnsAccountSettingsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/ShowDnsAccountSettingsTest.cs index 9699978..1e36dcd 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/ShowDnsAccountSettingsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/ShowDnsAccountSettingsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions [TestClass] public class ShowDnsAccountSettingsTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c354"; @@ -69,19 +71,19 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions var client = GetClient(); // Act - var response = await client.ShowDnsAccountSettings(AccountId); + var response = await client.ShowDnsAccountSettings(AccountId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings", callback.RequestPath); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings", requestPath); - Assert.IsNull(callback.QueryFilter); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/accounts/{AccountId}/dns_settings", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/UpdateDnsAccountSettingsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/UpdateDnsAccountSettingsTest.cs index 5f2673f..4faf7fd 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/UpdateDnsAccountSettingsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/UpdateDnsAccountSettingsTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions [TestClass] public class UpdateDnsAccountSettingsTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c354"; @@ -100,37 +102,37 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions var client = GetClient(); // Act - var response = await client.UpdateDnsAccountSettings(_request); + var response = await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings", requestPath); - Assert.IsNotNull(callback.Request); - Assert.IsTrue(callback.Request.ZoneDefaults.FlattenAllCnames); - Assert.IsFalse(callback.Request.ZoneDefaults.FoundationDns); - Assert.IsNotNull(callback.Request.ZoneDefaults.InternalDns); - Assert.AreEqual(ZoneId, callback.Request.ZoneDefaults.InternalDns.ReferenceZoneId); - Assert.IsFalse(callback.Request.ZoneDefaults.MultiProvider); - Assert.IsNotNull(callback.Request.ZoneDefaults.Nameservers); - Assert.AreEqual(DnsAccountNameserversType.Random, callback.Request.ZoneDefaults.Nameservers.Type); - Assert.AreEqual(86400, callback.Request.ZoneDefaults.NameserverTtl); - Assert.IsFalse(callback.Request.ZoneDefaults.SecondaryOverrides); - Assert.IsNotNull(callback.Request.ZoneDefaults.SOA); - Assert.AreEqual(604800, callback.Request.ZoneDefaults.SOA.Expire); - Assert.AreEqual(1800, callback.Request.ZoneDefaults.SOA.MinimumTtl); - Assert.AreEqual("ns1.example.org", callback.Request.ZoneDefaults.SOA.PrimaryNameserver); - Assert.AreEqual(28800, callback.Request.ZoneDefaults.SOA.Refresh); - Assert.AreEqual(3600, callback.Request.ZoneDefaults.SOA.Retry); - Assert.AreEqual(43200, callback.Request.ZoneDefaults.SOA.TimeToLive); - Assert.AreEqual("admin.example.org", callback.Request.ZoneDefaults.SOA.ZoneAdministrator); - Assert.AreEqual(DnsZoneMode.Standard, callback.Request.ZoneDefaults.ZoneMode); + Assert.IsNotNull(request); + Assert.IsTrue(request.ZoneDefaults.FlattenAllCnames); + Assert.IsFalse(request.ZoneDefaults.FoundationDns); + Assert.IsNotNull(request.ZoneDefaults.InternalDns); + Assert.AreEqual(ZoneId, request.ZoneDefaults.InternalDns.ReferenceZoneId); + Assert.IsFalse(request.ZoneDefaults.MultiProvider); + Assert.IsNotNull(request.ZoneDefaults.Nameservers); + Assert.AreEqual(DnsAccountNameserversType.Random, request.ZoneDefaults.Nameservers.Type); + Assert.AreEqual(86400, request.ZoneDefaults.NameserverTtl); + Assert.IsFalse(request.ZoneDefaults.SecondaryOverrides); + Assert.IsNotNull(request.ZoneDefaults.SOA); + Assert.AreEqual(604800, request.ZoneDefaults.SOA.Expire); + Assert.AreEqual(1800, request.ZoneDefaults.SOA.MinimumTtl); + Assert.AreEqual("ns1.example.org", request.ZoneDefaults.SOA.PrimaryNameserver); + Assert.AreEqual(28800, request.ZoneDefaults.SOA.Refresh); + Assert.AreEqual(3600, request.ZoneDefaults.SOA.Retry); + Assert.AreEqual(43200, request.ZoneDefaults.SOA.TimeToLive); + Assert.AreEqual("admin.example.org", request.ZoneDefaults.SOA.ZoneAdministrator); + Assert.AreEqual(DnsZoneMode.Standard, request.ZoneDefaults.ZoneMode); _clientMock.Verify(m => m.PatchAsync($"/accounts/{AccountId}/dns_settings", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -140,24 +142,24 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions public async Task ShouldUpdateDnsSettingsNone() { // Arrange - var request = new UpdateDnsAccountSettingsRequest(AccountId); + var req = new UpdateDnsAccountSettingsRequest(AccountId); var client = GetClient(); // Act - var response = await client.UpdateDnsAccountSettings(request); + var response = await client.UpdateDnsAccountSettings(req, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings", requestPath); - Assert.IsNotNull(callback.Request); - Assert.IsNull(callback.Request.ZoneDefaults); + Assert.IsNotNull(request); + Assert.IsNull(request.ZoneDefaults); _clientMock.Verify(m => m.PatchAsync($"/accounts/{AccountId}/dns_settings", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -167,196 +169,196 @@ namespace Cloudflare.Dns.Tests.DnsAccountSettingsExtensions public async Task ShouldUpdateDnsSettingsNoneDefaults() { // Arrange - var request = new UpdateDnsAccountSettingsRequest(AccountId) + var req = new UpdateDnsAccountSettingsRequest(AccountId) { ZoneDefaults = new DnsAccountZoneDefaults() }; var client = GetClient(); // Act - var response = await client.UpdateDnsAccountSettings(request); + var response = await client.UpdateDnsAccountSettings(req, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/dns_settings", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/dns_settings", requestPath); - Assert.IsNotNull(callback.Request); - Assert.IsNotNull(callback.Request.ZoneDefaults); - Assert.IsNull(callback.Request.ZoneDefaults.FlattenAllCnames); - Assert.IsNull(callback.Request.ZoneDefaults.FoundationDns); - Assert.IsNull(callback.Request.ZoneDefaults.MultiProvider); - Assert.IsNull(callback.Request.ZoneDefaults.Nameservers); - Assert.IsNull(callback.Request.ZoneDefaults.NameserverTtl); - Assert.IsNull(callback.Request.ZoneDefaults.SecondaryOverrides); - Assert.IsNull(callback.Request.ZoneDefaults.SOA); - Assert.IsNull(callback.Request.ZoneDefaults.ZoneMode); + Assert.IsNotNull(request); + Assert.IsNotNull(request.ZoneDefaults); + Assert.IsNull(request.ZoneDefaults.FlattenAllCnames); + Assert.IsNull(request.ZoneDefaults.FoundationDns); + Assert.IsNull(request.ZoneDefaults.MultiProvider); + Assert.IsNull(request.ZoneDefaults.Nameservers); + Assert.IsNull(request.ZoneDefaults.NameserverTtl); + Assert.IsNull(request.ZoneDefaults.SecondaryOverrides); + Assert.IsNull(request.ZoneDefaults.SOA); + Assert.IsNull(request.ZoneDefaults.ZoneMode); _clientMock.Verify(m => m.PatchAsync($"/accounts/{AccountId}/dns_settings", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidMode() { // Arrange _request.ZoneDefaults.ZoneMode = 0; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidNameserverType() { // Arrange _request.ZoneDefaults.Nameservers.Type = 0; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(29)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidNameserverTtl(int ttl) { // Arrange _request.ZoneDefaults.NameserverTtl = ttl; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(86399)] [DataRow(2419201)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaExpire(int ttl) { // Arrange _request.ZoneDefaults.SOA.Expire = ttl; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(59)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaMinimumTtl(int ttl) { // Arrange _request.ZoneDefaults.SOA.MinimumTtl = ttl; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForMissingSoaNameserver(string nameserver) { // Arrange _request.ZoneDefaults.SOA.PrimaryNameserver = nameserver; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(599)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaRefresh(int ttl) { // Arrange _request.ZoneDefaults.SOA.Refresh = ttl; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(599)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaRetry(int ttl) { // Arrange _request.ZoneDefaults.SOA.Retry = ttl; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(299)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaTtl(int ttl) { // Arrange _request.ZoneDefaults.SOA.TimeToLive = ttl; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForMissingSoaAdministrator(string admin) { // Arrange _request.ZoneDefaults.SOA.ZoneAdministrator = admin; var client = GetClient(); - // Act - await client.UpdateDnsAccountSettings(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsAccountSettings(_request, TestContext.CancellationTokenSource.Token); + }); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/CreateInternalDnsViewTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/CreateInternalDnsViewTest.cs index 198c773..aabc417 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/CreateInternalDnsViewTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/CreateInternalDnsViewTest.cs @@ -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($"/accounts/{AccountId}/dns_settings/views", It.IsAny(), null, It.IsAny()), 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(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(async () => + { + var response = await client.CreateInternalDnsView(_request, TestContext.CancellationTokenSource.Token); + }); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/DeleteInternalDnsViewTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/DeleteInternalDnsViewTest.cs index f28d948..7d74fea 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/DeleteInternalDnsViewTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/DeleteInternalDnsViewTest.cs @@ -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($"/accounts/{AccountId}/dns_settings/views/{ViewId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/InternalDnsViewDetailsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/InternalDnsViewDetailsTest.cs index cfa8160..d7c65c0 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/InternalDnsViewDetailsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/InternalDnsViewDetailsTest.cs @@ -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( $"/accounts/{AccountId}/dns_settings/views/{ViewId}", diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/ListInternalDnsViewsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/ListInternalDnsViewsTest.cs index 4c1e07c..e931dbf 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/ListInternalDnsViewsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/ListInternalDnsViewsTest.cs @@ -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 _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>( $"/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>( $"/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 diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/UpdateInternalDnsViewTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/UpdateInternalDnsViewTest.cs index d0e45ed..a9f837c 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/UpdateInternalDnsViewTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsAccountSettingsExtensions/Views/UpdateInternalDnsViewTest.cs @@ -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( $"/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(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(async () => + { + var response = await client.UpdateInternalDnsView(_request, TestContext.CancellationTokenSource.Token); + }); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DeleteDnssecRecordsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DeleteDnssecRecordsTest.cs index 39893eb..ca2f36a 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DeleteDnssecRecordsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DeleteDnssecRecordsTest.cs @@ -10,13 +10,15 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions [TestClass] public class DeleteDnssecRecordsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; private CloudflareResponse _response; - private List<(string RequestPath, IQueryParameterFilter? QueryFilter)> _callbacks; + private List<(string RequestPath, IQueryParameterFilter QueryFilter)> _callbacks; [TestInitialize] public void Initialize() @@ -45,18 +47,18 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions var client = GetClient(); // Act - var response = await client.DeleteDnssecRecords(ZoneId); + var response = await client.DeleteDnssecRecords(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dnssec", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dnssec", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.DeleteAsync( $"/zones/{ZoneId}/dnssec", @@ -71,9 +73,9 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions _clientMock .Setup(m => m.DeleteAsync( It.IsAny(), - It.IsAny(), + It.IsAny(), It.IsAny())) - .Callback((requestPath, queryFilter, _) => _callbacks.Add((requestPath, queryFilter))) + .Callback((requestPath, queryFilter, _) => _callbacks.Add((requestPath, queryFilter))) .ReturnsAsync(() => _response); return _clientMock.Object; diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DnssecDetailsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DnssecDetailsTest.cs index 2518297..68aeda6 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DnssecDetailsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/DnssecDetailsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions [TestClass] public class DnssecDetailsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -61,18 +63,18 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions var client = GetClient(); // Act - var response = await client.DnssecDetails(ZoneId); + var response = await client.DnssecDetails(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dnssec", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dnssec", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync( $"/zones/{ZoneId}/dnssec", diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/EditDnssecStatusTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/EditDnssecStatusTest.cs index f38a753..c787d34 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/EditDnssecStatusTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsDnssecExtensions/EditDnssecStatusTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions [TestClass] public class EditDnssecStatusTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -72,23 +74,23 @@ namespace Cloudflare.Dns.Tests.DnsDnssecExtensions var client = GetClient(); // Act - var response = await client.EditDnssecStatus(_request); + var response = await client.EditDnssecStatus(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dnssec", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dnssec", requestPath); - Assert.IsNotNull(callback.Request); - Assert.AreEqual(_request.DnssecMultiSigner, callback.Request.DnssecMultiSigner); - Assert.AreEqual(_request.DnssecPresigned, callback.Request.DnssecPresigned); - Assert.AreEqual(_request.DnssecUseNsec3, callback.Request.DnssecUseNsec3); - Assert.AreEqual(_request.Status, callback.Request.Status); + Assert.IsNotNull(request); + Assert.AreEqual(_request.DnssecMultiSigner, request.DnssecMultiSigner); + Assert.AreEqual(_request.DnssecPresigned, request.DnssecPresigned); + Assert.AreEqual(_request.DnssecUseNsec3, request.DnssecUseNsec3); + Assert.AreEqual(_request.Status, request.Status); _clientMock.Verify(m => m.PatchAsync( $"/zones/{ZoneId}/dnssec", diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/BatchDnsRecordsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/BatchDnsRecordsTest.cs index 5d5173c..bfe12c9 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/BatchDnsRecordsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/BatchDnsRecordsTest.cs @@ -12,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class BatchDnsRecordsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355"; @@ -63,7 +65,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.BatchDnsRecords(_request); + var response = await client.BatchDnsRecords(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -79,32 +81,32 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions Assert.AreEqual(RecordId, response.Result.Overwrites.Single().Id); Assert.AreEqual(IpContent, response.Result.Overwrites.Single().Content); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/batch", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); - Assert.IsNotNull(callback.Request); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/batch", requestPath); + Assert.IsNull(queryFilter); + Assert.IsNotNull(request); - Assert.AreEqual(1, callback.Request.Deletes.Count); - Assert.AreEqual(RecordId, callback.Request.Deletes.First().Id); + Assert.HasCount(1, request.Deletes); + Assert.AreEqual(RecordId, request.Deletes.First().Id); - Assert.AreEqual(1, callback.Request.Patches.Count); - var patch = callback.Request.Patches.First(); + Assert.HasCount(1, request.Patches); + var patch = request.Patches.First(); Assert.AreEqual(RecordId, patch.Id); Assert.AreEqual(DomainName, patch.Name); Assert.AreEqual(DnsRecordType.A, patch.Type); Assert.AreEqual(IpContent, patch.Content); - Assert.AreEqual(1, callback.Request.Puts.Count); - var put = callback.Request.Puts.First(); + Assert.HasCount(1, request.Puts); + var put = request.Puts.First(); Assert.AreEqual(RecordId, put.Id); Assert.AreEqual(DomainName, put.Name); Assert.AreEqual(DnsRecordType.A, put.Type); Assert.AreEqual(IpContent, put.Content); - Assert.AreEqual(1, callback.Request.Posts.Count); - var post = callback.Request.Posts.First(); + Assert.HasCount(1, request.Posts); + var post = request.Posts.First(); Assert.AreEqual(DomainName, post.Name); Assert.AreEqual(DnsRecordType.A, post.Type); Assert.AreEqual(IpContent, post.Content); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/CreateDnsRecordTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/CreateDnsRecordTest.cs index eb47863..21837e6 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/CreateDnsRecordTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/CreateDnsRecordTest.cs @@ -12,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class CreateDnsRecordTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -91,33 +93,33 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - Assert.IsNotNull(callback.Request); - Assert.AreEqual(_request.Name, callback.Request.Name); - Assert.AreEqual(_request.Type, callback.Request.Type); - Assert.IsNull(callback.Request.Content); - Assert.IsNotNull(callback.Request.Data); - Assert.IsNull(callback.Request.Settings); - Assert.IsNull(callback.Request.Priority); - Assert.AreEqual(_request.Proxied, callback.Request.Proxied); - Assert.AreEqual(_request.Comment, callback.Request.Comment); - Assert.AreEqual(_request.TimeToLive, callback.Request.Ttl); - CollectionAssert.AreEqual(_request.Tags.ToArray(), callback.Request.Tags.ToArray()); + Assert.IsNotNull(request); + Assert.AreEqual(_request.Name, request.Name); + Assert.AreEqual(_request.Type, request.Type); + Assert.IsNull(request.Content); + Assert.IsNotNull(request.Data); + Assert.IsNull(request.Settings); + Assert.IsNull(request.Priority); + Assert.AreEqual(_request.Proxied, request.Proxied); + Assert.AreEqual(_request.Comment, request.Comment); + Assert.AreEqual(_request.TimeToLive, request.Ttl); + CollectionAssert.AreEqual(_request.Tags.ToArray(), request.Tags.ToArray()); - Assert.IsInstanceOfType(callback.Request.Data); - var locData = callback.Request.Data as LOCRecordData; + Assert.IsInstanceOfType(request.Data); + var locData = request.Data as LOCRecordData; Assert.AreEqual(48, locData.LatitudeDegrees); Assert.AreEqual(8, locData.LatitudeMinutes); Assert.AreEqual(8.126, locData.LatitudeSeconds); @@ -139,38 +141,37 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForName(string str) { // Arrange _request.Name = str; var client = GetClient(); - // Act - await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForType() { // Arrange _request.Type = 0; var client = GetClient(); - // Act - await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForContent(string str) { // Arrange @@ -178,10 +179,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Content = str; var client = GetClient(); - // Act - await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -193,17 +195,20 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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(_request.Content, callback.Request.Content); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); + + Assert.AreEqual(_request.Content, request.Content); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -219,17 +224,20 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNull(callback.Request.Settings); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); + + Assert.IsNull(request.Settings); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -245,17 +253,20 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNull(callback.Request.Settings); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); + + Assert.IsNull(request.Settings); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -271,37 +282,40 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Settings); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - Assert.IsInstanceOfType(callback.Request.Settings); - Assert.AreEqual(true, ((CNAMERecordSettings)callback.Request.Settings).FlattenCname); + Assert.IsNotNull(request.Settings); + + Assert.IsInstanceOfType(request.Settings); + Assert.IsTrue(((CNAMERecordSettings)request.Settings).FlattenCname); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); } [TestMethod] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForData() { // Arrange _request.Data = null; var client = GetClient(); - // Act - await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -322,17 +336,20 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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(_request.Priority, callback.Request.Priority); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); + + Assert.AreEqual(_request.Priority, request.Priority); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -341,17 +358,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(DnsRecordType.MX)] [DataRow(DnsRecordType.URI)] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForPriority(DnsRecordType type) { // Arrange _request.Type = type; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -364,17 +381,20 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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(ttl, callback.Request.Ttl); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); + + Assert.AreEqual(ttl, request.Ttl); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -384,17 +404,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(0)] [DataRow(20)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForTtl(int ttl) { // Arrange _request.TimeToLive = ttl; var client = GetClient(); - // Act - await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -411,7 +431,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(DnsRecordType.SVCB)] [DataRow(DnsRecordType.TLSA)] [DataRow(DnsRecordType.URI)] - [ExpectedException(typeof(ArgumentException))] public async Task ShouldThrowArgumentExceptionForInvalidTypeOfData(DnsRecordType type) { // Arrange @@ -420,10 +439,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new object(); var client = GetClient(); - // Act - await client.CreateDnsRecord(_request); - - // Assert - ArgumentException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #region CAA @@ -437,20 +457,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (CAARecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data); + + var data = (CAARecordData)request.Data; Assert.AreEqual(1, data.Flags); Assert.AreEqual("issue", data.Tag); Assert.AreEqual("letsencrypt.org", data.Value); @@ -460,7 +483,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForCaaDataTag(string str) { // Arrange @@ -468,17 +490,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new CAARecordData { Flags = 1, Tag = str, Value = "letsencrypt.org" }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForCaaDataValue(string str) { // Arrange @@ -486,10 +508,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new CAARecordData { Flags = 1, Tag = "issue", Value = str }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion CAA @@ -505,20 +528,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(CERTRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (CERTRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(CERTRecordData)); + + var data = (CERTRecordData)request.Data; Assert.AreEqual(1, data.Algorithm); Assert.AreEqual("test", data.Certificate); Assert.AreEqual(2, data.KeyTag); @@ -529,7 +555,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForCertDataValue(string str) { // Arrange @@ -537,10 +562,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new CERTRecordData { Algorithm = 1, Certificate = str, KeyTag = 2, Type = 3 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion CERT @@ -556,20 +582,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(DNSKEYRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (DNSKEYRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(DNSKEYRecordData)); + + var data = (DNSKEYRecordData)request.Data; Assert.AreEqual(1, data.Algorithm); Assert.AreEqual(2, data.Flags); Assert.AreEqual(3, data.Protocol); @@ -580,7 +609,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForDnsKeyDataPublicKey(string str) { // Arrange @@ -588,10 +616,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new DNSKEYRecordData { Algorithm = 1, Flags = 2, Protocol = 3, PublicKey = str }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion DNSKEY @@ -607,20 +636,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(DSRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (DSRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(DSRecordData)); + + var data = (DSRecordData)request.Data; Assert.AreEqual(1, data.Algorithm); Assert.AreEqual("test", data.Digest); Assert.AreEqual(3, data.DigestType); @@ -631,7 +663,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForDsDataDigest(string str) { // Arrange @@ -639,10 +670,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new DSRecordData { Algorithm = 1, Digest = str, DigestType = 3, KeyTag = 4 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion DS @@ -658,20 +690,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(HTTPSRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (HTTPSRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(HTTPSRecordData)); + + var data = (HTTPSRecordData)request.Data; Assert.AreEqual(10, data.Priority); Assert.AreEqual(".", data.Target); Assert.AreEqual("foo.bar", data.Value); @@ -681,7 +716,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForHttpsDataTarget(string str) { // Arrange @@ -689,17 +723,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new HTTPSRecordData { Priority = 10, Target = str, Value = "foo.bar" }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForHttpsDataValue(string str) { // Arrange @@ -707,10 +741,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new HTTPSRecordData { Priority = 10, Target = ".", Value = str }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion HTTPS @@ -725,7 +760,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -739,17 +774,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(91)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLatitudeDegree(int val) { // Arrange ((LOCRecordData)_request.Data).LatitudeDegrees = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -760,7 +795,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -774,17 +809,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(60)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLatitudeMinutes(int val) { // Arrange ((LOCRecordData)_request.Data).LatitudeMinutes = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -795,7 +830,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -809,17 +844,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1.0)] [DataRow(59.9991)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLatitudeSeconds(double val) { // Arrange ((LOCRecordData)_request.Data).LatitudeSeconds = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -830,7 +865,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -842,17 +877,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLatitudeDirection() { // Arrange ((LOCRecordData)_request.Data).LatitudeDirection = 0; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -863,7 +898,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -877,17 +912,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(181)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLongitudeDegree(int val) { // Arrange ((LOCRecordData)_request.Data).LongitudeDegrees = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -898,7 +933,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -912,17 +947,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(60)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLongitudeMinutes(int val) { // Arrange ((LOCRecordData)_request.Data).LongitudeMinutes = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -933,7 +968,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -947,17 +982,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1.0)] [DataRow(59.9991)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLongitudeSeconds(double val) { // Arrange ((LOCRecordData)_request.Data).LongitudeSeconds = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -968,7 +1003,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -980,17 +1015,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataLongitudeDirection() { // Arrange ((LOCRecordData)_request.Data).LongitudeDirection = 0; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -1001,7 +1036,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -1015,17 +1050,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-100_000.1)] [DataRow(42_849_672.951)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataAltitde(double val) { // Arrange ((LOCRecordData)_request.Data).Altitude = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -1036,7 +1071,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -1050,17 +1085,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(90_000_001)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataSize(int val) { // Arrange ((LOCRecordData)_request.Data).Size = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -1071,7 +1106,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -1085,17 +1120,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(90_000_001)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataPrecisionHorizontal(int val) { // Arrange ((LOCRecordData)_request.Data).PrecisionHorizontal = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] @@ -1106,7 +1141,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -1120,17 +1155,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestMethod] [DataRow(-1)] [DataRow(90_000_001)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForLocDataPrecisionVertical(int val) { // Arrange ((LOCRecordData)_request.Data).PrecisionVertical = val; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion LOC @@ -1146,20 +1181,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(NAPTRRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (NAPTRRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(NAPTRRecordData)); + + var data = (NAPTRRecordData)request.Data; Assert.AreEqual("ab", data.Flags); Assert.AreEqual(1, data.Order); Assert.AreEqual(2, data.Preference); @@ -1172,7 +1210,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForNaPtrDataFlags(string str) { // Arrange @@ -1180,17 +1217,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new NAPTRRecordData { Flags = str, Order = 1, Preference = 2, Regex = "cd", Replacement = "ef", Service = "gh" }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForNaPtrDataRegex(string str) { // Arrange @@ -1198,17 +1235,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new NAPTRRecordData { Flags = "ab", Order = 1, Preference = 2, Regex = str, Replacement = "ef", Service = "gh" }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForNaPtrDataReplacement(string str) { // Arrange @@ -1216,17 +1253,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new NAPTRRecordData { Flags = "ab", Order = 1, Preference = 2, Regex = "cd", Replacement = str, Service = "gh" }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForNaPtrDataService(string str) { // Arrange @@ -1234,10 +1271,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new NAPTRRecordData { Flags = "ab", Order = 1, Preference = 2, Regex = "cd", Replacement = "ef", Service = str }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion NAPTR @@ -1253,20 +1291,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(SMIMEARecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (SMIMEARecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(SMIMEARecordData)); + + var data = (SMIMEARecordData)request.Data; Assert.AreEqual("cert", data.Certificate); Assert.AreEqual(1, data.MatchingType); Assert.AreEqual(2, data.Selector); @@ -1277,7 +1318,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForSMimeACertificate(string str) { // Arrange @@ -1285,10 +1325,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new SMIMEARecordData { Certificate = str, MatchingType = 1, Selector = 2, Usage = 3 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion SMIMEA @@ -1305,20 +1346,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(SRVRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (SRVRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(SRVRecordData)); + + var data = (SRVRecordData)request.Data; Assert.AreEqual(123, data.Port); Assert.AreEqual(345, data.Priority); Assert.AreEqual(".", data.Target); @@ -1329,7 +1373,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForSrvTarget(string str) { // Arrange @@ -1338,10 +1381,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new SRVRecordData { Port = 123, Priority = 345, Target = str, Weight = 456 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion SRV @@ -1357,20 +1401,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(SSHFPRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (SSHFPRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(SSHFPRecordData)); + + var data = (SSHFPRecordData)request.Data; Assert.AreEqual(1, data.Algorithm); Assert.AreEqual("fingerprint", data.Fingerprint); Assert.AreEqual(2, data.Type); @@ -1380,7 +1427,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForSshFpFingerprint(string str) { // Arrange @@ -1388,10 +1434,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new SSHFPRecordData { Algorithm = 1, Fingerprint = str, Type = 2 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion SSHFP @@ -1407,20 +1454,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(SVCBRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (SVCBRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(SVCBRecordData)); + + var data = (SVCBRecordData)request.Data; Assert.AreEqual(10, data.Priority); Assert.AreEqual(".", data.Target); Assert.AreEqual("example.com", data.Value); @@ -1430,7 +1480,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForSvcBTarget(string str) { // Arrange @@ -1438,17 +1487,17 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new SVCBRecordData { Priority = 10, Target = str, Value = "example.com" }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForSvcBValue(string str) { // Arrange @@ -1456,10 +1505,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new SVCBRecordData { Priority = 10, Target = ".", Value = str }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion SVCB @@ -1475,20 +1525,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(TLSARecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (TLSARecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(TLSARecordData)); + + var data = (TLSARecordData)request.Data; Assert.AreEqual("cert", data.Certificate); Assert.AreEqual(1, data.MatchingType); Assert.AreEqual(2, data.Selector); @@ -1499,7 +1552,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForTlsACertificate(string str) { // Arrange @@ -1507,10 +1559,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new TLSARecordData { Certificate = str, MatchingType = 1, Selector = 2, Usage = 3 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion TLSA @@ -1527,20 +1580,23 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.CreateDnsRecord(_request); + var response = await client.CreateDnsRecord(_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.IsNotNull(callback.Request.Data); - Assert.IsInstanceOfType(callback.Request.Data, typeof(URIRecordData)); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); - var data = (URIRecordData)callback.Request.Data; + Assert.IsNotNull(request.Data); + Assert.IsInstanceOfType(request.Data, typeof(URIRecordData)); + + var data = (URIRecordData)request.Data; Assert.AreEqual("aim", data.Target); Assert.AreEqual(10, data.Weight); } @@ -1549,7 +1605,6 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForUriTarget(string str) { // Arrange @@ -1558,10 +1613,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions _request.Data = new URIRecordData { Target = str, Weight = 10 }; var client = GetClient(); - // Act - var response = await client.CreateDnsRecord(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.CreateDnsRecord(_request, TestContext.CancellationTokenSource.Token); + }); } #endregion URI diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DeleteDnsRecordTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DeleteDnsRecordTest.cs index d7a0936..be4af8d 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DeleteDnsRecordTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DeleteDnsRecordTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class DeleteDnsRecordTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355"; @@ -45,18 +47,18 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DeleteDnsRecord(ZoneId, RecordId); + var response = await client.DeleteDnsRecord(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.DeleteAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DnsRecordDetailsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DnsRecordDetailsTest.cs index b3e4d61..c556aa4 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DnsRecordDetailsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/DnsRecordDetailsTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class DnsRecordDetailsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355"; @@ -59,7 +61,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -67,11 +69,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -101,7 +103,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -109,11 +111,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -142,7 +144,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -150,11 +152,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -183,7 +185,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -191,11 +193,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -224,7 +226,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -232,11 +234,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -265,7 +267,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -273,11 +275,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -306,7 +308,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -314,11 +316,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -347,7 +349,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -355,11 +357,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -388,7 +390,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -396,11 +398,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -429,7 +431,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -437,11 +439,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -470,7 +472,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -478,11 +480,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -511,7 +513,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -519,11 +521,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -552,7 +554,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -560,11 +562,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -593,7 +595,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -601,11 +603,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -634,7 +636,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -642,11 +644,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -675,7 +677,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -683,11 +685,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -716,7 +718,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -724,11 +726,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -757,7 +759,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -765,11 +767,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -798,7 +800,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -806,11 +808,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -839,7 +841,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -847,11 +849,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -880,7 +882,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -888,11 +890,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions AssertRecord(result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -906,18 +908,18 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.IsNull(response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -933,18 +935,18 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.DnsRecordDetails(ZoneId, RecordId); + var response = await client.DnsRecordDetails(ZoneId, RecordId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.IsNull(response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/{RecordId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ExportDnsRecordsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ExportDnsRecordsTest.cs index 953a976..c15650d 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ExportDnsRecordsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ExportDnsRecordsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class ExportDnsRecordsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -35,18 +37,18 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ExportDnsRecords(ZoneId); + var response = await client.ExportDnsRecords(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/export", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/export", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_records/export", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ImportDnsRecordsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ImportDnsRecordsTest.cs index 5dc8a59..7f4997b 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ImportDnsRecordsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ImportDnsRecordsTest.cs @@ -12,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class ImportDnsRecordsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string BindConfigContent = "www.example.com. 300 IN A 127.0.0.1"; @@ -55,25 +57,25 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ImportDnsRecords(_request); + var response = await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(1, callback.Request.Count()); + Assert.AreEqual(1, request.Count()); - var part = callback.Request.First(); + var part = request.First(); Assert.AreEqual("file", part.Headers.ContentDisposition.Name); Assert.IsInstanceOfType(part); - Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync()); + Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token)); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records/import", It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -91,25 +93,25 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ImportDnsRecords(_request); + var response = await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(1, callback.Request.Count()); + Assert.AreEqual(1, request.Count()); - var part = callback.Request.First(); + var part = request.First(); Assert.AreEqual("file", part.Headers.ContentDisposition.Name); Assert.IsInstanceOfType(part); - Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync()); + Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token)); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records/import", It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -130,30 +132,30 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ImportDnsRecords(_request); + var response = await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(2, callback.Request.Count()); + Assert.AreEqual(2, request.Count()); - var part = callback.Request.First(); + var part = request.First(); Assert.AreEqual("proxied", part.Headers.ContentDisposition.Name); Assert.IsInstanceOfType(part); - Assert.AreEqual(proxied.ToString().ToLower(), await part.ReadAsStringAsync()); + Assert.AreEqual(proxied.ToString().ToLower(), await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token)); - part = callback.Request.Last(); + part = request.Last(); Assert.AreEqual("file", part.Headers.ContentDisposition.Name); Assert.IsInstanceOfType(part); - Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync()); + Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token)); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records/import", It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -174,30 +176,30 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ImportDnsRecords(_request); + var response = await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/import", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(2, callback.Request.Count()); + Assert.AreEqual(2, request.Count()); - var part = callback.Request.First(); + var part = request.First(); Assert.AreEqual("proxied", part.Headers.ContentDisposition.Name); Assert.IsInstanceOfType(part); - Assert.AreEqual(proxied.ToString().ToLower(), await part.ReadAsStringAsync()); + Assert.AreEqual(proxied.ToString().ToLower(), await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token)); - part = callback.Request.Last(); + part = request.Last(); Assert.AreEqual("file", part.Headers.ContentDisposition.Name); Assert.IsInstanceOfType(part); - Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync()); + Assert.AreEqual(BindConfigContent, await part.ReadAsStringAsync(TestContext.CancellationTokenSource.Token)); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records/import", It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -212,17 +214,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForFile(string file) { // Arrange _request.File = file; var client = GetClient(); - // Act - await client.ImportDnsRecords(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.ImportDnsRecords(_request, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ListDnsRecordsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ListDnsRecordsTest.cs index 2c382aa..d8f2fc8 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ListDnsRecordsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ListDnsRecordsTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class ListDnsRecordsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -83,14 +85,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ListDnsRecords(ZoneId); + var response = await client.ListDnsRecords(ZoneId, cancellationToken: TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.IsNotNull(response.Result); - Assert.AreEqual(2, response.Result.Count); + Assert.HasCount(2, response.Result); Assert.IsInstanceOfType(response.Result.First()); Assert.AreEqual("023e105f4ecef8ad9ca31a8372d0c353", response.Result.First().Id); @@ -98,11 +100,11 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions Assert.IsInstanceOfType(response.Result.Last()); Assert.AreEqual("023e105f4ecef8ad9ca31a8372d0c355", response.Result.Last().Id); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>($"/zones/{ZoneId}/dns_records", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -120,14 +122,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ListDnsRecords(ZoneId, filter); + var response = await client.ListDnsRecords(ZoneId, filter, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.IsNotNull(response.Result); - Assert.AreEqual(2, response.Result.Count); + Assert.HasCount(2, response.Result); Assert.IsInstanceOfType(response.Result.First()); Assert.AreEqual("023e105f4ecef8ad9ca31a8372d0c353", response.Result.First().Id); @@ -135,14 +137,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions Assert.IsInstanceOfType(response.Result.Last()); Assert.AreEqual("023e105f4ecef8ad9ca31a8372d0c355", response.Result.Last().Id); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records", callback.RequestPath); - Assert.IsNotNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records", requestPath); + Assert.IsNotNull(queryFilter); - Assert.IsInstanceOfType(callback.QueryFilter); - Assert.AreEqual("example.com", ((ListDnsRecordsFilter)callback.QueryFilter).Name); + Assert.IsInstanceOfType(queryFilter); + Assert.AreEqual("example.com", ((ListDnsRecordsFilter)queryFilter).Name); _clientMock.Verify(m => m.GetAsync>($"/zones/{ZoneId}/dns_records", filter, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -159,7 +161,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -214,7 +216,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(33, dict.Count); + Assert.HasCount(33, dict); Assert.IsTrue(dict.ContainsKey("comment")); Assert.IsTrue(dict.ContainsKey("comment.absent")); @@ -311,7 +313,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -327,7 +329,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -344,7 +346,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -361,7 +363,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -378,7 +380,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -394,7 +396,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -411,7 +413,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -428,7 +430,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -445,7 +447,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -462,7 +464,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -479,7 +481,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -496,7 +498,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -512,7 +514,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -528,7 +530,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -545,7 +547,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -562,7 +564,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -579,7 +581,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -596,7 +598,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -613,7 +615,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -629,7 +631,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -645,7 +647,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -662,7 +664,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -679,7 +681,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -696,7 +698,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -713,7 +715,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -730,7 +732,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -747,7 +749,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -764,7 +766,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -781,7 +783,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -797,7 +799,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -813,7 +815,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/OverwriteDnsRecordTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/OverwriteDnsRecordTest.cs index 690f7c9..487caa0 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/OverwriteDnsRecordTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/OverwriteDnsRecordTest.cs @@ -12,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class OverwriteDnsRecordTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355"; @@ -65,7 +67,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.OverwriteDnsRecord(_request); + var response = await client.OverwriteDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -88,15 +90,15 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions Assert.IsNotNull(response.Result.CommentModifiedOn); Assert.IsNotNull(response.Result.TagsModifiedOn); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual("example.com", callback.Request.Name); - Assert.AreEqual(DnsRecordType.A, callback.Request.Type); - Assert.AreEqual("127.0.1.22", callback.Request.Content); + Assert.AreEqual("example.com", request.Name); + Assert.AreEqual(DnsRecordType.A, request.Type); + Assert.AreEqual("127.0.1.22", request.Content); _clientMock.Verify(m => m.PutAsync($"/zones/{ZoneId}/dns_records/{RecordId}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ScanDnsRecordsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ScanDnsRecordsTest.cs index e9c77ff..fed60b2 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ScanDnsRecordsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/ScanDnsRecordsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class ScanDnsRecordsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -45,14 +47,14 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.ScanDnsRecords(ZoneId); + var response = await client.ScanDnsRecords(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); Assert.AreEqual($"/zones/{ZoneId}/dns_records/scan", _callbacks.First()); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/dns_records/scan", null, null, It.IsAny()), Times.Once); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/UpdateDnsRecordTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/UpdateDnsRecordTest.cs index 789048c..b84394e 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/UpdateDnsRecordTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsRecordsExtensions/UpdateDnsRecordTest.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +using System.Linq; using System.Threading; using System.Threading.Tasks; using AMWD.Net.Api.Cloudflare; @@ -15,6 +12,8 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions [TestClass] public class UpdateDnsRecordTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string RecordId = "023e105f4ecef8ad9ca31a8372d0c355"; @@ -70,7 +69,7 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions var client = GetClient(); // Act - var response = await client.UpdateDnsRecord(_request); + var response = await client.UpdateDnsRecord(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); @@ -93,15 +92,15 @@ namespace Cloudflare.Dns.Tests.DnsRecordsExtensions Assert.IsNotNull(response.Result.CommentModifiedOn); Assert.IsNotNull(response.Result.TagsModifiedOn); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_records/{RecordId}", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual("example.com", callback.Request.Name); - Assert.AreEqual(DnsRecordType.A, callback.Request.Type); - Assert.AreEqual("127.0.1.22", callback.Request.Content); + Assert.AreEqual("example.com", request.Name); + Assert.AreEqual(DnsRecordType.A, request.Type); + Assert.AreEqual("127.0.1.22", request.Content); _clientMock.Verify(m => m.PatchAsync($"/zones/{ZoneId}/dns_records/{RecordId}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/ShowDnsZoneSettingsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/ShowDnsZoneSettingsTest.cs index 13f7547..7d8cef9 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/ShowDnsZoneSettingsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/ShowDnsZoneSettingsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions [TestClass] public class ShowDnsZoneSettingsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -65,19 +67,19 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions var client = GetClient(); // Act - var response = await client.ShowDnsZoneSettings(ZoneId); + var response = await client.ShowDnsZoneSettings(ZoneId, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_settings", callback.RequestPath); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_settings", requestPath); - Assert.IsNull(callback.QueryFilter); + Assert.IsNull(queryFilter); _clientMock?.Verify(m => m.GetAsync($"/zones/{ZoneId}/dns_settings", null, It.IsAny()), Times.Once); _clientMock?.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/UpdateDnsZoneSettingsTest.cs b/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/UpdateDnsZoneSettingsTest.cs index 0ef61df..2083cab 100644 --- a/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/UpdateDnsZoneSettingsTest.cs +++ b/test/Extensions/Cloudflare.Dns.Tests/DnsZoneSettingsExtensions/UpdateDnsZoneSettingsTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions [TestClass] public class UpdateDnsZoneSettingsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -93,37 +95,37 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions var client = GetClient(); // Act - var response = await client.UpdateDnsZoneSettings(_request); + var response = await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_settings", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_settings", requestPath); - Assert.IsNotNull(callback.Request); - Assert.IsTrue(callback.Request.FlattenAllCnames); - Assert.IsFalse(callback.Request.FoundationDns); - Assert.IsNotNull(callback.Request.InternalDns); - Assert.AreEqual(ZoneId, callback.Request.InternalDns.ReferenceZoneId); - Assert.IsFalse(callback.Request.MultiProvider); - Assert.IsNotNull(callback.Request.Nameservers); - Assert.AreEqual(DnsZoneNameserversType.Standard, callback.Request.Nameservers.Type); - Assert.AreEqual(86400, callback.Request.NameserverTtl); - Assert.IsFalse(callback.Request.SecondaryOverrides); - Assert.IsNotNull(callback.Request.SOA); - Assert.AreEqual(604800, callback.Request.SOA.Expire); - Assert.AreEqual(1800, callback.Request.SOA.MinimumTtl); - Assert.AreEqual("ns1.example.org", callback.Request.SOA.PrimaryNameserver); - Assert.AreEqual(28800, callback.Request.SOA.Refresh); - Assert.AreEqual(3600, callback.Request.SOA.Retry); - Assert.AreEqual(43200, callback.Request.SOA.TimeToLive); - Assert.AreEqual("admin.example.org", callback.Request.SOA.ZoneAdministrator); - Assert.AreEqual(DnsZoneMode.Standard, callback.Request.ZoneMode); + Assert.IsNotNull(request); + Assert.IsTrue(request.FlattenAllCnames); + Assert.IsFalse(request.FoundationDns); + Assert.IsNotNull(request.InternalDns); + Assert.AreEqual(ZoneId, request.InternalDns.ReferenceZoneId); + Assert.IsFalse(request.MultiProvider); + Assert.IsNotNull(request.Nameservers); + Assert.AreEqual(DnsZoneNameserversType.Standard, request.Nameservers.Type); + Assert.AreEqual(86400, request.NameserverTtl); + Assert.IsFalse(request.SecondaryOverrides); + Assert.IsNotNull(request.SOA); + Assert.AreEqual(604800, request.SOA.Expire); + Assert.AreEqual(1800, request.SOA.MinimumTtl); + Assert.AreEqual("ns1.example.org", request.SOA.PrimaryNameserver); + Assert.AreEqual(28800, request.SOA.Refresh); + Assert.AreEqual(3600, request.SOA.Retry); + Assert.AreEqual(43200, request.SOA.TimeToLive); + Assert.AreEqual("admin.example.org", request.SOA.ZoneAdministrator); + Assert.AreEqual(DnsZoneMode.Standard, request.ZoneMode); _clientMock.Verify(m => m.PatchAsync($"/zones/{ZoneId}/dns_settings", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -133,192 +135,192 @@ namespace Cloudflare.Dns.Tests.DnsZoneSettingsExtensions public async Task ShouldUpdateDnsSettingsNone() { // Arrange - var request = new UpdateDnsZoneSettingsRequest(ZoneId); + var req = new UpdateDnsZoneSettingsRequest(ZoneId); var client = GetClient(); // Act - var response = await client.UpdateDnsZoneSettings(request); + var response = await client.UpdateDnsZoneSettings(req, TestContext.CancellationTokenSource.Token); // Assert Assert.IsNotNull(response); Assert.IsTrue(response.Success); Assert.AreEqual(_response.Result, response.Result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/zones/{ZoneId}/dns_settings", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/dns_settings", requestPath); - Assert.IsNotNull(callback.Request); - Assert.IsNull(callback.Request.FlattenAllCnames); - Assert.IsNull(callback.Request.FoundationDns); - Assert.IsNull(callback.Request.MultiProvider); - Assert.IsNull(callback.Request.Nameservers); - Assert.IsNull(callback.Request.NameserverTtl); - Assert.IsNull(callback.Request.SecondaryOverrides); - Assert.IsNull(callback.Request.SOA); - Assert.IsNull(callback.Request.ZoneMode); + Assert.IsNotNull(request); + Assert.IsNull(request.FlattenAllCnames); + Assert.IsNull(request.FoundationDns); + Assert.IsNull(request.MultiProvider); + Assert.IsNull(request.Nameservers); + Assert.IsNull(request.NameserverTtl); + Assert.IsNull(request.SecondaryOverrides); + Assert.IsNull(request.SOA); + Assert.IsNull(request.ZoneMode); _clientMock.Verify(m => m.PatchAsync($"/zones/{ZoneId}/dns_settings", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidMode() { // Arrange _request.ZoneMode = 0; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidNameserverType() { // Arrange _request.Nameservers.Type = 0; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(29)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidNameserverTtl(int ttl) { // Arrange _request.NameserverTtl = ttl; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(86399)] [DataRow(2419201)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaExpire(int ttl) { // Arrange _request.SOA.Expire = ttl; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(59)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaMinimumTtl(int ttl) { // Arrange _request.SOA.MinimumTtl = ttl; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForMissingSoaNameserver(string nameserver) { // Arrange _request.SOA.PrimaryNameserver = nameserver; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(599)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaRefresh(int ttl) { // Arrange _request.SOA.Refresh = ttl; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(599)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaRetry(int ttl) { // Arrange _request.SOA.Retry = ttl; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(299)] [DataRow(86401)] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidSoaTtl(int ttl) { // Arrange _request.SOA.TimeToLive = ttl; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } [TestMethod] [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionForMissingSoaAdministrator(string admin) { // Arrange _request.SOA.ZoneAdministrator = admin; var client = GetClient(); - // Act - await client.UpdateDnsZoneSettings(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => + { + await client.UpdateDnsZoneSettings(_request, TestContext.CancellationTokenSource.Token); + }); } private ICloudflareClient GetClient()