Skip to content

feat: Collection equality with predicates or expectations#743

Merged
vbreuss merged 12 commits into
mainfrom
topic/support-predicates-for-collection-expectations
Sep 2, 2025
Merged

feat: Collection equality with predicates or expectations#743
vbreuss merged 12 commits into
mainfrom
topic/support-predicates-for-collection-expectations

Conversation

@vbreuss

@vbreuss vbreuss commented Aug 28, 2025

Copy link
Copy Markdown
Member

This PR adds the option to compare collections by providing a list of predicates or expectations. These are then used the same as when comparing directly for elements.

  • use expressions for formatting
  • Make comparison async
  • Support expectations
  • Also support Contains and IsContainedIn
  • Also implement for IAsyncEnumerable

@vbreuss vbreuss self-assigned this Aug 28, 2025
@vbreuss vbreuss added the enhancement New feature or request label Aug 28, 2025
@github-actions

github-actions Bot commented Aug 28, 2025

Copy link
Copy Markdown
Contributor

Test Results

    4 files   -     34      4 suites   - 34   23s ⏱️ - 2m 37s
  955 tests  - 13 480    954 ✅  - 13 479  1 💤  - 1  0 ❌ ±0 
2 751 runs   - 37 239  2 750 ✅  - 37 238  1 💤  - 1  0 ❌ ±0 

Results for commit cefa605. ± Comparison against base commit 200c148.

This pull request removes 13556 and adds 76 tests. Note that renamed tests count towards both.
aweXpect.Analyzers.Tests.AwaitExpectationAnalyzerTests ‑ WhenAwaited_ShouldNotBeFlagged
aweXpect.Analyzers.Tests.AwaitExpectationAnalyzerTests ‑ WhenAwaited_WithoutReturnValue_ShouldNotBeFlagged
aweXpect.Analyzers.Tests.AwaitExpectationAnalyzerTests ‑ WhenNotAwaited_ShouldBeFlagged
aweXpect.Analyzers.Tests.AwaitExpectationAnalyzerTests ‑ WhenNotAwaited_WithoutReturnValue_ShouldBeFlagged
aweXpect.Analyzers.Tests.AwaitExpectationAnalyzerTests ‑ WhenNotAwaited_WithoutReturnValue_WithVerifyInMethod_ShouldStillBeFlagged
aweXpect.Analyzers.Tests.AwaitExpectationAnalyzerTests ‑ WhenVerifiedStatically_ShouldNotBeFlagged
aweXpect.Analyzers.Tests.AwaitExpectationAnalyzerTests ‑ WhenVerifiedStatically_WithoutReturnValue_ShouldNotBeFlagged
aweXpect.Analyzers.Tests.AwaitExpectationAnalyzerTests ‑ WhenVerifiedWithStaticUsing_ShouldNotBeFlagged
aweXpect.Analyzers.Tests.AwaitExpectationAnalyzerTests ‑ WhenVerifiedWithStaticUsing_WithoutReturnValue_ShouldNotBeFlagged
aweXpect.Analyzers.Tests.AwaitExpectationAnalyzerTests ‑ WhenVerified_ShouldNotBeFlagged
…
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "message19435e88-f938-47c7-a925-319d9cea2f9b")
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "messaged2680046-4da7-4b0b-a90a-b6a1d0a86b65")
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "messagefe04f3c1-a93c-4e1c-924c-66e3937e5fcc")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "message45827bd7-9913-48b5-964c-7bb089320e6e")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "messagec488a86c-35f6-48cf-9e35-5ed84cba8f4b")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "messagee6103bf0-72cd-41ac-88ce-06b136f2be7f")
aweXpect.Core.Tests.Core.Helpers.ExpressionEqualityComparerTests+EqualsTests ‑ DifferentMembersWithSameOperators_ShouldNotBeEqual
aweXpect.Core.Tests.Core.Helpers.ExpressionEqualityComparerTests+EqualsTests ‑ DifferentMembers_ShouldNotBeEqual
aweXpect.Core.Tests.Core.Helpers.ExpressionEqualityComparerTests+EqualsTests ‑ DifferentNestedMembers_ShouldNotBeEqual
aweXpect.Core.Tests.Core.Helpers.ExpressionEqualityComparerTests+EqualsTests ‑ DifferentOperators_ShouldNotBeEqual
…

♻️ This comment has been updated with latest results.

@vbreuss vbreuss force-pushed the topic/support-predicates-for-collection-expectations branch 2 times, most recently from d246e4d to b36aad5 Compare September 1, 2025 18:29
@vbreuss vbreuss force-pushed the topic/support-predicates-for-collection-expectations branch from b36aad5 to 190d8db Compare September 1, 2025 18:29
@vbreuss vbreuss marked this pull request as ready for review September 2, 2025 08:35
Copilot AI review requested due to automatic review settings September 2, 2025 08:35
@sonarqubecloud

sonarqubecloud Bot commented Sep 2, 2025

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@vbreuss vbreuss merged commit f6a6c87 into main Sep 2, 2025
14 checks passed
@vbreuss vbreuss deleted the topic/support-predicates-for-collection-expectations branch September 2, 2025 09:08
@github-actions

github-actions Bot commented Sep 2, 2025

Copy link
Copy Markdown
Contributor

This is addressed in release v2.22.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request state: released The issue is released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Collection equality with predicates or expectations

2 participants