diff --git a/Source/aweXpect.Core/Core/IStringMatchType.cs b/Source/aweXpect.Core/Core/IStringMatchType.cs
index 7ece644d9..d17d0ba06 100644
--- a/Source/aweXpect.Core/Core/IStringMatchType.cs
+++ b/Source/aweXpect.Core/Core/IStringMatchType.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Threading.Tasks;
namespace aweXpect.Core;
@@ -11,7 +12,12 @@ public interface IStringMatchType
/// Returns if the two strings and are
/// considered equal; otherwise .
///
- bool AreConsideredEqual(string? actual, string? expected,
+#if NET8_0_OR_GREATER
+ ValueTask
+#else
+ Task
+#endif
+ AreConsideredEqual(string? actual, string? expected,
bool ignoreCase,
IEqualityComparer comparer);
diff --git a/Source/aweXpect.Core/Options/StringEqualityOptions.ExactMatchType.cs b/Source/aweXpect.Core/Options/StringEqualityOptions.ExactMatchType.cs
index a6ddd8aa0..097b437b5 100644
--- a/Source/aweXpect.Core/Options/StringEqualityOptions.ExactMatchType.cs
+++ b/Source/aweXpect.Core/Options/StringEqualityOptions.ExactMatchType.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Threading.Tasks;
using aweXpect.Core;
using aweXpect.Core.Helpers;
@@ -96,20 +97,37 @@ public string GetExtendedFailure(string it, string? actual, string? expected,
}
///
- public bool AreConsideredEqual(string? actual, string? expected, bool ignoreCase,
+#if NET8_0_OR_GREATER
+ public ValueTask
+#else
+ public Task
+#endif
+ AreConsideredEqual(string? actual, string? expected, bool ignoreCase,
IEqualityComparer comparer)
{
if (actual is null && expected is null)
{
- return true;
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(true);
+#else
+ return Task.FromResult(true);
+#endif
}
if (actual is null || expected is null)
{
- return false;
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(false);
+#else
+ return Task.FromResult(false);
+#endif
}
- return comparer.Equals(actual, expected);
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(comparer.Equals(actual, expected));
+#else
+ return Task.FromResult(comparer.Equals(actual, expected));
+#endif
}
///
diff --git a/Source/aweXpect.Core/Options/StringEqualityOptions.PrefixMatchType.cs b/Source/aweXpect.Core/Options/StringEqualityOptions.PrefixMatchType.cs
index b2e8dcc24..d8fc5d331 100644
--- a/Source/aweXpect.Core/Options/StringEqualityOptions.PrefixMatchType.cs
+++ b/Source/aweXpect.Core/Options/StringEqualityOptions.PrefixMatchType.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Threading.Tasks;
using aweXpect.Core;
using aweXpect.Core.Helpers;
@@ -83,20 +84,37 @@ public string GetExtendedFailure(string it, string? actual, string? expected,
}
///
- public bool AreConsideredEqual(string? actual, string? expected, bool ignoreCase,
+#if NET8_0_OR_GREATER
+ public ValueTask
+#else
+ public Task
+#endif
+ AreConsideredEqual(string? actual, string? expected, bool ignoreCase,
IEqualityComparer comparer)
{
if (actual is null && expected is null)
{
- return true;
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(true);
+#else
+ return Task.FromResult(true);
+#endif
}
if (actual is null || expected is null)
{
- return false;
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(false);
+#else
+ return Task.FromResult(false);
+#endif
}
- return actual.Length >= expected.Length && comparer.Equals(actual[..expected.Length], expected);
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(actual.Length >= expected.Length && comparer.Equals(actual[..expected.Length], expected));
+#else
+ return Task.FromResult(actual.Length >= expected.Length && comparer.Equals(actual[..expected.Length], expected));
+#endif
}
///
diff --git a/Source/aweXpect.Core/Options/StringEqualityOptions.RegexMatchType.cs b/Source/aweXpect.Core/Options/StringEqualityOptions.RegexMatchType.cs
index f77ed5f91..9aefa41f6 100644
--- a/Source/aweXpect.Core/Options/StringEqualityOptions.RegexMatchType.cs
+++ b/Source/aweXpect.Core/Options/StringEqualityOptions.RegexMatchType.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Text.RegularExpressions;
+using System.Threading.Tasks;
using aweXpect.Core;
using aweXpect.Core.Helpers;
@@ -40,12 +41,21 @@ public string GetExtendedFailure(string it, string? actual, string? expected,
}
///
- public bool AreConsideredEqual(string? actual, string? expected, bool ignoreCase,
+#if NET8_0_OR_GREATER
+ public ValueTask
+#else
+ public Task
+#endif
+ AreConsideredEqual(string? actual, string? expected, bool ignoreCase,
IEqualityComparer comparer)
{
if (actual is null || expected is null)
{
- return false;
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(false);
+#else
+ return Task.FromResult(false);
+#endif
}
RegexOptions options = RegexOptions.Multiline;
@@ -54,7 +64,11 @@ public bool AreConsideredEqual(string? actual, string? expected, bool ignoreCase
options |= RegexOptions.IgnoreCase;
}
- return Regex.IsMatch(actual, expected, options, RegexTimeout);
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(Regex.IsMatch(actual, expected, options, RegexTimeout));
+#else
+ return Task.FromResult(Regex.IsMatch(actual, expected, options, RegexTimeout));
+#endif
}
///
diff --git a/Source/aweXpect.Core/Options/StringEqualityOptions.SuffixMatchType.cs b/Source/aweXpect.Core/Options/StringEqualityOptions.SuffixMatchType.cs
index 289080e5b..79152bb4f 100644
--- a/Source/aweXpect.Core/Options/StringEqualityOptions.SuffixMatchType.cs
+++ b/Source/aweXpect.Core/Options/StringEqualityOptions.SuffixMatchType.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Threading.Tasks;
using aweXpect.Core;
using aweXpect.Core.Helpers;
@@ -90,20 +91,37 @@ public string GetExtendedFailure(string it, string? actual, string? expected,
}
///
- public bool AreConsideredEqual(string? actual, string? expected, bool ignoreCase,
+#if NET8_0_OR_GREATER
+ public ValueTask
+#else
+ public Task
+#endif
+ AreConsideredEqual(string? actual, string? expected, bool ignoreCase,
IEqualityComparer comparer)
{
if (actual is null && expected is null)
{
- return true;
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(true);
+#else
+ return Task.FromResult(true);
+#endif
}
if (actual is null || expected is null)
{
- return false;
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(false);
+#else
+ return Task.FromResult(false);
+#endif
}
- return actual.Length >= expected.Length && comparer.Equals(actual[^expected.Length..], expected);
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(actual.Length >= expected.Length && comparer.Equals(actual[^expected.Length..], expected));
+#else
+ return Task.FromResult(actual.Length >= expected.Length && comparer.Equals(actual[^expected.Length..], expected));
+#endif
}
///
diff --git a/Source/aweXpect.Core/Options/StringEqualityOptions.WildcardMatchType.cs b/Source/aweXpect.Core/Options/StringEqualityOptions.WildcardMatchType.cs
index 237e646e5..3240338ea 100644
--- a/Source/aweXpect.Core/Options/StringEqualityOptions.WildcardMatchType.cs
+++ b/Source/aweXpect.Core/Options/StringEqualityOptions.WildcardMatchType.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Text.RegularExpressions;
+using System.Threading.Tasks;
using aweXpect.Core;
using aweXpect.Core.Helpers;
@@ -49,20 +50,34 @@ public string GetExtendedFailure(string it, string? actual, string? expected,
}
///
- public bool AreConsideredEqual(string? actual, string? expected, bool ignoreCase,
+#if NET8_0_OR_GREATER
+ public ValueTask
+#else
+ public Task
+#endif
+ AreConsideredEqual(string? actual, string? expected, bool ignoreCase,
IEqualityComparer comparer)
{
if (actual is null || expected is null)
{
- return false;
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(false);
+#else
+ return Task.FromResult(false);
+#endif
}
RegexOptions options = ignoreCase
? RegexOptions.Multiline | RegexOptions.IgnoreCase
: RegexOptions.Multiline;
- return Regex.IsMatch(actual, WildcardToRegularExpression(expected), options,
- RegexTimeout);
+#if NET8_0_OR_GREATER
+ return ValueTask.FromResult(Regex.IsMatch(actual, WildcardToRegularExpression(expected), options,
+ RegexTimeout));
+#else
+ return Task.FromResult(Regex.IsMatch(actual, WildcardToRegularExpression(expected), options,
+ RegexTimeout));
+#endif
}
///
diff --git a/Source/aweXpect.Core/Options/StringEqualityOptions.cs b/Source/aweXpect.Core/Options/StringEqualityOptions.cs
index c322ee66f..dcfdd3afe 100644
--- a/Source/aweXpect.Core/Options/StringEqualityOptions.cs
+++ b/Source/aweXpect.Core/Options/StringEqualityOptions.cs
@@ -24,21 +24,17 @@ public partial class StringEqualityOptions : IOptionsEquality
///
#if NET8_0_OR_GREATER
- public ValueTask AreConsideredEqual(string? actual, TExpected expected)
+ public async ValueTask AreConsideredEqual(string? actual, TExpected expected)
#else
- public Task AreConsideredEqual(string? actual, TExpected expected)
+ public async Task AreConsideredEqual(string? actual, TExpected expected)
#endif
{
bool result;
if (expected is not string expectedString)
{
- result = _matchType.AreConsideredEqual(actual, null, _ignoreCase,
+ result = await _matchType.AreConsideredEqual(actual, null, _ignoreCase,
_comparer ?? UseDefaultComparer(_ignoreCase));
-#if NET8_0_OR_GREATER
- return ValueTask.FromResult(result);
-#else
- return Task.FromResult(result);
-#endif
+ return result;
}
if (_ignoreNewlineStyle)
@@ -59,13 +55,9 @@ public Task AreConsideredEqual(string? actual, TExpected expect
expectedString = expectedString.TrimEnd();
}
- result = _matchType.AreConsideredEqual(actual, expectedString, _ignoreCase,
+ result = await _matchType.AreConsideredEqual(actual, expectedString, _ignoreCase,
_comparer ?? UseDefaultComparer(_ignoreCase));
-#if NET8_0_OR_GREATER
- return ValueTask.FromResult(result);
-#else
- return Task.FromResult(result);
-#endif
+ return result;
}
///
diff --git a/Tests/aweXpect.Core.Api.Tests/Expected/aweXpect.Core_net8.0.txt b/Tests/aweXpect.Core.Api.Tests/Expected/aweXpect.Core_net8.0.txt
index 600fa446c..51da5f14f 100644
--- a/Tests/aweXpect.Core.Api.Tests/Expected/aweXpect.Core_net8.0.txt
+++ b/Tests/aweXpect.Core.Api.Tests/Expected/aweXpect.Core_net8.0.txt
@@ -220,7 +220,7 @@ namespace aweXpect.Core
}
public interface IStringMatchType
{
- bool AreConsideredEqual(string? actual, string? expected, bool ignoreCase, System.Collections.Generic.IEqualityComparer comparer);
+ System.Threading.Tasks.ValueTask AreConsideredEqual(string? actual, string? expected, bool ignoreCase, System.Collections.Generic.IEqualityComparer comparer);
string GetExpectation(string? expected, aweXpect.Core.ExpectationGrammars grammars);
string GetExtendedFailure(string it, string? actual, string? expected, bool ignoreCase, System.Collections.Generic.IEqualityComparer comparer, aweXpect.Core.StringDifferenceSettings? settings);
string GetOptionString(bool ignoreCase, System.Collections.Generic.IEqualityComparer? comparer);
diff --git a/Tests/aweXpect.Core.Api.Tests/Expected/aweXpect.Core_netstandard2.0.txt b/Tests/aweXpect.Core.Api.Tests/Expected/aweXpect.Core_netstandard2.0.txt
index 681be7c62..699befa72 100644
--- a/Tests/aweXpect.Core.Api.Tests/Expected/aweXpect.Core_netstandard2.0.txt
+++ b/Tests/aweXpect.Core.Api.Tests/Expected/aweXpect.Core_netstandard2.0.txt
@@ -220,7 +220,7 @@ namespace aweXpect.Core
}
public interface IStringMatchType
{
- bool AreConsideredEqual(string? actual, string? expected, bool ignoreCase, System.Collections.Generic.IEqualityComparer comparer);
+ System.Threading.Tasks.Task AreConsideredEqual(string? actual, string? expected, bool ignoreCase, System.Collections.Generic.IEqualityComparer comparer);
string GetExpectation(string? expected, aweXpect.Core.ExpectationGrammars grammars);
string GetExtendedFailure(string it, string? actual, string? expected, bool ignoreCase, System.Collections.Generic.IEqualityComparer comparer, aweXpect.Core.StringDifferenceSettings? settings);
string GetOptionString(bool ignoreCase, System.Collections.Generic.IEqualityComparer? comparer);