diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.All.cs b/Source/aweXpect/That/Collections/ThatEnumerable.All.cs
index b0a4f0c66..eee5ea56b 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.All.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.All.cs
@@ -27,8 +27,8 @@ public static Elements All(
///
/// Verifies that in the collection all items…
///
- public static ElementsForEnumerable All(
- this IThat subject)
+ public static ElementsForEnumerable All(
+ this IThat subject)
=> new(subject, EnumerableQuantifier.All(subject.Get().ExpectationBuilder.ExpectationGrammars));
#if NET8_0_OR_GREATER
diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.AreAllUnique.cs b/Source/aweXpect/That/Collections/ThatEnumerable.AreAllUnique.cs
index d0fb26216..6909a2699 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.AreAllUnique.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.AreAllUnique.cs
@@ -101,15 +101,14 @@ public static partial class ThatEnumerable
///
/// Verifies that the collection only contains unique items.
///
- public static ObjectEqualityResult, object?> AreAllUnique(
- this IThat source)
- where TEnumerable : IEnumerable
+ public static ObjectEqualityResult, object?> AreAllUnique(
+ this IThat source)
{
ObjectEqualityOptions options = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new ObjectEqualityResult, object?>(
+ return new ObjectEqualityResult, object?>(
expectationBuilder.AddConstraint((it, grammars)
- => new AreAllUniqueForEnumerableConstraint(expectationBuilder, it, grammars,
+ => new AreAllUniqueForEnumerableConstraint(expectationBuilder, it, grammars,
options)),
source, options
);
@@ -119,19 +118,17 @@ public static partial class ThatEnumerable
/// Verifies that the collection only contains items with unique members specified by the
/// .
///
- public static ObjectEqualityResult, TMember> AreAllUnique(
- this IThat source,
+ public static ObjectEqualityResult, TMember> AreAllUnique(
+ this IThat source,
Func memberAccessor,
[CallerArgumentExpression("memberAccessor")]
string doNotPopulateThisValue = "")
- where TEnumerable : IEnumerable
{
ObjectEqualityOptions options = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new ObjectEqualityResult, TMember>(
+ return new ObjectEqualityResult, TMember>(
expectationBuilder.AddConstraint((it, grammars)
- => new AreAllUniqueWithPredicateForEnumerableConstraint(
+ => new AreAllUniqueWithPredicateForEnumerableConstraint(
expectationBuilder,
it, grammars,
memberAccessor,
@@ -145,12 +142,12 @@ public static partial class ThatEnumerable
///
/// Verifies that the collection only contains unique items.
///
- public static ObjectEqualityResult, IThat?>, TItem> AreAllUnique(
- this IThat?> source)
+ public static ObjectEqualityResult, IThat>, TItem> AreAllUnique(
+ this IThat> source)
{
ObjectEqualityOptions options = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new ObjectEqualityResult, IThat?>, TItem>(
+ return new ObjectEqualityResult, IThat>, TItem>(
expectationBuilder.AddConstraint((it, grammars)
=> new AreAllUniqueForEnumerableConstraint, TItem>(expectationBuilder, it,
grammars, options)),
@@ -181,17 +178,17 @@ public static partial class ThatEnumerable
/// Verifies that the collection only contains items with unique members specified by the
/// .
///
- public static ObjectEqualityResult, IThat?>, TMember> AreAllUnique<
+ public static ObjectEqualityResult, IThat>, TMember> AreAllUnique<
TItem,
TMember>(
- this IThat?> source,
+ this IThat> source,
Func memberAccessor,
[CallerArgumentExpression("memberAccessor")]
string doNotPopulateThisValue = "")
{
ObjectEqualityOptions options = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new ObjectEqualityResult, IThat?>, TMember>(
+ return new ObjectEqualityResult, IThat>, TMember>(
expectationBuilder.AddConstraint((it, grammars)
=> new AreAllUniqueWithPredicateForEnumerableConstraint, TMember, TMember>(
expectationBuilder,
@@ -209,15 +206,15 @@ public static partial class ThatEnumerable
/// Verifies that the collection only contains items with unique members specified by the
/// .
///
- public static StringEqualityResult, IThat?>> AreAllUnique(
- this IThat?> source,
+ public static StringEqualityResult, IThat>> AreAllUnique(
+ this IThat> source,
Func memberAccessor,
[CallerArgumentExpression("memberAccessor")]
string doNotPopulateThisValue = "")
{
StringEqualityOptions options = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new StringEqualityResult, IThat?>>(
+ return new StringEqualityResult, IThat>>(
expectationBuilder.AddConstraint((it, grammars)
=> new AreAllUniqueWithPredicateForEnumerableConstraint, string, string>(
expectationBuilder,
diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.AtLeast.cs b/Source/aweXpect/That/Collections/ThatEnumerable.AtLeast.cs
index 8b24fb685..45e89c666 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.AtLeast.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.AtLeast.cs
@@ -29,8 +29,8 @@ public static Elements AtLeast(
///
/// Verifies that in the collection at least items…
///
- public static ElementsForEnumerable AtLeast(
- this IThat subject,
+ public static ElementsForEnumerable AtLeast(
+ this IThat subject,
int minimum)
=> new(subject, EnumerableQuantifier.AtLeast(minimum, subject.Get().ExpectationBuilder.ExpectationGrammars));
diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.AtMost.cs b/Source/aweXpect/That/Collections/ThatEnumerable.AtMost.cs
index 5efde8a52..69bd4c75e 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.AtMost.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.AtMost.cs
@@ -29,8 +29,8 @@ public static Elements AtMost(
///
/// Verifies that in the collection at most items…
///
- public static ElementsForEnumerable AtMost(
- this IThat subject,
+ public static ElementsForEnumerable AtMost(
+ this IThat subject,
int maximum)
=> new(subject, EnumerableQuantifier.AtMost(maximum, subject.Get().ExpectationBuilder.ExpectationGrammars));
diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.Between.cs b/Source/aweXpect/That/Collections/ThatEnumerable.Between.cs
index 9d1e05d91..c2146bce0 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.Between.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.Between.cs
@@ -32,10 +32,10 @@ public static BetweenResult Between(
///
/// Verifies that in the collection between …
///
- public static BetweenResult> Between(
- this IThat subject,
+ public static BetweenResult> Between(
+ this IThat subject,
int minimum)
- => new(maximum => new ElementsForEnumerable(subject,
+ => new(maximum => new ElementsForEnumerable(subject,
EnumerableQuantifier.Between(minimum, maximum, subject.Get().ExpectationBuilder.ExpectationGrammars)));
#if NET8_0_OR_GREATER
diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.Contains.cs b/Source/aweXpect/That/Collections/ThatEnumerable.Contains.cs
index aced7d879..9aa78ffba 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.Contains.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.Contains.cs
@@ -99,15 +99,15 @@ public static CountResult, IThat?>>
///
/// Verifies that the collection contains the value.
///
- public static ObjectCountResult, object?>
+ public static ObjectCountResult, object?>
Contains(
- this IThat source,
+ this IThat source,
object? expected)
{
Quantifier quantifier = new();
ObjectEqualityOptions options = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new ObjectCountResult, object?>(
+ return new ObjectCountResult, object?>(
expectationBuilder.AddConstraint((it, grammars) =>
new ContainForEnumerableConstraint(
expectationBuilder,
@@ -125,9 +125,9 @@ public static CountResult, IThat?>>
///
/// Verifies that the collection contains an item that satisfies the .
///
- public static CountResult>
+ public static CountResult>
Contains(
- this IThat source,
+ this IThat source,
Func predicate,
[CallerArgumentExpression("predicate")]
string doNotPopulateThisValue = "")
@@ -135,7 +135,7 @@ public static CountResult, IThat?>>
predicate.ThrowIfNull();
Quantifier quantifier = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new CountResult>(
+ return new CountResult>(
expectationBuilder.AddConstraint((it, grammars) =>
new ContainForEnumerableConstraint(
expectationBuilder, it, grammars,
@@ -298,16 +298,16 @@ public static CountResult, IThat>>
///
/// Verifies that the collection contains the provided collection.
///
- public static ObjectCollectionContainResult, TItem>
+ public static ObjectCollectionContainResult, TItem>
Contains(
- this IThat source,
+ this IThat source,
IEnumerable expected,
[CallerArgumentExpression("expected")] string doNotPopulateThisValue = "")
{
ObjectEqualityOptions options = new();
CollectionMatchOptions matchOptions = new(CollectionMatchOptions.EquivalenceRelations.Contains);
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new ObjectCollectionContainResult, TItem>(
+ return new ObjectCollectionContainResult, TItem>(
expectationBuilder.AddConstraint((it, grammars) =>
new IsEqualToForEnumerableConstraint(expectationBuilder, it, grammars,
doNotPopulateThisValue.TrimCommonWhiteSpace(),
@@ -448,15 +448,15 @@ public static CountResult, IThat?>>
///
/// Verifies that the collection does not contain the value.
///
- public static ObjectCountResult, object?>
+ public static ObjectCountResult, object?>
DoesNotContain(
- this IThat source,
+ this IThat source,
object? unexpected)
{
Quantifier quantifier = new();
ObjectEqualityOptions options = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new ObjectCountResult, object?>(
+ return new ObjectCountResult, object?>(
expectationBuilder.AddConstraint((it, grammars) =>
new ContainForEnumerableConstraint(
expectationBuilder,
@@ -474,9 +474,9 @@ public static CountResult, IThat?>>
///
/// Verifies that the collection contains no item that satisfies the .
///
- public static CountResult>
+ public static CountResult>
DoesNotContain(
- this IThat source,
+ this IThat source,
Func predicate,
[CallerArgumentExpression("predicate")]
string doNotPopulateThisValue = "")
@@ -484,7 +484,7 @@ public static CountResult, IThat?>>
predicate.ThrowIfNull();
Quantifier quantifier = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new CountResult>(
+ return new CountResult>(
expectationBuilder.AddConstraint((it, grammars) =>
new ContainForEnumerableConstraint(
expectationBuilder, it, grammars,
@@ -650,9 +650,9 @@ public static CountResult, IThat>>
///
/// Verifies that the collection does not contain the provided collection.
///
- public static ObjectCollectionContainResult, TItem>
+ public static ObjectCollectionContainResult, TItem>
DoesNotContain(
- this IThat source,
+ this IThat source,
IEnumerable unexpected,
[CallerArgumentExpression("unexpected")]
string doNotPopulateThisValue = "")
@@ -660,7 +660,7 @@ public static CountResult, IThat>>
ObjectEqualityOptions options = new();
CollectionMatchOptions matchOptions = new(CollectionMatchOptions.EquivalenceRelations.Contains);
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new ObjectCollectionContainResult, TItem>(
+ return new ObjectCollectionContainResult, TItem>(
expectationBuilder.AddConstraint((it, grammars) =>
new IsEqualToForEnumerableConstraint(expectationBuilder, it, grammars,
doNotPopulateThisValue.TrimCommonWhiteSpace(),
diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.Elements.AreEqualTo.cs b/Source/aweXpect/That/Collections/ThatEnumerable.Elements.AreEqualTo.cs
index 81f7a6273..ac00c95d2 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.Elements.AreEqualTo.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.Elements.AreEqualTo.cs
@@ -282,16 +282,15 @@ public static partial class ThatEnumerable
///
/// …are equal to the value.
///
- public static ObjectEqualityResult, object?>
- AreEqualTo(this ElementsForEnumerable elements, object? expected)
- where TEnumerable : IEnumerable?
+ public static ObjectEqualityResult, object?>
+ AreEqualTo(this ElementsForEnumerable elements, object? expected)
{
- IElementsForEnumerable iElements = elements;
+ IElementsForEnumerable iElements = elements;
ObjectEqualityOptions options = new();
ExpectationBuilder expectationBuilder = iElements.Subject.Get().ExpectationBuilder;
- return new ObjectEqualityResult, object?>(
+ return new ObjectEqualityResult, object?>(
expectationBuilder.AddConstraint((it, grammars)
- => new CollectionForEnumerableConstraint(
+ => new CollectionForEnumerableConstraint(
expectationBuilder,
it, grammars,
iElements.Quantifier,
diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.Elements.AreEquivalentTo.cs b/Source/aweXpect/That/Collections/ThatEnumerable.Elements.AreEquivalentTo.cs
index 9d4f3d9c5..c8a0d2332 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.Elements.AreEquivalentTo.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.Elements.AreEquivalentTo.cs
@@ -61,7 +61,7 @@ public partial class ElementsForEnumerable
///
/// …are equivalent to the value.
///
- public ObjectEqualityResult, object?>
+ public ObjectEqualityResult, object?>
AreEquivalentTo(TExpected expected,
Func, EquivalencyOptions>? options = null,
[CallerArgumentExpression("expected")] string doNotPopulateThisValue = "")
@@ -77,7 +77,7 @@ public partial class ElementsForEnumerable
ObjectEqualityOptions equalityOptions = new();
equalityOptions.Equivalent(equivalencyOptions);
- return new ObjectEqualityResult, object?>(
+ return new ObjectEqualityResult, object?>(
expectationBuilder.AddConstraint((it, grammars)
=> new CollectionForEnumerableConstraint(
expectationBuilder,
diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.Elements.ComplyWith.cs b/Source/aweXpect/That/Collections/ThatEnumerable.Elements.ComplyWith.cs
index 0e985be76..e1ccf56ff 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.Elements.ComplyWith.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.Elements.ComplyWith.cs
@@ -129,11 +129,11 @@ public partial class ElementsForEnumerable
///
/// …comply with the .
///
- public ObjectEqualityResult, object?>
+ public ObjectEqualityResult, object?>
ComplyWith(Action> expectations)
{
ObjectEqualityOptions options = new();
- return new ObjectEqualityResult, object?>(
+ return new ObjectEqualityResult, object?>(
_subject.Get().ExpectationBuilder.AddConstraint((expectationBuilder, it, grammars)
=> new ComplyWithConstraint(expectationBuilder, it, grammars, _quantifier, expectations)),
_subject,
diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.Elements.Satisfy.cs b/Source/aweXpect/That/Collections/ThatEnumerable.Elements.Satisfy.cs
index 8a37c8e40..7da838c6b 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.Elements.Satisfy.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.Elements.Satisfy.cs
@@ -79,7 +79,7 @@ public partial class ElementsForEnumerable
///
/// …satisfy the .
///
- public AndOrResult>
+ public AndOrResult>
Satisfy(
Func predicate,
[CallerArgumentExpression("predicate")]
@@ -87,7 +87,7 @@ public partial class ElementsForEnumerable
{
predicate.ThrowIfNull();
ExpectationBuilder expectationBuilder = _subject.Get().ExpectationBuilder;
- return new AndOrResult>(
+ return new AndOrResult>(
expectationBuilder.AddConstraint((it, grammars)
=> new CollectionForEnumerableConstraint(
expectationBuilder,
diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.EndsWith.cs b/Source/aweXpect/That/Collections/ThatEnumerable.EndsWith.cs
index 802931492..4295f2636 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.EndsWith.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.EndsWith.cs
@@ -106,17 +106,16 @@ public static partial class ThatEnumerable
///
/// Verifies that the collection ends with the provided collection.
///
- public static ObjectEqualityResult, TItem>
- EndsWith(
- this IThat source,
+ public static ObjectEqualityResult, TItem>
+ EndsWith(
+ this IThat source,
IEnumerable expected)
- where TEnumerable : IEnumerable
{
ObjectEqualityOptions options = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new ObjectEqualityResult, TItem>(
+ return new ObjectEqualityResult, TItem>(
expectationBuilder.AddConstraint((it, grammars)
- => new EndsWithForEnumerableConstraint(expectationBuilder, it, grammars,
+ => new EndsWithForEnumerableConstraint(expectationBuilder, it, grammars,
Formatter.Format(expected),
expected.ToArray(),
options)),
@@ -127,18 +126,17 @@ public static partial class ThatEnumerable
///
/// Verifies that the collection ends with the provided collection.
///
- public static ObjectEqualityResult, TItem>
- EndsWith(
- this IThat source,
+ public static ObjectEqualityResult, TItem>
+ EndsWith(
+ this IThat source,
params TItem[] expected)
- where TEnumerable : IEnumerable
{
_ = expected ?? throw new ArgumentNullException(nameof(expected));
ObjectEqualityOptions options = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new ObjectEqualityResult, TItem>(
+ return new ObjectEqualityResult, TItem>(
expectationBuilder.AddConstraint((it, grammars)
- => new EndsWithForEnumerableConstraint(expectationBuilder, it, grammars,
+ => new EndsWithForEnumerableConstraint(expectationBuilder, it, grammars,
Formatter.Format(expected),
expected,
options)),
@@ -328,17 +326,16 @@ public static ObjectEqualityResult, IThat
/// Verifies that the collection does not end with the provided collection.
///
- public static ObjectEqualityResult, TItem>
- DoesNotEndWith(
- this IThat source,
+ public static ObjectEqualityResult, TItem>
+ DoesNotEndWith(
+ this IThat source,
IEnumerable unexpected)
- where TEnumerable : IEnumerable
{
ObjectEqualityOptions options = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new ObjectEqualityResult, TItem>(
+ return new ObjectEqualityResult, TItem>(
expectationBuilder.AddConstraint((it, grammars)
- => new EndsWithForEnumerableConstraint(expectationBuilder, it, grammars,
+ => new EndsWithForEnumerableConstraint(expectationBuilder, it, grammars,
Formatter.Format(unexpected),
unexpected.ToArray(),
options).Invert()),
@@ -349,18 +346,17 @@ public static ObjectEqualityResult, IThat
/// Verifies that the collection does not end with the provided collection.
///
- public static ObjectEqualityResult, TItem>
- DoesNotEndWith(
- this IThat source,
+ public static ObjectEqualityResult, TItem>
+ DoesNotEndWith(
+ this IThat source,
params TItem[] unexpected)
- where TEnumerable : IEnumerable
{
_ = unexpected ?? throw new ArgumentNullException(nameof(unexpected));
ObjectEqualityOptions options = new();
ExpectationBuilder expectationBuilder = source.Get().ExpectationBuilder;
- return new ObjectEqualityResult, TItem>(
+ return new ObjectEqualityResult, TItem>(
expectationBuilder.AddConstraint((it, grammars)
- => new EndsWithForEnumerableConstraint(expectationBuilder, it, grammars,
+ => new EndsWithForEnumerableConstraint(expectationBuilder, it, grammars,
Formatter.Format(unexpected),
unexpected,
options).Invert()),
diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.Exactly.cs b/Source/aweXpect/That/Collections/ThatEnumerable.Exactly.cs
index e012287c1..3293b4413 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.Exactly.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.Exactly.cs
@@ -31,8 +31,8 @@ public static Elements Exactly(
///
/// Verifies that in the collection exactly items…
///
- public static ElementsForEnumerable Exactly(
- this IThat subject,
+ public static ElementsForEnumerable Exactly(
+ this IThat subject,
int expected)
=> new(subject, EnumerableQuantifier.Exactly(expected, subject.Get().ExpectationBuilder.ExpectationGrammars));
diff --git a/Source/aweXpect/That/Collections/ThatEnumerable.HasCount.cs b/Source/aweXpect/That/Collections/ThatEnumerable.HasCount.cs
index c6a5bc2aa..5d93b47d7 100644
--- a/Source/aweXpect/That/Collections/ThatEnumerable.HasCount.cs
+++ b/Source/aweXpect/That/Collections/ThatEnumerable.HasCount.cs
@@ -71,15 +71,14 @@ public static partial class ThatEnumerable
///
/// Verifies that the has an item count of…
///
- public static CollectionCountResult>> HasCount(
- this IThat subject)
- where TEnumerable : IEnumerable
+ public static CollectionCountResult>> HasCount(
+ this IThat subject)
{
ExpectationBuilder expectationBuilder = subject.Get().ExpectationBuilder;
- return new CollectionCountResult>>(quantifier
- => new AndOrResult>(
+ return new CollectionCountResult>>(quantifier
+ => new AndOrResult>(
expectationBuilder.AddConstraint((it, grammars)
- => new SyncCollectionCountForEnumerableConstraint(expectationBuilder, it, grammars,
+ => new SyncCollectionCountForEnumerableConstraint(expectationBuilder, it, grammars,
quantifier)),
subject));
}
@@ -87,18 +86,52 @@ public static partial class ThatEnumerable
///