diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 00000000..ca345cf2
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,9 @@
+
+
+
+ true
+
+
+
+
+
diff --git a/DnsClientX.Examples/DemoQuery.cs b/DnsClientX.Examples/DemoQuery.cs
index 105b39e8..354b7bc8 100644
--- a/DnsClientX.Examples/DemoQuery.cs
+++ b/DnsClientX.Examples/DemoQuery.cs
@@ -109,7 +109,7 @@ public static async Task ExampleSystemDns() {
public static async Task ExampleTLSA() {
var domains = "_25._tcp.mail.ietf.org";
- foreach (DnsEndpoint endpoint in Enum.GetValues(typeof(DnsEndpoint))) {
+ foreach (DnsEndpoint endpoint in Enum.GetValues()) {
HelpersSpectre.AddLine("QueryDns", domains, DnsRecordType.TLSA, endpoint);
var data = await ClientX.QueryDns(domains, DnsRecordType.TLSA, endpoint);
data.DisplayTable();
@@ -118,7 +118,7 @@ public static async Task ExampleTLSA() {
public static async Task ExampleDS() {
const string domain = "evotec.pl";
- foreach (DnsEndpoint endpoint in Enum.GetValues(typeof(DnsEndpoint))) {
+ foreach (DnsEndpoint endpoint in Enum.GetValues()) {
HelpersSpectre.AddLine("QueryDns", domain, DnsRecordType.DS, endpoint);
var data = await ClientX.QueryDns(domain, DnsRecordType.DS, endpoint);
data.DisplayTable();
@@ -127,7 +127,7 @@ public static async Task ExampleDS() {
public static async Task ExampleTXTAll() {
var domains = new[] { "disneyplus.com" };
- foreach (DnsEndpoint endpoint in Enum.GetValues(typeof(DnsEndpoint))) {
+ foreach (DnsEndpoint endpoint in Enum.GetValues()) {
HelpersSpectre.AddLine("QueryDns", "disneyplus.com", DnsRecordType.TXT, endpoint);
var data = await ClientX.QueryDns(domains, DnsRecordType.TXT, endpoint);
foreach (var d in data[0].Answers) {
@@ -197,7 +197,7 @@ public static async Task ExampleSPFQuad() {
Settings.Logger.WriteInformation(data.Answers[0].Data);
}
- foreach (DnsEndpoint endpoint in Enum.GetValues(typeof(DnsEndpoint))) {
+ foreach (DnsEndpoint endpoint in Enum.GetValues()) {
HelpersSpectre.AddLine("QueryDns", "disneyplus.com", DnsRecordType.SPF, endpoint);
using (var client1 = new ClientX(endpoint, DnsSelectionStrategy.First) {
Debug = false
diff --git a/DnsClientX.Examples/DemoResolveParallelDNSBL.cs b/DnsClientX.Examples/DemoResolveParallelDNSBL.cs
index b08f104c..7d3ae643 100644
--- a/DnsClientX.Examples/DemoResolveParallelDNSBL.cs
+++ b/DnsClientX.Examples/DemoResolveParallelDNSBL.cs
@@ -136,7 +136,7 @@ public static async Task Example() {
string ipAddress = "89.74.48.96";
// Reverse the IP address and append the DNSBL list
- string reversedIp = string.Join(".", ipAddress.Split('.').Reverse());
+ string reversedIp = string.Join(".", Enumerable.Reverse(ipAddress.Split('.')));
List queries = new List();
foreach (var dnsbl in dnsBlacklist) {
diff --git a/DnsClientX.Tests/CompareProvidersResolve.cs b/DnsClientX.Tests/CompareProvidersResolve.cs
index c7ccdc91..c4969cdc 100644
--- a/DnsClientX.Tests/CompareProvidersResolve.cs
+++ b/DnsClientX.Tests/CompareProvidersResolve.cs
@@ -49,7 +49,7 @@ public async Task CompareRecordsImproved(string name, DnsRecordType resourceReco
output.WriteLine($"Testing record: {name}, type: {resourceRecordType}");
var primaryEndpoint = DnsEndpoint.Cloudflare;
- var allEndpoints = Enum.GetValues(typeof(DnsEndpoint)).Cast()
+ var allEndpoints = EndpointTestHelpers.AllEndpoints()
.Where(e => e != primaryEndpoint && (excludedEndpoints == null || !excludedEndpoints.Contains(e)))
.ToArray();
@@ -216,7 +216,7 @@ public async Task CompareRecords(string name, DnsRecordType resourceRecordType,
using var Client = new ClientX(primaryEndpoint);
DnsResponse aAnswersPrimary = await Client.Resolve(name, resourceRecordType);
- foreach (var endpointCompare in Enum.GetValues(typeof(DnsEndpoint)).Cast()) {
+ foreach (var endpointCompare in EndpointTestHelpers.AllEndpoints()) {
if (endpointCompare == primaryEndpoint) {
continue;
}
diff --git a/DnsClientX.Tests/CompareProvidersResolveAll.cs b/DnsClientX.Tests/CompareProvidersResolveAll.cs
index a6ede44b..5075637e 100644
--- a/DnsClientX.Tests/CompareProvidersResolveAll.cs
+++ b/DnsClientX.Tests/CompareProvidersResolveAll.cs
@@ -39,7 +39,7 @@ public async Task CompareRecordsImproved(string name, DnsRecordType resourceReco
output.WriteLine($"Testing record: {name}, type: {resourceRecordType}");
var primaryEndpoint = DnsEndpoint.Cloudflare;
- var allEndpoints = Enum.GetValues(typeof(DnsEndpoint)).Cast()
+ var allEndpoints = EndpointTestHelpers.AllEndpoints()
.Where(e => e != primaryEndpoint && (excludedEndpoints == null || !excludedEndpoints.Contains(e)))
.ToArray();
@@ -193,7 +193,7 @@ public async Task CompareRecords(string name, DnsRecordType resourceRecordType,
using var Client = new ClientX(primaryEndpoint);
DnsAnswer[] aAnswersPrimary = await Client.ResolveAll(name, resourceRecordType);
- foreach (var endpointCompare in Enum.GetValues(typeof(DnsEndpoint)).Cast()) {
+ foreach (var endpointCompare in EndpointTestHelpers.AllEndpoints()) {
if (endpointCompare == primaryEndpoint) {
continue;
}
diff --git a/DnsClientX.Tests/CompareProvidersResolveFilter.cs b/DnsClientX.Tests/CompareProvidersResolveFilter.cs
index c475d9bf..ee7915d1 100644
--- a/DnsClientX.Tests/CompareProvidersResolveFilter.cs
+++ b/DnsClientX.Tests/CompareProvidersResolveFilter.cs
@@ -24,7 +24,7 @@ public async Task CompareRecordsImproved(string name, DnsRecordType resourceReco
string filter = "v=spf1";
var primaryEndpoint = DnsEndpoint.Cloudflare;
- var allEndpoints = Enum.GetValues(typeof(DnsEndpoint)).Cast()
+ var allEndpoints = EndpointTestHelpers.AllEndpoints()
.Where(e => e != primaryEndpoint && (excludedEndpoints == null || !excludedEndpoints.Contains(e)))
.ToArray();
@@ -166,7 +166,7 @@ public async Task CompareRecords(string name, DnsRecordType resourceRecordType,
using var Client = new ClientX(primaryEndpoint);
DnsResponse aAnswersPrimary = await Client.ResolveFilter(name, resourceRecordType, filter);
- foreach (var endpointCompare in Enum.GetValues(typeof(DnsEndpoint)).Cast()) {
+ foreach (var endpointCompare in EndpointTestHelpers.AllEndpoints()) {
if (endpointCompare == primaryEndpoint) {
continue;
}
@@ -262,7 +262,7 @@ public async Task CompareRecordsMulti(string[] names, DnsRecordType resourceReco
DnsResponse[] aAnswersPrimary = await Client.ResolveFilter(names, resourceRecordType, filter);
- foreach (var endpointCompare in Enum.GetValues(typeof(DnsEndpoint)).Cast()) {
+ foreach (var endpointCompare in EndpointTestHelpers.AllEndpoints()) {
if (endpointCompare == primaryEndpoint) {
continue;
}
diff --git a/DnsClientX.Tests/DebuggingHelpersTests.cs b/DnsClientX.Tests/DebuggingHelpersTests.cs
index 8c3e4153..a05e614b 100644
--- a/DnsClientX.Tests/DebuggingHelpersTests.cs
+++ b/DnsClientX.Tests/DebuggingHelpersTests.cs
@@ -1,3 +1,4 @@
+using System.Collections.Generic;
using System.IO;
using System.Reflection;
using Xunit;
@@ -9,10 +10,14 @@ namespace DnsClientX.Tests {
public class DebuggingHelpersTests {
private class CapturingLogger : InternalLogger {
public string? LastMessage { get; private set; }
+ public List Messages { get; } = new();
private readonly EventHandler _handler;
public CapturingLogger() {
- _handler = (_, e) => LastMessage = e.FullMessage;
+ _handler = (_, e) => {
+ LastMessage = e.FullMessage;
+ Messages.Add(e.FullMessage);
+ };
OnDebugMessage += _handler;
}
@@ -51,7 +56,7 @@ public void TroubleshootingDnsWire4_ReadsValueAndLogs() {
uint result = DebuggingHelpers.TroubleshootingDnsWire4(reader, "test");
logger.Freeze();
Assert.Equal(0x01020304u, result);
- Assert.Contains("01-02-03-04", logger.LastMessage);
+ Assert.Contains(logger.Messages, m => m.Contains("01-02-03-04"));
}
}
}
diff --git a/DnsClientX.Tests/DnsClientX.Tests.csproj b/DnsClientX.Tests/DnsClientX.Tests.csproj
index bf32834c..fb31f034 100644
--- a/DnsClientX.Tests/DnsClientX.Tests.csproj
+++ b/DnsClientX.Tests/DnsClientX.Tests.csproj
@@ -40,6 +40,10 @@
+
+
@@ -52,4 +56,4 @@
-
\ No newline at end of file
+
diff --git a/DnsClientX.Tests/DnsEndpointDescriptionTests.cs b/DnsClientX.Tests/DnsEndpointDescriptionTests.cs
index 5240a86a..ddd42aad 100644
--- a/DnsClientX.Tests/DnsEndpointDescriptionTests.cs
+++ b/DnsClientX.Tests/DnsEndpointDescriptionTests.cs
@@ -12,7 +12,7 @@ public class DnsEndpointDescriptionTests {
///
[Fact]
public void AllEndpointsHaveDescriptions() {
- foreach (DnsEndpoint ep in Enum.GetValues(typeof(DnsEndpoint))) {
+ foreach (DnsEndpoint ep in EndpointTestHelpers.AllEndpoints()) {
string desc = ep.GetDescription();
Assert.False(string.IsNullOrWhiteSpace(desc));
}
diff --git a/DnsClientX.Tests/DnsEndpointExtensionsTests.cs b/DnsClientX.Tests/DnsEndpointExtensionsTests.cs
index 9fed25be..c1e0c14f 100644
--- a/DnsClientX.Tests/DnsEndpointExtensionsTests.cs
+++ b/DnsClientX.Tests/DnsEndpointExtensionsTests.cs
@@ -13,7 +13,7 @@ public class DnsEndpointExtensionsTests {
[Fact]
public void GetAllWithDescriptions_ReturnsAllEndpoints() {
var all = DnsEndpointExtensions.GetAllWithDescriptions().ToList();
- int expectedCount = Enum.GetValues(typeof(DnsEndpoint)).Length;
+ int expectedCount = EndpointTestHelpers.AllEndpoints().Length;
Assert.Equal(expectedCount, all.Count);
Assert.All(all, pair => Assert.False(string.IsNullOrWhiteSpace(pair.Description)));
}
diff --git a/DnsClientX.Tests/DnsJsonDeserializeTests.cs b/DnsClientX.Tests/DnsJsonDeserializeTests.cs
index 6099c62c..d2e9bf84 100644
--- a/DnsClientX.Tests/DnsJsonDeserializeTests.cs
+++ b/DnsClientX.Tests/DnsJsonDeserializeTests.cs
@@ -19,7 +19,7 @@ public async Task Deserialize_ContentLengthZero_ThrowsException() {
Content = new ByteArrayContent(Array.Empty())
};
var ex = await Assert.ThrowsAsync(
- () => response.Deserialize