From ab510a85fc7e4c137f29cf84320a32e963bca0b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Fri, 8 Aug 2025 17:59:25 +0200 Subject: [PATCH] Updated ZONE unit tests to latest recommendations --- .../RegistrarExtensions/GetDomainTest.cs | 20 +++-- .../RegistrarExtensions/ListDomainsTest.cs | 12 +-- .../RegistrarExtensions/UpdateDomainTest.cs | 26 +++---- .../ZoneHoldsExtensions/CreateZoneHoldTest.cs | 34 +++++---- .../ZoneHoldsExtensions/GetZoneHoldTest.cs | 14 ++-- .../ZoneHoldsExtensions/RemoveZoneHoldTest.cs | 39 +++++----- .../ZoneHoldsExtensions/UpdateZoneHoldTest.cs | 18 +++-- .../AvailablePlanDetailsTest.cs | 12 +-- .../ListAvailablePlansTest.cs | 12 +-- .../ListAvailableRatePlansTest.cs | 12 +-- .../EditMultipleZoneSettingsTest.cs | 18 +++-- .../EditZoneSettingTest.cs | 37 +++++---- .../GetAllZoneSettingsTest.cs | 12 +-- .../GetZoneSettingTest.cs | 19 +++-- .../CreateZoneSubscriptionTest.cs | 16 ++-- .../UpdateZoneSubscriptionTest.cs | 16 ++-- .../ZoneSubscriptionDetailsTest.cs | 12 +-- .../ZonesExtensions/CreateZoneTest.cs | 25 +++---- .../ZonesExtensions/DeleteZoneTest.cs | 12 +-- .../ZonesExtensions/EditZoneTest.cs | 75 +++++++++---------- .../ZonesExtensions/ListZonesTest.cs | 46 ++++++------ .../RerunActivationCheckTest.cs | 12 +-- .../ZonesExtensions/ZoneDetailsTest.cs | 12 +-- 23 files changed, 265 insertions(+), 246 deletions(-) diff --git a/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/GetDomainTest.cs b/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/GetDomainTest.cs index ad82eca..a206ffa 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/GetDomainTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/GetDomainTest.cs @@ -11,8 +11,9 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions [TestClass] public class GetDomainTest { - private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string DomainName = "example.com"; private Mock _clientMock; @@ -36,16 +37,16 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions var client = GetClient(); // Act - var result = await client.GetDomain(AccountId, DomainName); + var result = await client.GetDomain(AccountId, DomainName, TestContext.CancellationTokenSource.Token); // Assert Assert.AreEqual(_response, result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/registrar/domains/{DomainName}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/registrar/domains/{DomainName}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/accounts/{AccountId}/registrar/domains/{DomainName}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -55,16 +56,13 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionOnDomainName(string domainName) { // Arrange var client = GetClient(); - // Act - var result = await client.GetDomain(AccountId, domainName); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.GetDomain(AccountId, domainName, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/ListDomainsTest.cs b/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/ListDomainsTest.cs index 1b988c4..18220e3 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/ListDomainsTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/ListDomainsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions [TestClass] public class ListDomainsTest { + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -33,16 +35,16 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions var client = GetClient(); // Act - var result = await client.ListDomains(AccountId); + var result = await client.ListDomains(AccountId, TestContext.CancellationTokenSource.Token); // Assert Assert.AreEqual(_response, result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/registrar/domains", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/registrar/domains", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>($"/accounts/{AccountId}/registrar/domains", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/UpdateDomainTest.cs b/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/UpdateDomainTest.cs index cfe66f3..96a0a85 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/UpdateDomainTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/RegistrarExtensions/UpdateDomainTest.cs @@ -12,8 +12,9 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions [TestClass] public class UpdateDomainTest { - private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; + public TestContext TestContext { get; set; } + private const string AccountId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string DomainName = "example.com"; private Mock _clientMock; @@ -45,20 +46,20 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions var client = GetClient(); // Act - var result = await client.UpdateDomain(_request); + var result = await client.UpdateDomain(_request, TestContext.CancellationTokenSource.Token); // Assert Assert.AreEqual(_response, result); - Assert.AreEqual(1, _callbacks.Count); + Assert.HasCount(1, _callbacks); - var callback = _callbacks.First(); - Assert.AreEqual($"/accounts/{AccountId}/registrar/domains/{DomainName}", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/accounts/{AccountId}/registrar/domains/{DomainName}", requestPath); - Assert.IsNotNull(callback.Request); - Assert.AreEqual(_request.AutoRenew, callback.Request.AutoRenew); - Assert.AreEqual(_request.Locked, callback.Request.Locked); - Assert.AreEqual(_request.Privacy, callback.Request.Privacy); + Assert.IsNotNull(request); + Assert.AreEqual(_request.AutoRenew, request.AutoRenew); + Assert.AreEqual(_request.Locked, request.Locked); + Assert.AreEqual(_request.Privacy, request.Privacy); _clientMock.Verify(m => m.PutAsync($"/accounts/{AccountId}/registrar/domains/{DomainName}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -68,17 +69,14 @@ namespace Cloudflare.Zones.Tests.RegistrarExtensions [DataRow(null)] [DataRow("")] [DataRow(" ")] - [ExpectedException(typeof(ArgumentNullException))] public async Task ShouldThrowArgumentNullExceptionOnDomainName(string domainName) { // Arrange _request.DomainName = domainName; var client = GetClient(); - // Act - var result = await client.UpdateDomain(_request); - - // Assert - ArgumentNullException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.UpdateDomain(_request, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/CreateZoneHoldTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/CreateZoneHoldTest.cs index 0ff160c..59b987c 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/CreateZoneHoldTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/CreateZoneHoldTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions [TestClass] public class CreateZoneHoldTest { + public TestContext TestContext { get; set; } + private readonly DateTime _date = new(2025, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; @@ -54,21 +56,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions var client = GetClient(); // Act - var response = await client.CreateZoneHold(_request); + var response = await client.CreateZoneHold(_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}/hold", callback.RequestPath); - Assert.IsNotNull(callback.QueryFilter); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath); + Assert.IsNotNull(queryFilter); - Assert.IsInstanceOfType(callback.QueryFilter); - Assert.IsNull(((InternalCreateZoneHoldFilter)callback.QueryFilter).IncludeSubdomains); + Assert.IsInstanceOfType(queryFilter); + Assert.IsNull(((InternalCreateZoneHoldFilter)queryFilter).IncludeSubdomains); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/hold", null, It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -82,21 +84,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions var client = GetClient(); // Act - var response = await client.CreateZoneHold(_request); + var response = await client.CreateZoneHold(_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}/hold", callback.RequestPath); - Assert.IsNotNull(callback.QueryFilter); + var (requestPath, request, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath); + Assert.IsNotNull(queryFilter); - Assert.IsInstanceOfType(callback.QueryFilter); - Assert.IsTrue(((InternalCreateZoneHoldFilter)callback.QueryFilter).IncludeSubdomains); + Assert.IsInstanceOfType(queryFilter); + Assert.IsTrue(((InternalCreateZoneHoldFilter)queryFilter).IncludeSubdomains); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/hold", null, It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -113,7 +115,7 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -129,7 +131,7 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(1, dict.Count); + Assert.HasCount(1, dict); Assert.IsTrue(dict.ContainsKey("include_subdomains")); Assert.AreEqual(includeSubdomains.ToString().ToLower(), dict["include_subdomains"]); } diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/GetZoneHoldTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/GetZoneHoldTest.cs index a69a0d2..0e81361 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/GetZoneHoldTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/GetZoneHoldTest.cs @@ -10,7 +10,9 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions [TestClass] public class GetZoneHoldTest { - private readonly DateTime _date = new DateTime(2024, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); + public TestContext TestContext { get; set; } + + private readonly DateTime _date = new(2024, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -49,18 +51,18 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions var client = GetClient(); // Act - var response = await client.GetZoneHold(ZoneId); + var response = await client.GetZoneHold(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}/hold", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/hold", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/RemoveZoneHoldTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/RemoveZoneHoldTest.cs index 56faf16..41fd5cf 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/RemoveZoneHoldTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/RemoveZoneHoldTest.cs @@ -11,8 +11,9 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions [TestClass] public class RemoveZoneHoldTest { - // Local: Europe/Berlin (Germany) - [CEST +2] | CET +1 - private readonly DateTime _date = new(2025, 10, 10, 20, 30, 40, 0, DateTimeKind.Unspecified); + public TestContext TestContext { get; set; } + + private readonly DateTime _date = new(2025, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -55,21 +56,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions var client = GetClient(); // Act - var response = await client.RemoveZoneHold(_request); + var response = await client.RemoveZoneHold(_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}/hold", callback.RequestPath); - Assert.IsNotNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath); + Assert.IsNotNull(queryFilter); - Assert.IsInstanceOfType(callback.QueryFilter); - Assert.IsNull(((InternalRemoveZoneHoldFilter)callback.QueryFilter).HoldAfter); + Assert.IsInstanceOfType(queryFilter); + Assert.IsNull(((InternalRemoveZoneHoldFilter)queryFilter).HoldAfter); _clientMock.Verify(m => m.DeleteAsync($"/zones/{ZoneId}/hold", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -83,21 +84,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions var client = GetClient(); // Act - var response = await client.RemoveZoneHold(_request); + var response = await client.RemoveZoneHold(_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}/hold", callback.RequestPath); - Assert.IsNotNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath); + Assert.IsNotNull(queryFilter); - Assert.IsInstanceOfType(callback.QueryFilter); - Assert.AreEqual(_date, ((InternalRemoveZoneHoldFilter)callback.QueryFilter).HoldAfter); + Assert.IsInstanceOfType(queryFilter); + Assert.AreEqual(_date, ((InternalRemoveZoneHoldFilter)queryFilter).HoldAfter); _clientMock.Verify(m => m.DeleteAsync($"/zones/{ZoneId}/hold", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -114,7 +115,7 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -128,9 +129,9 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(1, dict.Count); + Assert.HasCount(1, dict); Assert.IsTrue(dict.ContainsKey("hold_after")); - Assert.AreEqual("2025-10-10T18:30:40Z", dict["hold_after"]); + Assert.AreEqual("2025-10-10T20:30:40Z", dict["hold_after"]); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/UpdateZoneHoldTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/UpdateZoneHoldTest.cs index 9462c48..f0ff98f 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/UpdateZoneHoldTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneHoldsExtensions/UpdateZoneHoldTest.cs @@ -11,7 +11,9 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions [TestClass] public class UpdateZoneHoldTest { - private readonly DateTime _date = new DateTime(2024, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); + public TestContext TestContext { get; set; } + + private readonly DateTime _date = new(2024, 10, 10, 20, 30, 40, 0, DateTimeKind.Utc); private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -58,21 +60,21 @@ namespace Cloudflare.Zones.Tests.ZoneHoldsExtensions var client = GetClient(); // Act - var response = await client.UpdateZoneHold(_request); + var response = await client.UpdateZoneHold(_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}/hold", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/hold", requestPath); - Assert.IsNotNull(callback.Request); - Assert.AreEqual(_date, callback.Request.HoldAfter); - Assert.IsTrue(callback.Request.IncludeSubdomains); + Assert.IsNotNull(request); + Assert.AreEqual(_date, request.HoldAfter); + Assert.IsTrue(request.IncludeSubdomains); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/AvailablePlanDetailsTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/AvailablePlanDetailsTest.cs index 83aa3ef..dd1b049 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/AvailablePlanDetailsTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/AvailablePlanDetailsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions [TestClass] public class AvailablePlanDetailsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private const string PlanId = "023e105f4ecef8ad9ca31a8372d0c354"; @@ -44,18 +46,18 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions var client = GetClient(); // Act - var response = await client.AvailablePlanDetails(ZoneId, PlanId); + var response = await client.AvailablePlanDetails(ZoneId, PlanId, 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}/available_plans/{PlanId}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/available_plans/{PlanId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/available_plans/{PlanId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailablePlansTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailablePlansTest.cs index 81fbcb4..627267c 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailablePlansTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailablePlansTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions [TestClass] public class ListAvailablePlansTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -43,18 +45,18 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions var client = GetClient(); // Act - var response = await client.ListAvailablePlans(ZoneId); + var response = await client.ListAvailablePlans(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}/available_plans", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/available_plans", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>($"/zones/{ZoneId}/available_plans", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailableRatePlansTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailableRatePlansTest.cs index ffc917d..a03175a 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailableRatePlansTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonePlansExtensions/ListAvailableRatePlansTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions [TestClass] public class ListAvailableRatePlansTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -43,18 +45,18 @@ namespace Cloudflare.Zones.Tests.ZonePlansExtensions var client = GetClient(); // Act - var response = await client.ListAvailableRatePlans(ZoneId); + var response = await client.ListAvailableRatePlans(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}/available_rate_plans", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/available_rate_plans", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/available_rate_plans", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditMultipleZoneSettingsTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditMultipleZoneSettingsTest.cs index 209fa52..892350f 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditMultipleZoneSettingsTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditMultipleZoneSettingsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions [TestClass] public class EditMultipleZoneSettingsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -57,7 +59,7 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions // Act #pragma warning disable CS0618 - var response = await client.EditMultipleZoneSettings(_request); + var response = await client.EditMultipleZoneSettings(_request, TestContext.CancellationTokenSource.Token); #pragma warning restore CS0618 // Assert @@ -65,16 +67,16 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions 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}/settings", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/settings", requestPath); - Assert.IsNotNull(callback.Request); - Assert.AreEqual(2, callback.Request.Count); + Assert.IsNotNull(request); + Assert.HasCount(2, request); - Assert.IsInstanceOfType(callback.Request.First()); - Assert.IsInstanceOfType(callback.Request.Last()); + Assert.IsInstanceOfType(request.First()); + Assert.IsInstanceOfType(request.Last()); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditZoneSettingTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditZoneSettingTest.cs index 03dab75..a795b16 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditZoneSettingTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/EditZoneSettingTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions [TestClass] public class EditZoneSettingTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -51,21 +53,21 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions var client = GetClient(); // Act - var response = await client.EditZoneSetting(_request); + var response = await client.EditZoneSetting(_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}/settings/ssl", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", requestPath); - Assert.IsNotNull(callback.Request); - Assert.AreEqual("origin_pull", callback.Request["value"]); - Assert.IsFalse(callback.Request.ContainsKey("enabled")); + Assert.IsNotNull(request); + Assert.AreEqual("origin_pull", request["value"]); + Assert.IsFalse(request.ContainsKey("enabled")); } [TestMethod] @@ -78,35 +80,32 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions var client = GetClient(); // Act - var response = await client.EditZoneSetting(_request); + var response = await client.EditZoneSetting(_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}/settings/ssl", callback.RequestPath); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", requestPath); - Assert.IsNotNull(callback.Request); - Assert.AreEqual(enabled, callback.Request["enabled"]); - Assert.IsFalse(callback.Request.ContainsKey("value")); + Assert.IsNotNull(request); + Assert.AreEqual(enabled, request["enabled"]); + Assert.IsFalse(request.ContainsKey("value")); } [TestMethod] - [ExpectedException(typeof(ArgumentException))] public async Task ShouldThrowArgumentException() { // Arrange var request = new EditZoneSettingRequest(ZoneId, new TestSetting()); var client = GetClient(); - // Act - var response = await client.EditZoneSetting(request); - - // Assert - ArgumentException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.EditZoneSetting(request, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetAllZoneSettingsTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetAllZoneSettingsTest.cs index e5931de..06d016c 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetAllZoneSettingsTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetAllZoneSettingsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions [TestClass] public class GetAllZoneSettingsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -47,7 +49,7 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions // Act #pragma warning disable CS0618 - var response = await client.GetAllZoneSettings(ZoneId); + var response = await client.GetAllZoneSettings(ZoneId, TestContext.CancellationTokenSource.Token); #pragma warning restore CS0618 // Assert @@ -55,11 +57,11 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions 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}/settings", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/settings", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>($"/zones/{ZoneId}/settings", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetZoneSettingTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetZoneSettingTest.cs index 05d3af6..55445cf 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetZoneSettingTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSettingsExtensions/GetZoneSettingTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions [TestClass] public class GetZoneSettingTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -43,34 +45,31 @@ namespace Cloudflare.Zones.Tests.ZoneSettingsExtensions var client = GetClient(); // Act - var response = await client.GetZoneSetting(ZoneId); + var response = await client.GetZoneSetting(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}/settings/ssl", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/settings/ssl", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/settings/ssl", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); } [TestMethod] - [ExpectedException(typeof(ArgumentException))] public async Task ShouldThrowArgumentException() { // Arrange var client = GetClient(); - // Act - var response = await client.GetZoneSetting(ZoneId); - - // Assert - ArgumentException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.GetZoneSetting(ZoneId, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/CreateZoneSubscriptionTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/CreateZoneSubscriptionTest.cs index ce343ef..e320372 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/CreateZoneSubscriptionTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/CreateZoneSubscriptionTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions [TestClass] public class CreateZoneSubscriptionTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -56,21 +58,21 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions var client = GetClient(); // Act - var response = await client.CreateZoneSubscription(_request); + var response = await client.CreateZoneSubscription(_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}/subscription", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/subscription", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(_request.Frequency, callback.Request.Frequency); - Assert.AreEqual(_request.RatePlan, callback.Request.RatePlan); + Assert.AreEqual(_request.Frequency, request.Frequency); + Assert.AreEqual(_request.RatePlan, request.RatePlan); _clientMock.Verify(m => m.PostAsync($"/zones/{ZoneId}/subscription", It.IsAny(), null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/UpdateZoneSubscriptionTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/UpdateZoneSubscriptionTest.cs index e416152..f9fae40 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/UpdateZoneSubscriptionTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/UpdateZoneSubscriptionTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions [TestClass] public class UpdateZoneSubscriptionTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -56,21 +58,21 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions var client = GetClient(); // Act - var response = await client.UpdateZoneSubscription(_request); + var response = await client.UpdateZoneSubscription(_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}/subscription", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/subscription", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(_request.Frequency, callback.Request.Frequency); - Assert.AreEqual(_request.RatePlan, callback.Request.RatePlan); + Assert.AreEqual(_request.Frequency, request.Frequency); + Assert.AreEqual(_request.RatePlan, request.RatePlan); _clientMock.Verify(m => m.PutAsync($"/zones/{ZoneId}/subscription", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/ZoneSubscriptionDetailsTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/ZoneSubscriptionDetailsTest.cs index 1cedbea..809bf27 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/ZoneSubscriptionDetailsTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZoneSubscriptionsExtensions/ZoneSubscriptionDetailsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions [TestClass] public class ZoneSubscriptionDetailsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -43,18 +45,18 @@ namespace Cloudflare.Zones.Tests.ZoneSubscriptionsExtensions var client = GetClient(); // Act - var response = await client.ZoneSubscriptionDetails(ZoneId); + var response = await client.ZoneSubscriptionDetails(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}/subscription", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/subscription", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}/subscription", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/CreateZoneTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/CreateZoneTest.cs index 81292c7..d758980 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/CreateZoneTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/CreateZoneTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions [TestClass] public class CreateZoneTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -105,39 +107,36 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.CreateZone(_request); + var response = await client.CreateZone(_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", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual("/zones", requestPath); + Assert.IsNotNull(request); - Assert.AreEqual(_request.AccountId, callback.Request.Account.Id); - Assert.AreEqual(_request.Name, callback.Request.Name); - Assert.AreEqual(_request.Type, callback.Request.Type); + Assert.AreEqual(_request.AccountId, request.Account.Id); + Assert.AreEqual(_request.Name, request.Name); + Assert.AreEqual(_request.Type, request.Type); _clientMock.Verify(m => m.PostAsync("/zones", It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionOnInvalidType() { // Arrange _request.Type = 0; var client = GetClient(); - // Act - await client.CreateZone(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.CreateZone(_request, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/DeleteZoneTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/DeleteZoneTest.cs index e002312..976bcfd 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/DeleteZoneTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/DeleteZoneTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions [TestClass] public class DeleteZoneTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -46,18 +48,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.DeleteZone(ZoneId); + var response = await client.DeleteZone(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}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.DeleteAsync($"/zones/{ZoneId}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/EditZoneTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/EditZoneTest.cs index 19fd96e..5cd3bed 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/EditZoneTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/EditZoneTest.cs @@ -11,6 +11,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions [TestClass] public class EditZoneTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -104,22 +106,22 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.EditZone(_request); + var response = await client.EditZone(_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}", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}", requestPath); + Assert.IsNotNull(request); - Assert.IsTrue(callback.Request.Paused); - Assert.IsNull(callback.Request.Type); - Assert.IsNull(callback.Request.VanityNameServers); + Assert.IsTrue(request.Paused); + Assert.IsNull(request.Type); + Assert.IsNull(request.VanityNameServers); _clientMock.Verify(m => m.PatchAsync($"/zones/{ZoneId}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -134,22 +136,22 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.EditZone(_request); + var response = await client.EditZone(_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}", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}", requestPath); + Assert.IsNotNull(request); - Assert.IsNull(callback.Request.Paused); - Assert.AreEqual(_request.Type.Value, callback.Request.Type.Value); - Assert.IsNull(callback.Request.VanityNameServers); + Assert.IsNull(request.Paused); + Assert.AreEqual(_request.Type.Value, request.Type.Value); + Assert.IsNull(request.VanityNameServers); _clientMock.Verify(m => m.PatchAsync($"/zones/{ZoneId}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -165,59 +167,52 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.EditZone(_request); + var response = await client.EditZone(_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}", callback.RequestPath); - Assert.IsNotNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}", requestPath); + Assert.IsNotNull(request); - Assert.IsNull(callback.Request.Paused); - Assert.IsNull(callback.Request.Type); - Assert.AreEqual(2, callback.Request.VanityNameServers.Count); - Assert.IsTrue(callback.Request.VanityNameServers.Contains("ns1.example.org")); - Assert.IsTrue(callback.Request.VanityNameServers.Contains("ns2.example.org")); + Assert.IsNull(request.Paused); + Assert.IsNull(request.Type); + Assert.HasCount(2, request.VanityNameServers); + Assert.IsTrue(request.VanityNameServers.Contains("ns1.example.org")); + Assert.IsTrue(request.VanityNameServers.Contains("ns2.example.org")); _clientMock.Verify(m => m.PatchAsync($"/zones/{ZoneId}", It.IsAny(), It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); } [TestMethod] - [ExpectedException(typeof(CloudflareException))] public async Task ShouldThrowCloudflareExceptionOnMultiplePropertiesSet1() { // Arrange _request.VanityNameServers = null; var client = GetClient(); - // Act - await client.EditZone(_request); - - // Assert - CloudflareException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.EditZone(_request, TestContext.CancellationTokenSource.Token)); } [TestMethod] - [ExpectedException(typeof(CloudflareException))] public async Task ShouldThrowCloudflareExceptionOnMultiplePropertiesSet2() { // Arrange _request.Paused = null; var client = GetClient(); - // Act - await client.EditZone(_request); - - // Assert - CloudflareException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.EditZone(_request, TestContext.CancellationTokenSource.Token)); } [TestMethod] - [ExpectedException(typeof(ArgumentOutOfRangeException))] public async Task ShouldThrowArgumentOutOfRangeExceptionForInvalidType() { // Arrange @@ -226,10 +221,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions _request.VanityNameServers = null; var client = GetClient(); - // Act - await client.EditZone(_request); - - // Assert - ArgumentOutOfRangeException + // Act & Assert + await Assert.ThrowsExactlyAsync(async () => await client.EditZone(_request, TestContext.CancellationTokenSource.Token)); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ListZonesTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ListZonesTest.cs index f67ac3b..c98175d 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ListZonesTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ListZonesTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions [TestClass] public class ListZonesTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -102,18 +104,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.ListZones(); + var response = await client.ListZones(cancellationToken: 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", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual("/zones", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync>("/zones", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -131,18 +133,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.ListZones(filter); + var response = await client.ListZones(filter, 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", callback.RequestPath); - Assert.AreEqual(filter, callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual("/zones", requestPath); + Assert.AreEqual(filter, queryFilter); _clientMock.Verify(m => m.GetAsync>("/zones", filter, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); @@ -159,7 +161,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -184,7 +186,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(9, dict.Count); + Assert.HasCount(9, dict); Assert.IsTrue(dict.ContainsKey("account.id")); Assert.IsTrue(dict.ContainsKey("account.name")); @@ -224,7 +226,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -244,7 +246,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -261,7 +263,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -278,7 +280,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -294,11 +296,11 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions }; // Act - var dict = new Dictionary(); + var dict = filter.GetQueryParameters(); // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -315,7 +317,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -332,7 +334,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -351,7 +353,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } [TestMethod] @@ -368,7 +370,7 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions // Assert Assert.IsNotNull(dict); - Assert.AreEqual(0, dict.Count); + Assert.IsEmpty(dict); } private ICloudflareClient GetClient() diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/RerunActivationCheckTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/RerunActivationCheckTest.cs index 488c163..26bb2ea 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/RerunActivationCheckTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/RerunActivationCheckTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions [TestClass] public class RerunActivationCheckTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -46,18 +48,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.RerunActivationCheck(ZoneId); + var response = await client.RerunActivationCheck(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}/activation_check", callback.RequestPath); - Assert.IsNull(callback.Request); + var (requestPath, request) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}/activation_check", requestPath); + Assert.IsNull(request); _clientMock.Verify(m => m.PutAsync($"/zones/{ZoneId}/activation_check", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls(); diff --git a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ZoneDetailsTest.cs b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ZoneDetailsTest.cs index fc435db..dcfc6a0 100644 --- a/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ZoneDetailsTest.cs +++ b/test/Extensions/Cloudflare.Zones.Tests/ZonesExtensions/ZoneDetailsTest.cs @@ -10,6 +10,8 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions [TestClass] public class ZoneDetailsTest { + public TestContext TestContext { get; set; } + private const string ZoneId = "023e105f4ecef8ad9ca31a8372d0c353"; private Mock _clientMock; @@ -92,18 +94,18 @@ namespace Cloudflare.Zones.Tests.ZonesExtensions var client = GetClient(); // Act - var response = await client.ZoneDetails(ZoneId); + var response = await client.ZoneDetails(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}", callback.RequestPath); - Assert.IsNull(callback.QueryFilter); + var (requestPath, queryFilter) = _callbacks.First(); + Assert.AreEqual($"/zones/{ZoneId}", requestPath); + Assert.IsNull(queryFilter); _clientMock.Verify(m => m.GetAsync($"/zones/{ZoneId}", null, It.IsAny()), Times.Once); _clientMock.VerifyNoOtherCalls();