New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add the ability to exclude non-browsable members from equivalency tests #1827
Add the ability to exclude non-browsable members from equivalency tests #1827
Conversation
Pull Request Test Coverage Report for Build 2172527928Warning: This coverage report may be inaccurate.We've detected an issue with your CI configuration that might affect the accuracy of this pull request's coverage report.
💛 - Coveralls |
Thanks for dogfooding the feature 👍 My first concern was that we normally just "let the the expectation drive the comparison", e.g. when using an anonymous object with a subset of members. But it seems to me that we have approached this issue from the wrong angle. This example var subject = new { Browsable = 1 };
var expected = new NonBrowable { Browsable = 1, NonBrowsable = 2 };
subject.Should().BeEquivalentTo(expected, opt => opt.ExcludingNonBrowsableMembers());
private class NonBrowable
{
public int Browsable { get; set; }
[EditorBrowsable(EditorBrowsableState.Never)]
public int NonBrowsable { get; set; }
} fails with
In short, it fails on the missing The example above works if we instead implement this feature using an |
That's a clever approach :-) I hadn't thought of this possibility at all, but it makes a lot of sense. I'll try this alternate implementation against our test suites, and I anticipate cherry-picking your commit into this branch :-) |
Hmm, as written it doesn't actually do everything that's needed, because it only excludes members if they're marked non-browsable in the With this implementation, tests Is there a way to resolve this? Or is it fundamentally impossible to have a selection rule guide itself based on aspects of the subject? |
I've done a more direct fix. We can backtrack if there is a more elegant solution. |
Src/FluentAssertions/Equivalency/Matching/MustMatchByNameRule.cs
Outdated
Show resolved
Hide resolved
Src/FluentAssertions/Equivalency/Steps/StructuralEqualityEquivalencyStep.cs
Outdated
Show resolved
Hide resolved
Tests/FluentAssertions.Equivalency.Specs/SelectionRulesSpecs.cs
Outdated
Show resolved
Hide resolved
Tests/FluentAssertions.Equivalency.Specs/SelectionRulesSpecs.cs
Outdated
Show resolved
Hide resolved
Tests/FluentAssertions.Equivalency.Specs/SelectionRulesSpecs.cs
Outdated
Show resolved
Hide resolved
Src/FluentAssertions/Equivalency/Steps/StructuralEqualityEquivalencyStep.cs
Outdated
Show resolved
Hide resolved
Okay, this makes sense, but, how, then, do I achieve my required use case, which is specifically that non-browsable members of the subject should be skipped? |
If the expectation doesn't contain that property or it is excluded, it should not even look for a property on the subject. |
The expectation does contain the property. It is marked non-browsable on the subject only. |
Ah, I didn't get that scenario. Maybe by having an additional option called |
Mm, so then ... |
No,
Sorry, I don't think I get that scenario. If you exclude a member from the expectation, than it's completely ignored. |
How about we keep the functionality the way it's currently implemented, but rename it from |
@jnyrup @dennisdoomen How about my suggestion of simply changing the name so that this feature isn't implicitly expected to follow the same rules as other |
It's kind of a niche feature (which nobody asked for in over 10 years), so either we do it correctly (using two options like |
That's fair. But, with |
|
Ah, okay, and the default logic doesn't care if the expectation has extra members? So then, with what you describe, those two methods are basically doing exactly the same thing, just one on the subject and one on the expectation. The wording |
It does. The expectation defines the members that are expected.
I chose But maybe |
In previous discussion, the
But, looking at the implementation, it doesn't seem to work that way. The various Furthermore, it appears that if you explicitly include any member, then the default inclusion of public properties & fields is disabled. So, it isn't possible to do something like:
The current logic sees the
...because the I think if we want this to work consistently and in an easy-to-understand way, then this needs to be reworked so that I'm inclined to instead make an |
c05137a
to
14babeb
Compare
I have rebased the changes here, collapsing the commits that were part of #1807 into a single commit, and the edits made in this PR into a single commit. The character of the changes changed sufficiently that I didn't see any value in preserving the edit history that went down a different path. With this rebase, this PR can be merged and will reintroduce the changes reverted in #1842 as a base onto which the new approach separating the subject from the expectation is applied. |
I guess in the current state of the code base, there's no other way to make this work. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're almost there ;-)
Src/FluentAssertions/Equivalency/Selection/ExcludeNonBrowsableMembersRule.cs
Outdated
Show resolved
Hide resolved
Src/FluentAssertions/Equivalency/SelfReferenceEquivalencyAssertionOptions.cs
Outdated
Show resolved
Hide resolved
Src/FluentAssertions/Equivalency/SelfReferenceEquivalencyAssertionOptions.cs
Outdated
Show resolved
Hide resolved
Tests/FluentAssertions.Equivalency.Specs/SelectionRulesSpecs.cs
Outdated
Show resolved
Hide resolved
Tests/FluentAssertions.Equivalency.Specs/SelectionRulesSpecs.cs
Outdated
Show resolved
Hide resolved
Src/FluentAssertions/Equivalency/SelfReferenceEquivalencyAssertionOptions.cs
Show resolved
Hide resolved
Tests/FluentAssertions.Equivalency.Specs/SelectionRulesSpecs.cs
Outdated
Show resolved
Hide resolved
…. Implemented it in SelfReferenceEquivalencyAssertionOptions.cs and CollectionMemberAssertionOptionsDecorator.cs and UsersOfGetClosedGenericInterfaces.cs. Added property IsBrowsable to IMember.cs and implemented it in Field.cs and Property.cs. Added benchmark CheckIfMemberIsBrowsable. Adjusted the implementation of AssertMemberEquality in StructuralEqualityEquivalencyStep.cs to combine these fields to allow for non-browsable members to be skipped when checking equivalence. Added automated tests of the new functionality to SelectionRulesSpec.cs. Accepted API changes into the approved API. Updated objectgraphs.md to document the new non-browsable "hidden" members exclusion feature. Updated releases.md to describe the new feature.
…rate properties IgnoreNonBrowsableOnSubject and ExcludeNonBrowsableOnExpectation. Updated implementations of the interface accordingly. Subject: Added new selection rule ExcludeNonBrowsableMembersRule.cs and updated SelfReferenceEquivalencyAssertionOptions.SelectionRules to inject an instance of it after AllPropertiesSelectionRule and AllFieldsSelectionRule but before explicit member selection rules. Expectation: Updated AssertMemberEquality in StructuralEqualityEquivalencyStep.cs to factor in whether the selected member is browsable. Updated the ToString implementation in SelfReferenceEquivalencyAssertionOptions.cs to consider ignoreNonBrowsableOnSubject and excludeNonBrowsableOnExpectation independently. Added tests exercising all combinations of non-browsable fields and properties in the subject and expectation. Reran AcceptApiChanges.ps1.
- <see cref> in XML docs. - Bug fix: MustMatchByNameRule.cs raises an error if it's supposed to be pretending that a member in the subject doesn't exist because of .IgnoringNonBrowsableMembersOnSubject. - ExcludeNonBrowsableMembersRule.cs makes the list of selected members concrete before returning instead of returning the LINQ query. - Removed the IncludingNonBrowsableMembers method from SelfReferenceEquivalencyAssertionOptions.cs. - Removed redundant tests from SelectionRulesSpecs.cs. - Removed redundant word from releases.md. Typo fix in SelectionRulesSpecs.cs. Reran AcceptApiChanges.ps1.
f730ff4
to
e0bf53b
Compare
(rebased to resolve |
Wow. That was a big and long-running PR. |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [FluentAssertions](https://www.fluentassertions.com/) ([source](https://togithub.com/fluentassertions/fluentassertions)) | nuget | major | `5.10.3` -> `6.10.0` | --- ### Release Notes <details> <summary>fluentassertions/fluentassertions</summary> ### [`v6.10.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.10.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.9.0...6.10.0) <!-- Release notes generated using configuration in .github/release.yml at master --> ##### What's Changed ##### Fixes - Declare `System.Net.Http` as a framework dependency by [@​AArnott](https://togithub.com/AArnott) in [https://github.com/fluentassertions/fluentassertions/pull/2122](https://togithub.com/fluentassertions/fluentassertions/pull/2122) - Improves how `BeEquivalentTo` handles fields hiding base-class fields by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1990](https://togithub.com/fluentassertions/fluentassertions/pull/1990) - Fix timeout check in `WithResult` extension by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2101](https://togithub.com/fluentassertions/fluentassertions/pull/2101) - Avoid exceptions when wrapping in `AssertionScope` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2103](https://togithub.com/fluentassertions/fluentassertions/pull/2103) ##### Others - Fix copyright year by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2099](https://togithub.com/fluentassertions/fluentassertions/pull/2099) - Fix broken link in releases.md by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2096](https://togithub.com/fluentassertions/fluentassertions/pull/2096) - Check if `lcov.info` does exist by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2097](https://togithub.com/fluentassertions/fluentassertions/pull/2097) - Clean up `Build.cs` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2093](https://togithub.com/fluentassertions/fluentassertions/pull/2093) - Updated editor configs by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/2104](https://togithub.com/fluentassertions/fluentassertions/pull/2104) - Revert early returns for project consistency by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2105](https://togithub.com/fluentassertions/fluentassertions/pull/2105) - Update data.md to fix typo by [@​berserck](https://togithub.com/berserck) in [https://github.com/fluentassertions/fluentassertions/pull/2114](https://togithub.com/fluentassertions/fluentassertions/pull/2114) - Add unit tests for better coverage in Execution namespace by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2042](https://togithub.com/fluentassertions/fluentassertions/pull/2042) - Add code coverage to XUnit2.Specs by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2115](https://togithub.com/fluentassertions/fluentassertions/pull/2115) - Regrouping and formatting of the selection rule specs by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/2106](https://togithub.com/fluentassertions/fluentassertions/pull/2106) - Add fancy `ReportSummary` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2116](https://togithub.com/fluentassertions/fluentassertions/pull/2116) - Add new issue template for a general feature by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2113](https://togithub.com/fluentassertions/fluentassertions/pull/2113) - Add missing tests for `int.Seconds(TimeSpan)` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2119](https://togithub.com/fluentassertions/fluentassertions/pull/2119) - Add test summaries by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2118](https://togithub.com/fluentassertions/fluentassertions/pull/2118) - Declare few more files as `DocumentationChanges` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2100](https://togithub.com/fluentassertions/fluentassertions/pull/2100) - Remove unused InstallPfx.bat by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2124](https://togithub.com/fluentassertions/fluentassertions/pull/2124) ##### New Contributors - [@​berserck](https://togithub.com/berserck) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2114](https://togithub.com/fluentassertions/fluentassertions/pull/2114) - [@​AArnott](https://togithub.com/AArnott) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2122](https://togithub.com/fluentassertions/fluentassertions/pull/2122) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.9.0...6.10.0 ### [`v6.9.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.9.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.8.0...6.9.0) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### New features - Added `BeOneOf` for `IComparable`s and object comparisons. by [@​jez9999](https://togithub.com/jez9999) in [https://github.com/fluentassertions/fluentassertions/pull/2028](https://togithub.com/fluentassertions/fluentassertions/pull/2028) - Add `BeCloseTo()` / `NotBeCloseTo()` to TimeOnlyAssertions by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2030](https://togithub.com/fluentassertions/fluentassertions/pull/2030) - Add `ThatAre[Not]Abstract`, `ThatAre[Not]Static` and `ThatAre[Not]Virtual` to `PropertyInfoSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2054](https://togithub.com/fluentassertions/fluentassertions/pull/2054) - Add `ThatAre[Not]Abstract` to `MethodInfoSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2060](https://togithub.com/fluentassertions/fluentassertions/pull/2060) - Add `ThatAre[Not]Abstract` to `TypeSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2058](https://togithub.com/fluentassertions/fluentassertions/pull/2058) - Add `ThatAre[Not]Sealed` to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2059](https://togithub.com/fluentassertions/fluentassertions/pull/2059) - Add `ThatAre[Not]Interfaces` to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2057](https://togithub.com/fluentassertions/fluentassertions/pull/2057) - Add extensions for `OccurrenceConstraint` that reads more fluently by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2047](https://togithub.com/fluentassertions/fluentassertions/pull/2047) - Add `Imply()` to `BooleanAssertions` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2074](https://togithub.com/fluentassertions/fluentassertions/pull/2074) - Add `ThatAre[Not]ValueTypes` method to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2083](https://togithub.com/fluentassertions/fluentassertions/pull/2083) ##### Improvements - Order strings with ordinal comparison by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2075](https://togithub.com/fluentassertions/fluentassertions/pull/2075) - Improve performance of `IsTuple()` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2079](https://togithub.com/fluentassertions/fluentassertions/pull/2079) - Optimize `IsRecord()` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2080](https://togithub.com/fluentassertions/fluentassertions/pull/2080) ##### Fixes - Nested `AssertionScope`s do not print inner scope reportables by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2044](https://togithub.com/fluentassertions/fluentassertions/pull/2044) - Extend `ThatArePublicOrInternal` to also look at the setter of properties by [@​Ruijin92](https://togithub.com/Ruijin92) in [https://github.com/fluentassertions/fluentassertions/pull/2082](https://togithub.com/fluentassertions/fluentassertions/pull/2082) - Treat record structs as records by [@​salvois](https://togithub.com/salvois) in [https://github.com/fluentassertions/fluentassertions/pull/2009](https://togithub.com/fluentassertions/fluentassertions/pull/2009) ##### Documentation - Document alternatives for collection order by [@​nycdotnet](https://togithub.com/nycdotnet) in [https://github.com/fluentassertions/fluentassertions/pull/2063](https://togithub.com/fluentassertions/fluentassertions/pull/2063) - Document that `PathMap` is currently not supported by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2067](https://togithub.com/fluentassertions/fluentassertions/pull/2067) - Use langword instead of <c> for C# keywords by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2070](https://togithub.com/fluentassertions/fluentassertions/pull/2070) - Add missing exceptions to xml summaries by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2023](https://togithub.com/fluentassertions/fluentassertions/pull/2023) - Improve `Guard` helper by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2076](https://togithub.com/fluentassertions/fluentassertions/pull/2076) - Add issue templates and api review process by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2078](https://togithub.com/fluentassertions/fluentassertions/pull/2078) - Add `cSpell` to NUKE build pipeline by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2086](https://togithub.com/fluentassertions/fluentassertions/pull/2086) ##### Others - Enable CI unit tests on linux and mac by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2021](https://togithub.com/fluentassertions/fluentassertions/pull/2021) - update catch phrase url by [@​danielchalmers](https://togithub.com/danielchalmers) in [https://github.com/fluentassertions/fluentassertions/pull/2025](https://togithub.com/fluentassertions/fluentassertions/pull/2025) - Prepare approval tests for .NET 7 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2024](https://togithub.com/fluentassertions/fluentassertions/pull/2024) - Use PolySharp to generate polyfill attributes by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2026](https://togithub.com/fluentassertions/fluentassertions/pull/2026) - New unit test to verify CompleteWithinAsync behaves correctly in an assertion scope by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2033](https://togithub.com/fluentassertions/fluentassertions/pull/2033) - Fix nuget config to be able to restore/build the project when having custom HTTP nuget sources by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2032](https://togithub.com/fluentassertions/fluentassertions/pull/2032) - Improve coverage on data assertions by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2037](https://togithub.com/fluentassertions/fluentassertions/pull/2037) - Bump minimum SDK to 6.0.400 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2038](https://togithub.com/fluentassertions/fluentassertions/pull/2038) - Let `EquatableOfInt` implement `IComparable<T>` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2036](https://togithub.com/fluentassertions/fluentassertions/pull/2036) - New tests for better code coverage on collection assertions by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2035](https://togithub.com/fluentassertions/fluentassertions/pull/2035) - Comparable type assertions referential equality by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2046](https://togithub.com/fluentassertions/fluentassertions/pull/2046) - Use TheoryData by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2068](https://togithub.com/fluentassertions/fluentassertions/pull/2068) - Pattern combinators by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2039](https://togithub.com/fluentassertions/fluentassertions/pull/2039) - Update nugets by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2077](https://togithub.com/fluentassertions/fluentassertions/pull/2077) - Set process dotnet cli language to en-US by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2084](https://togithub.com/fluentassertions/fluentassertions/pull/2084) - Bump required .NET SDK to v7 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2087](https://togithub.com/fluentassertions/fluentassertions/pull/2087) - Optimize NUKE spell check by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2089](https://togithub.com/fluentassertions/fluentassertions/pull/2089) - Cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2081](https://togithub.com/fluentassertions/fluentassertions/pull/2081) - Fix build breaking on non PR branches by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2090](https://togithub.com/fluentassertions/fluentassertions/pull/2090) - Add process env variable `DOTNET_CLI_UI_LANGUAGE` also inside targets by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2092](https://togithub.com/fluentassertions/fluentassertions/pull/2092) #### New Contributors - [@​danielchalmers](https://togithub.com/danielchalmers) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2025](https://togithub.com/fluentassertions/fluentassertions/pull/2025) - [@​jez9999](https://togithub.com/jez9999) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2028](https://togithub.com/fluentassertions/fluentassertions/pull/2028) - [@​94sedighi](https://togithub.com/94sedighi) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2054](https://togithub.com/fluentassertions/fluentassertions/pull/2054) - [@​Ruijin92](https://togithub.com/Ruijin92) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2082](https://togithub.com/fluentassertions/fluentassertions/pull/2082) - [@​salvois](https://togithub.com/salvois) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2009](https://togithub.com/fluentassertions/fluentassertions/pull/2009) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.8.0...6.9.0 ### [`v6.8.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.8.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.7.0...6.8.0) <!-- Release notes generated using configuration in .github/release.yml at develop --> #### What's Changed ##### New features - Extend collection assertions with `ContainInConsecutiveOrder` and `NotContainInConsecutiveOrder` by [@​StacyCash](https://togithub.com/StacyCash) in [https://github.com/fluentassertions/fluentassertions/pull/1963](https://togithub.com/fluentassertions/fluentassertions/pull/1963) - Added `NotCompleteWithinAsync` for Task assertions by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/1967](https://togithub.com/fluentassertions/fluentassertions/pull/1967) - Added assertions for non-generic `TaskCompletionSource` by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/1961](https://togithub.com/fluentassertions/fluentassertions/pull/1961) - Exposes the `IMonitor` object to extensions methods. by [@​A-Kjeldgaard](https://togithub.com/A-Kjeldgaard) in [https://github.com/fluentassertions/fluentassertions/pull/2010](https://togithub.com/fluentassertions/fluentassertions/pull/2010) ##### Improvements - Optimize `BeEquivalentTo` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1939](https://togithub.com/fluentassertions/fluentassertions/pull/1939) - Print commas at the end of the line by [@​ronaldkroon](https://togithub.com/ronaldkroon) in [https://github.com/fluentassertions/fluentassertions/pull/1945](https://togithub.com/fluentassertions/fluentassertions/pull/1945) - Avoid allocating sub-arrays in `ContainInOrder` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1960](https://togithub.com/fluentassertions/fluentassertions/pull/1960) - Extend `IObjectInfo` with info about `DeclaringType` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1950](https://togithub.com/fluentassertions/fluentassertions/pull/1950) - Prepare constructors of `AsyncFunctionAssertions` to make them protected in V7 by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/1972](https://togithub.com/fluentassertions/fluentassertions/pull/1972) - Calculate the difference between the subject and the expected nearby time by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2013](https://togithub.com/fluentassertions/fluentassertions/pull/2013) ##### Fixes - Filter dynamic methods from stack trace by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1943](https://togithub.com/fluentassertions/fluentassertions/pull/1943) - Make For/Excluding work with nested paths by [@​whymatter](https://togithub.com/whymatter) in [https://github.com/fluentassertions/fluentassertions/pull/1953](https://togithub.com/fluentassertions/fluentassertions/pull/1953) - Use InvariantCulture when doing case-insensitive matches by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1985](https://togithub.com/fluentassertions/fluentassertions/pull/1985) - Global record equivalency settings were not taken into account by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1984](https://togithub.com/fluentassertions/fluentassertions/pull/1984) - Escape brackets in execution time failures by [@​Briaoeuidhtns](https://togithub.com/Briaoeuidhtns) in [https://github.com/fluentassertions/fluentassertions/pull/1994](https://togithub.com/fluentassertions/fluentassertions/pull/1994) ##### Documentation - More specifically clarify the intentions of `WithArgs` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1929](https://togithub.com/fluentassertions/fluentassertions/pull/1929) - Remove building link from the website by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1934](https://togithub.com/fluentassertions/fluentassertions/pull/1934) - Add `Enum.BeOneOf` to the docs by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1958](https://togithub.com/fluentassertions/fluentassertions/pull/1958) - Document how to use `ModuleInitializer` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1966](https://togithub.com/fluentassertions/fluentassertions/pull/1966) - Fix a typo on the Assembly References documentation page by [@​asydikov](https://togithub.com/asydikov) in [https://github.com/fluentassertions/fluentassertions/pull/1970](https://togithub.com/fluentassertions/fluentassertions/pull/1970) - Update summary of `EquivalencyValidator` by [@​Wolgo](https://togithub.com/Wolgo) in [https://github.com/fluentassertions/fluentassertions/pull/1991](https://togithub.com/fluentassertions/fluentassertions/pull/1991) - Improve error messages for accidental `Equals` usage by [@​nycdotnet](https://togithub.com/nycdotnet) in [https://github.com/fluentassertions/fluentassertions/pull/2006](https://togithub.com/fluentassertions/fluentassertions/pull/2006) ##### Others - Upgrade to C# 10 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1935](https://togithub.com/fluentassertions/fluentassertions/pull/1935) - Use file scoped namespaces by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1936](https://togithub.com/fluentassertions/fluentassertions/pull/1936) - More use of pattern matching and lifted operators by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1937](https://togithub.com/fluentassertions/fluentassertions/pull/1937) - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1962](https://togithub.com/fluentassertions/fluentassertions/pull/1962) - Make it possible for third-party libraries to access the underlying collection of instances of `ReadOnlyNonGenericCollectionWrapper` by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1968](https://togithub.com/fluentassertions/fluentassertions/pull/1968) - Code cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1973](https://togithub.com/fluentassertions/fluentassertions/pull/1973) - Improve coverage for `CollectionMemberObjectInfo` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1983](https://togithub.com/fluentassertions/fluentassertions/pull/1983) - Deduplicate target frameworks by [@​0xced](https://togithub.com/0xced) in [https://github.com/fluentassertions/fluentassertions/pull/1980](https://togithub.com/fluentassertions/fluentassertions/pull/1980) - Removed netcoreapp2.0 framework check in formatting precision tests by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1976](https://togithub.com/fluentassertions/fluentassertions/pull/1976) - Rename `ShouldCompareMembersThisDeep` to `ShouldCompareNodesThisDeep` by [@​Wolgo](https://togithub.com/Wolgo) in [https://github.com/fluentassertions/fluentassertions/pull/1992](https://togithub.com/fluentassertions/fluentassertions/pull/1992) - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1996](https://togithub.com/fluentassertions/fluentassertions/pull/1996) - Cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1998](https://togithub.com/fluentassertions/fluentassertions/pull/1998) - Update GitHub actions by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2007](https://togithub.com/fluentassertions/fluentassertions/pull/2007) - Fix the PR link in releases.md by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2014](https://togithub.com/fluentassertions/fluentassertions/pull/2014) - Prepare 6.8.0 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2020](https://togithub.com/fluentassertions/fluentassertions/pull/2020) #### New Contributors - [@​StacyCash](https://togithub.com/StacyCash) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1963](https://togithub.com/fluentassertions/fluentassertions/pull/1963) - [@​asydikov](https://togithub.com/asydikov) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1970](https://togithub.com/fluentassertions/fluentassertions/pull/1970) - [@​0xced](https://togithub.com/0xced) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1980](https://togithub.com/fluentassertions/fluentassertions/pull/1980) - [@​Wolgo](https://togithub.com/Wolgo) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1991](https://togithub.com/fluentassertions/fluentassertions/pull/1991) - [@​Briaoeuidhtns](https://togithub.com/Briaoeuidhtns) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1994](https://togithub.com/fluentassertions/fluentassertions/pull/1994) - [@​nycdotnet](https://togithub.com/nycdotnet) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2006](https://togithub.com/fluentassertions/fluentassertions/pull/2006) - [@​A-Kjeldgaard](https://togithub.com/A-Kjeldgaard) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2010](https://togithub.com/fluentassertions/fluentassertions/pull/2010) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.7.0...6.8.0 ### [`v6.7.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.7.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.6.0...6.7.0) <!-- Release notes generated using configuration in .github/release.yml at master --> ##### What's Changed ##### New features - Add `BeDefined` and `NotBeDefined` to `EnumAssertions` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1888](https://togithub.com/fluentassertions/fluentassertions/pull/1888) - Restore basic assertions for collections in `System.Data` by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1812](https://togithub.com/fluentassertions/fluentassertions/pull/1812) - Add the ability to exclude non-browsable members from equivalency tests by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1827](https://togithub.com/fluentassertions/fluentassertions/pull/1827) - Add `For`/`Exclude` to allow exclusion of members inside a collection by [@​whymatter](https://togithub.com/whymatter) in [https://github.com/fluentassertions/fluentassertions/pull/1782](https://togithub.com/fluentassertions/fluentassertions/pull/1782) - Add overload to `HaveElement()` to be able to assert on occurrences for `XDocument` and `XElement` by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1880](https://togithub.com/fluentassertions/fluentassertions/pull/1880) ##### Fixes - Do not add all arguments of type `T` to the matching events, if one is found by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1920](https://togithub.com/fluentassertions/fluentassertions/pull/1920) ##### Documentation - Update documentation for event monitoring at .netstandard2.0 by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1879](https://togithub.com/fluentassertions/fluentassertions/pull/1879) - Update docxml comments on `BeInRange` by [@​andrewlock](https://togithub.com/andrewlock) in [https://github.com/fluentassertions/fluentassertions/pull/1907](https://togithub.com/fluentassertions/fluentassertions/pull/1907) - Add ContainSingle.Where to collection examples by [@​timabell](https://togithub.com/timabell) in [https://github.com/fluentassertions/fluentassertions/pull/1917](https://togithub.com/fluentassertions/fluentassertions/pull/1917) ##### Others - More code coverage by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1871](https://togithub.com/fluentassertions/fluentassertions/pull/1871) - Code style fixes by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1881](https://togithub.com/fluentassertions/fluentassertions/pull/1881) - Add missing tests (according to coveralls) for Data\* objects by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1882](https://togithub.com/fluentassertions/fluentassertions/pull/1882) - Fix small typo in `AssertionScope` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1890](https://togithub.com/fluentassertions/fluentassertions/pull/1890) - Add missing tests for matching `null` with a wildcard by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1889](https://togithub.com/fluentassertions/fluentassertions/pull/1889) - More testing of guarding methods by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1891](https://togithub.com/fluentassertions/fluentassertions/pull/1891) - Fix release notes by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1892](https://togithub.com/fluentassertions/fluentassertions/pull/1892) - Structure assertions with nested classes instead of regions (Part 1) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1898](https://togithub.com/fluentassertions/fluentassertions/pull/1898) - Add missing `null` check tests in Data\*Specs by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1899](https://togithub.com/fluentassertions/fluentassertions/pull/1899) - Structure assertions with nested classes instead of regions (Part 2) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1900](https://togithub.com/fluentassertions/fluentassertions/pull/1900) - Update nugets by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1901](https://togithub.com/fluentassertions/fluentassertions/pull/1901) - Cleanup README.md by [@​robvanuden](https://togithub.com/robvanuden) in [https://github.com/fluentassertions/fluentassertions/pull/1905](https://togithub.com/fluentassertions/fluentassertions/pull/1905) - Structure assertions with nested classes instead of regions (Part 3) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1903](https://togithub.com/fluentassertions/fluentassertions/pull/1903) - Try to stabilize UIFact tests by running them sequentially by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1902](https://togithub.com/fluentassertions/fluentassertions/pull/1902) - Structure assertions with nested classes instead of regions (Part 4) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1908](https://togithub.com/fluentassertions/fluentassertions/pull/1908) - Structure assertions with nested classes instead of regions (Part 5) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1909](https://togithub.com/fluentassertions/fluentassertions/pull/1909) - Fix coveralls badge by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1906](https://togithub.com/fluentassertions/fluentassertions/pull/1906) - Fix codestyle issues by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1912](https://togithub.com/fluentassertions/fluentassertions/pull/1912) - Structure assertions with nested classes instead of regions (Part 6) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1911](https://togithub.com/fluentassertions/fluentassertions/pull/1911) - Fix the failure message for occurrence regex by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1913](https://togithub.com/fluentassertions/fluentassertions/pull/1913) ##### New Contributors - [@​ITaluone](https://togithub.com/ITaluone) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1871](https://togithub.com/fluentassertions/fluentassertions/pull/1871) - [@​whymatter](https://togithub.com/whymatter) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1782](https://togithub.com/fluentassertions/fluentassertions/pull/1782) - [@​andrewlock](https://togithub.com/andrewlock) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1907](https://togithub.com/fluentassertions/fluentassertions/pull/1907) - [@​timabell](https://togithub.com/timabell) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1917](https://togithub.com/fluentassertions/fluentassertions/pull/1917) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.6.0...6.7.0 ### [`v6.6.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.6.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.5.1...6.6.0) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### New features - Adding support for .NET6 `DateOnly` struct by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1844](https://togithub.com/fluentassertions/fluentassertions/pull/1844) - Adding support for .NET6 `TimeOnly` struct by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1848](https://togithub.com/fluentassertions/fluentassertions/pull/1848) - Extend `NullableBooleanAssertions` by `NotBe()` by [@​mu88](https://togithub.com/mu88) in [https://github.com/fluentassertions/fluentassertions/pull/1865](https://togithub.com/fluentassertions/fluentassertions/pull/1865) - Added a new overload to `MatchRegex()` to assert on the number of regex matches by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1869](https://togithub.com/fluentassertions/fluentassertions/pull/1869) ##### Improvements - Annotated `[Not]MatchRegex` with `[StringSyntax("Regex")]` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1816](https://togithub.com/fluentassertions/fluentassertions/pull/1816) - Determine caller name for `EnumAssertions.Be` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1835](https://togithub.com/fluentassertions/fluentassertions/pull/1835) - Add difference to numeric assertion failure messages by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1859](https://togithub.com/fluentassertions/fluentassertions/pull/1859) - Improve difference calculation of overflowing integrals by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1875](https://togithub.com/fluentassertions/fluentassertions/pull/1875) ##### Fixes - Ensure `ExcludingMissingMembers` doesn't undo usage of `WithMapping` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1838](https://togithub.com/fluentassertions/fluentassertions/pull/1838) - Better support for NaN in numeric assertions on floats and doubles by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1822](https://togithub.com/fluentassertions/fluentassertions/pull/1822) - `WithMapping` now works in equivalency assertions on collections by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1858](https://togithub.com/fluentassertions/fluentassertions/pull/1858) - Better handling of NaN in nullable numeric assertions by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1867](https://togithub.com/fluentassertions/fluentassertions/pull/1867) ##### Documentation - Fix typo in comment for `ComparingRecordsByMembers` by [@​kijanawoodard](https://togithub.com/kijanawoodard) in [https://github.com/fluentassertions/fluentassertions/pull/1809](https://togithub.com/fluentassertions/fluentassertions/pull/1809) - Add release notes template by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1818](https://togithub.com/fluentassertions/fluentassertions/pull/1818) - Update migration tip on how to replace `AllItemsAreInstancesOfType` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1873](https://togithub.com/fluentassertions/fluentassertions/pull/1873) ##### Others - Add code coverage reporting by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1815](https://togithub.com/fluentassertions/fluentassertions/pull/1815) - Fix uninvoked actions in tests by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1817](https://togithub.com/fluentassertions/fluentassertions/pull/1817) - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1819](https://togithub.com/fluentassertions/fluentassertions/pull/1819) - More Code Coverage by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1820](https://togithub.com/fluentassertions/fluentassertions/pull/1820) - Reordered the numeric tests and replaced regions with nested classes by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1821](https://togithub.com/fluentassertions/fluentassertions/pull/1821) - Fill gaps in System.Data unit testing by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1814](https://togithub.com/fluentassertions/fluentassertions/pull/1814) - Add net6.0 target by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1831](https://togithub.com/fluentassertions/fluentassertions/pull/1831) - Target PRs at develop instead of master by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1836](https://togithub.com/fluentassertions/fluentassertions/pull/1836) - Adds test for string collection equivalency by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1843](https://togithub.com/fluentassertions/fluentassertions/pull/1843) - Replaced regions in numeric specs with nested classes by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1837](https://togithub.com/fluentassertions/fluentassertions/pull/1837) - Rename constructor parameter for `NullableDateOnlyAssertions` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1846](https://togithub.com/fluentassertions/fluentassertions/pull/1846) - Improve code coverage of fake should overloads by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1847](https://togithub.com/fluentassertions/fluentassertions/pull/1847) - Improve code coverage and fix some test mutations by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1839](https://togithub.com/fluentassertions/fluentassertions/pull/1839) - Removes unnecessary code by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1849](https://togithub.com/fluentassertions/fluentassertions/pull/1849) - `A_NaN_is_never_in_range_of_two_doubles` was exercising `float`s by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1852](https://togithub.com/fluentassertions/fluentassertions/pull/1852) - Split `StringAssertionSpecs` file by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1855](https://togithub.com/fluentassertions/fluentassertions/pull/1855) - Update internal test and build nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1866](https://togithub.com/fluentassertions/fluentassertions/pull/1866) - Add test coverage for `OccurrenceConstraint` by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1856](https://togithub.com/fluentassertions/fluentassertions/pull/1856) - Fix Some Typos in UpgradingToV6.md by [@​say25](https://togithub.com/say25) in [https://github.com/fluentassertions/fluentassertions/pull/1870](https://togithub.com/fluentassertions/fluentassertions/pull/1870) - Cleanups in Specs by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1853](https://togithub.com/fluentassertions/fluentassertions/pull/1853) #### New Contributors - [@​kijanawoodard](https://togithub.com/kijanawoodard) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1809](https://togithub.com/fluentassertions/fluentassertions/pull/1809) - [@​say25](https://togithub.com/say25) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1870](https://togithub.com/fluentassertions/fluentassertions/pull/1870) - [@​IT-VBFK](https://togithub.com/IT-VBFK) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1869](https://togithub.com/fluentassertions/fluentassertions/pull/1869) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.5.1...6.6.0 ### [`v6.5.1`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.5.1) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.5.0...6.5.1) #### What's Changed - Maintenance on release notes, Github content files, etc by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1800](https://togithub.com/fluentassertions/fluentassertions/pull/1800) - Make the site work with Ruby 3 and update catchphrase and sponsors by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1801](https://togithub.com/fluentassertions/fluentassertions/pull/1801) - Fix ordering collections by the identity function by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1802](https://togithub.com/fluentassertions/fluentassertions/pull/1802) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.5.0...6.5.1 Public release notes: https://fluentassertions.com/releases/[#​651](https://togithub.com/fluentassertions/fluentassertions/issues/651) ### [`v6.5.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.5.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.4.0...6.5.0) #### What's Changed - Allow mapping properties and/or fields with different names by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1742](https://togithub.com/fluentassertions/fluentassertions/pull/1742) - Moved the equivalency specs to a separate test project and split them into separate classes by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1789](https://togithub.com/fluentassertions/fluentassertions/pull/1789) - Improved docs on `BeLowerCased` and `BeUpperCased` for mixed strings by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1792](https://togithub.com/fluentassertions/fluentassertions/pull/1792) - Fixed a continuation issue in the fluent assertion API by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1791](https://togithub.com/fluentassertions/fluentassertions/pull/1791) - Properly recognized non-class types as internal when using `HaveAccessModifier` assertion by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1793](https://togithub.com/fluentassertions/fluentassertions/pull/1793) - Caller identification does not handle all arguments using `new` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1794](https://togithub.com/fluentassertions/fluentassertions/pull/1794) - Added `AllSatisfy` by [@​kmusick](https://togithub.com/kmusick) in [https://github.com/fluentassertions/fluentassertions/pull/1790](https://togithub.com/fluentassertions/fluentassertions/pull/1790) - Fix and improve tracing for nested `AssertionScope`s by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1797](https://togithub.com/fluentassertions/fluentassertions/pull/1797) #### New Contributors - [@​kmusick](https://togithub.com/kmusick) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1790](https://togithub.com/fluentassertions/fluentassertions/pull/1790) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.4.0...6.5.0 ### [`v6.4.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.4.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.3.0...6.4.0) #### What's Changed - Adds `ThatAreStatic` and `ThatAreNotStatic` to `MethodInfoSelector` by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1740](https://togithub.com/fluentassertions/fluentassertions/pull/1740) - Trailing slash results in 404 page by [@​MEmanuelsson](https://togithub.com/MEmanuelsson) in [https://github.com/fluentassertions/fluentassertions/pull/1767](https://togithub.com/fluentassertions/fluentassertions/pull/1767) - Introduce assertions for `StatusCode` of `HttpResponseMessage` by [@​mu88](https://togithub.com/mu88) for [@​swisspost](https://togithub.com/swisspost) in [https://github.com/fluentassertions/fluentassertions/pull/1737](https://togithub.com/fluentassertions/fluentassertions/pull/1737) - `ContainItemsAssignableTo` now expects at least one item assignable to `T` by [@​MullerWasHere](https://togithub.com/MullerWasHere) in [https://github.com/fluentassertions/fluentassertions/pull/1765](https://togithub.com/fluentassertions/fluentassertions/pull/1765) - Variable name is not captured after await assertion by [@​MullerWasHere](https://togithub.com/MullerWasHere) in [https://github.com/fluentassertions/fluentassertions/pull/1770](https://togithub.com/fluentassertions/fluentassertions/pull/1770) - Fix typos by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1774](https://togithub.com/fluentassertions/fluentassertions/pull/1774) - Non-generic overload for `WithInnerExceptionExactly` by [@​karenfarnes](https://togithub.com/karenfarnes) in [https://github.com/fluentassertions/fluentassertions/pull/1769](https://togithub.com/fluentassertions/fluentassertions/pull/1769) - Fix determining caller identity for NET Native by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1776](https://togithub.com/fluentassertions/fluentassertions/pull/1776) - Adjust Identifier properties by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1777](https://togithub.com/fluentassertions/fluentassertions/pull/1777) - Relax `When_the_execution_time_of_an_async_action_is_less_than_a_limit_it_should_not_throw` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1778](https://togithub.com/fluentassertions/fluentassertions/pull/1778) - Bump Nuke/GitVersion, improve PR numbering, simplify Yaml script by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1775](https://togithub.com/fluentassertions/fluentassertions/pull/1775) - `OccurredEvent` ordering on monitored object is now done via thread-safe counter by [@​MullerWasHere](https://togithub.com/MullerWasHere) in [https://github.com/fluentassertions/fluentassertions/pull/1773](https://togithub.com/fluentassertions/fluentassertions/pull/1773) - override Identifier for `BufferedStream` by [@​amosonn](https://togithub.com/amosonn) in [https://github.com/fluentassertions/fluentassertions/pull/1772](https://togithub.com/fluentassertions/fluentassertions/pull/1772) - Fix `TryGetValue` for dictionary like enumerables by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1786](https://togithub.com/fluentassertions/fluentassertions/pull/1786) - Optimize build times by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1787](https://togithub.com/fluentassertions/fluentassertions/pull/1787) - Guard against unformattable caller name by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1788](https://togithub.com/fluentassertions/fluentassertions/pull/1788) #### New Contributors - [@​MEmanuelsson](https://togithub.com/MEmanuelsson) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1767](https://togithub.com/fluentassertions/fluentassertions/pull/1767) - [@​MullerWasHere](https://togithub.com/MullerWasHere) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1765](https://togithub.com/fluentassertions/fluentassertions/pull/1765) - [@​karenfarnes](https://togithub.com/karenfarnes) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1769](https://togithub.com/fluentassertions/fluentassertions/pull/1769) - [@​amosonn](https://togithub.com/amosonn) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1772](https://togithub.com/fluentassertions/fluentassertions/pull/1772) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.3.0...6.4.0 **Public release notes**: https://fluentassertions.com/releases/[#​640](https://togithub.com/fluentassertions/fluentassertions/issues/640) ### [`v6.3.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.3.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.2.0...6.3.0) #### What's Changed - Fix building on linux/WSL by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1723](https://togithub.com/fluentassertions/fluentassertions/pull/1723) - Test that `ComparingByMembers` clears `equalityStrategyCache` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1724](https://togithub.com/fluentassertions/fluentassertions/pull/1724) - Adding `ThatAreAsync()` and `ThatAreNotAsync()` to `MethodInfoSelector` by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1725](https://togithub.com/fluentassertions/fluentassertions/pull/1725) - Return Task for async/non-async test method by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1736](https://togithub.com/fluentassertions/fluentassertions/pull/1736) - Fix contributing guidelines by [@​wgnf](https://togithub.com/wgnf) in [https://github.com/fluentassertions/fluentassertions/pull/1739](https://togithub.com/fluentassertions/fluentassertions/pull/1739) - Replace non-generic collection examples with generic collections in documentation by [@​jonathonchase](https://togithub.com/jonathonchase) in [https://github.com/fluentassertions/fluentassertions/pull/1745](https://togithub.com/fluentassertions/fluentassertions/pull/1745) - Adds ThatAre(Not)Virtual to MethodInfoSelector by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1744](https://togithub.com/fluentassertions/fluentassertions/pull/1744) - Prevent multiple enumeration in `ContainSingle()` by [@​bert2](https://togithub.com/bert2) in [https://github.com/fluentassertions/fluentassertions/pull/1753](https://togithub.com/fluentassertions/fluentassertions/pull/1753) - Change HaveCount assertion message order to state number before dumpi… by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1760](https://togithub.com/fluentassertions/fluentassertions/pull/1760) - Throw exception when calling object.Equals on Assertions class by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1764](https://togithub.com/fluentassertions/fluentassertions/pull/1764) - Take sync work into account in CompleteWithinAsync by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1762](https://togithub.com/fluentassertions/fluentassertions/pull/1762) #### New Contributors - [@​wgnf](https://togithub.com/wgnf) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1739](https://togithub.com/fluentassertions/fluentassertions/pull/1739) - [@​jonathonchase](https://togithub.com/jonathonchase) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1745](https://togithub.com/fluentassertions/fluentassertions/pull/1745) - [@​bert2](https://togithub.com/bert2) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1753](https://togithub.com/fluentassertions/fluentassertions/pull/1753) - [@​iliashkolyar](https://togithub.com/iliashkolyar) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1760](https://togithub.com/fluentassertions/fluentassertions/pull/1760) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.2.0...6.3.0 ### [`v6.2.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.2.0) [Compa </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/cythral/brighid-commands). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4zNC4xIiwidXBkYXRlZEluVmVyIjoiMzUuMzQuMSJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [FluentAssertions](https://www.fluentassertions.com/) ([source](https://togithub.com/fluentassertions/fluentassertions)) | nuget | major | `5.10.3` -> `6.10.0` | --- ### Release Notes <details> <summary>fluentassertions/fluentassertions</summary> ### [`v6.10.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.10.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.9.0...6.10.0) <!-- Release notes generated using configuration in .github/release.yml at master --> ##### What's Changed ##### Fixes - Declare `System.Net.Http` as a framework dependency by [@​AArnott](https://togithub.com/AArnott) in [https://github.com/fluentassertions/fluentassertions/pull/2122](https://togithub.com/fluentassertions/fluentassertions/pull/2122) - Improves how `BeEquivalentTo` handles fields hiding base-class fields by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1990](https://togithub.com/fluentassertions/fluentassertions/pull/1990) - Fix timeout check in `WithResult` extension by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2101](https://togithub.com/fluentassertions/fluentassertions/pull/2101) - Avoid exceptions when wrapping in `AssertionScope` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2103](https://togithub.com/fluentassertions/fluentassertions/pull/2103) ##### Others - Fix copyright year by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2099](https://togithub.com/fluentassertions/fluentassertions/pull/2099) - Fix broken link in releases.md by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2096](https://togithub.com/fluentassertions/fluentassertions/pull/2096) - Check if `lcov.info` does exist by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2097](https://togithub.com/fluentassertions/fluentassertions/pull/2097) - Clean up `Build.cs` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2093](https://togithub.com/fluentassertions/fluentassertions/pull/2093) - Updated editor configs by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/2104](https://togithub.com/fluentassertions/fluentassertions/pull/2104) - Revert early returns for project consistency by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2105](https://togithub.com/fluentassertions/fluentassertions/pull/2105) - Update data.md to fix typo by [@​berserck](https://togithub.com/berserck) in [https://github.com/fluentassertions/fluentassertions/pull/2114](https://togithub.com/fluentassertions/fluentassertions/pull/2114) - Add unit tests for better coverage in Execution namespace by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2042](https://togithub.com/fluentassertions/fluentassertions/pull/2042) - Add code coverage to XUnit2.Specs by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2115](https://togithub.com/fluentassertions/fluentassertions/pull/2115) - Regrouping and formatting of the selection rule specs by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/2106](https://togithub.com/fluentassertions/fluentassertions/pull/2106) - Add fancy `ReportSummary` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2116](https://togithub.com/fluentassertions/fluentassertions/pull/2116) - Add new issue template for a general feature by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2113](https://togithub.com/fluentassertions/fluentassertions/pull/2113) - Add missing tests for `int.Seconds(TimeSpan)` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2119](https://togithub.com/fluentassertions/fluentassertions/pull/2119) - Add test summaries by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2118](https://togithub.com/fluentassertions/fluentassertions/pull/2118) - Declare few more files as `DocumentationChanges` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2100](https://togithub.com/fluentassertions/fluentassertions/pull/2100) - Remove unused InstallPfx.bat by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2124](https://togithub.com/fluentassertions/fluentassertions/pull/2124) ##### New Contributors - [@​berserck](https://togithub.com/berserck) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2114](https://togithub.com/fluentassertions/fluentassertions/pull/2114) - [@​AArnott](https://togithub.com/AArnott) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2122](https://togithub.com/fluentassertions/fluentassertions/pull/2122) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.9.0...6.10.0 ### [`v6.9.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.9.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.8.0...6.9.0) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### New features - Added `BeOneOf` for `IComparable`s and object comparisons. by [@​jez9999](https://togithub.com/jez9999) in [https://github.com/fluentassertions/fluentassertions/pull/2028](https://togithub.com/fluentassertions/fluentassertions/pull/2028) - Add `BeCloseTo()` / `NotBeCloseTo()` to TimeOnlyAssertions by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2030](https://togithub.com/fluentassertions/fluentassertions/pull/2030) - Add `ThatAre[Not]Abstract`, `ThatAre[Not]Static` and `ThatAre[Not]Virtual` to `PropertyInfoSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2054](https://togithub.com/fluentassertions/fluentassertions/pull/2054) - Add `ThatAre[Not]Abstract` to `MethodInfoSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2060](https://togithub.com/fluentassertions/fluentassertions/pull/2060) - Add `ThatAre[Not]Abstract` to `TypeSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2058](https://togithub.com/fluentassertions/fluentassertions/pull/2058) - Add `ThatAre[Not]Sealed` to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2059](https://togithub.com/fluentassertions/fluentassertions/pull/2059) - Add `ThatAre[Not]Interfaces` to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2057](https://togithub.com/fluentassertions/fluentassertions/pull/2057) - Add extensions for `OccurrenceConstraint` that reads more fluently by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2047](https://togithub.com/fluentassertions/fluentassertions/pull/2047) - Add `Imply()` to `BooleanAssertions` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2074](https://togithub.com/fluentassertions/fluentassertions/pull/2074) - Add `ThatAre[Not]ValueTypes` method to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2083](https://togithub.com/fluentassertions/fluentassertions/pull/2083) ##### Improvements - Order strings with ordinal comparison by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2075](https://togithub.com/fluentassertions/fluentassertions/pull/2075) - Improve performance of `IsTuple()` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2079](https://togithub.com/fluentassertions/fluentassertions/pull/2079) - Optimize `IsRecord()` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2080](https://togithub.com/fluentassertions/fluentassertions/pull/2080) ##### Fixes - Nested `AssertionScope`s do not print inner scope reportables by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2044](https://togithub.com/fluentassertions/fluentassertions/pull/2044) - Extend `ThatArePublicOrInternal` to also look at the setter of properties by [@​Ruijin92](https://togithub.com/Ruijin92) in [https://github.com/fluentassertions/fluentassertions/pull/2082](https://togithub.com/fluentassertions/fluentassertions/pull/2082) - Treat record structs as records by [@​salvois](https://togithub.com/salvois) in [https://github.com/fluentassertions/fluentassertions/pull/2009](https://togithub.com/fluentassertions/fluentassertions/pull/2009) ##### Documentation - Document alternatives for collection order by [@​nycdotnet](https://togithub.com/nycdotnet) in [https://github.com/fluentassertions/fluentassertions/pull/2063](https://togithub.com/fluentassertions/fluentassertions/pull/2063) - Document that `PathMap` is currently not supported by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2067](https://togithub.com/fluentassertions/fluentassertions/pull/2067) - Use langword instead of <c> for C# keywords by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2070](https://togithub.com/fluentassertions/fluentassertions/pull/2070) - Add missing exceptions to xml summaries by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2023](https://togithub.com/fluentassertions/fluentassertions/pull/2023) - Improve `Guard` helper by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2076](https://togithub.com/fluentassertions/fluentassertions/pull/2076) - Add issue templates and api review process by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2078](https://togithub.com/fluentassertions/fluentassertions/pull/2078) - Add `cSpell` to NUKE build pipeline by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2086](https://togithub.com/fluentassertions/fluentassertions/pull/2086) ##### Others - Enable CI unit tests on linux and mac by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2021](https://togithub.com/fluentassertions/fluentassertions/pull/2021) - update catch phrase url by [@​danielchalmers](https://togithub.com/danielchalmers) in [https://github.com/fluentassertions/fluentassertions/pull/2025](https://togithub.com/fluentassertions/fluentassertions/pull/2025) - Prepare approval tests for .NET 7 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2024](https://togithub.com/fluentassertions/fluentassertions/pull/2024) - Use PolySharp to generate polyfill attributes by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2026](https://togithub.com/fluentassertions/fluentassertions/pull/2026) - New unit test to verify CompleteWithinAsync behaves correctly in an assertion scope by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2033](https://togithub.com/fluentassertions/fluentassertions/pull/2033) - Fix nuget config to be able to restore/build the project when having custom HTTP nuget sources by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2032](https://togithub.com/fluentassertions/fluentassertions/pull/2032) - Improve coverage on data assertions by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2037](https://togithub.com/fluentassertions/fluentassertions/pull/2037) - Bump minimum SDK to 6.0.400 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2038](https://togithub.com/fluentassertions/fluentassertions/pull/2038) - Let `EquatableOfInt` implement `IComparable<T>` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2036](https://togithub.com/fluentassertions/fluentassertions/pull/2036) - New tests for better code coverage on collection assertions by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2035](https://togithub.com/fluentassertions/fluentassertions/pull/2035) - Comparable type assertions referential equality by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2046](https://togithub.com/fluentassertions/fluentassertions/pull/2046) - Use TheoryData by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2068](https://togithub.com/fluentassertions/fluentassertions/pull/2068) - Pattern combinators by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2039](https://togithub.com/fluentassertions/fluentassertions/pull/2039) - Update nugets by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2077](https://togithub.com/fluentassertions/fluentassertions/pull/2077) - Set process dotnet cli language to en-US by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2084](https://togithub.com/fluentassertions/fluentassertions/pull/2084) - Bump required .NET SDK to v7 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2087](https://togithub.com/fluentassertions/fluentassertions/pull/2087) - Optimize NUKE spell check by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2089](https://togithub.com/fluentassertions/fluentassertions/pull/2089) - Cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2081](https://togithub.com/fluentassertions/fluentassertions/pull/2081) - Fix build breaking on non PR branches by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2090](https://togithub.com/fluentassertions/fluentassertions/pull/2090) - Add process env variable `DOTNET_CLI_UI_LANGUAGE` also inside targets by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2092](https://togithub.com/fluentassertions/fluentassertions/pull/2092) #### New Contributors - [@​danielchalmers](https://togithub.com/danielchalmers) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2025](https://togithub.com/fluentassertions/fluentassertions/pull/2025) - [@​jez9999](https://togithub.com/jez9999) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2028](https://togithub.com/fluentassertions/fluentassertions/pull/2028) - [@​94sedighi](https://togithub.com/94sedighi) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2054](https://togithub.com/fluentassertions/fluentassertions/pull/2054) - [@​Ruijin92](https://togithub.com/Ruijin92) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2082](https://togithub.com/fluentassertions/fluentassertions/pull/2082) - [@​salvois](https://togithub.com/salvois) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2009](https://togithub.com/fluentassertions/fluentassertions/pull/2009) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.8.0...6.9.0 ### [`v6.8.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.8.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.7.0...6.8.0) <!-- Release notes generated using configuration in .github/release.yml at develop --> ##### What's Changed ##### New features - Extend collection assertions with `ContainInConsecutiveOrder` and `NotContainInConsecutiveOrder` by [@​StacyCash](https://togithub.com/StacyCash) in [https://github.com/fluentassertions/fluentassertions/pull/1963](https://togithub.com/fluentassertions/fluentassertions/pull/1963) - Added `NotCompleteWithinAsync` for Task assertions by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/1967](https://togithub.com/fluentassertions/fluentassertions/pull/1967) - Added assertions for non-generic `TaskCompletionSource` by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/1961](https://togithub.com/fluentassertions/fluentassertions/pull/1961) - Exposes the `IMonitor` object to extensions methods. by [@​A-Kjeldgaard](https://togithub.com/A-Kjeldgaard) in [https://github.com/fluentassertions/fluentassertions/pull/2010](https://togithub.com/fluentassertions/fluentassertions/pull/2010) ##### Improvements - Optimize `BeEquivalentTo` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1939](https://togithub.com/fluentassertions/fluentassertions/pull/1939) - Print commas at the end of the line by [@​ronaldkroon](https://togithub.com/ronaldkroon) in [https://github.com/fluentassertions/fluentassertions/pull/1945](https://togithub.com/fluentassertions/fluentassertions/pull/1945) - Avoid allocating sub-arrays in `ContainInOrder` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1960](https://togithub.com/fluentassertions/fluentassertions/pull/1960) - Extend `IObjectInfo` with info about `DeclaringType` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1950](https://togithub.com/fluentassertions/fluentassertions/pull/1950) - Prepare constructors of `AsyncFunctionAssertions` to make them protected in V7 by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/1972](https://togithub.com/fluentassertions/fluentassertions/pull/1972) - Calculate the difference between the subject and the expected nearby time by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2013](https://togithub.com/fluentassertions/fluentassertions/pull/2013) ##### Fixes - Filter dynamic methods from stack trace by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1943](https://togithub.com/fluentassertions/fluentassertions/pull/1943) - Make For/Excluding work with nested paths by [@​whymatter](https://togithub.com/whymatter) in [https://github.com/fluentassertions/fluentassertions/pull/1953](https://togithub.com/fluentassertions/fluentassertions/pull/1953) - Use InvariantCulture when doing case-insensitive matches by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1985](https://togithub.com/fluentassertions/fluentassertions/pull/1985) - Global record equivalency settings were not taken into account by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1984](https://togithub.com/fluentassertions/fluentassertions/pull/1984) - Escape brackets in execution time failures by [@​Briaoeuidhtns](https://togithub.com/Briaoeuidhtns) in [https://github.com/fluentassertions/fluentassertions/pull/1994](https://togithub.com/fluentassertions/fluentassertions/pull/1994) ##### Documentation - More specifically clarify the intentions of `WithArgs` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1929](https://togithub.com/fluentassertions/fluentassertions/pull/1929) - Remove building link from the website by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1934](https://togithub.com/fluentassertions/fluentassertions/pull/1934) - Add `Enum.BeOneOf` to the docs by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1958](https://togithub.com/fluentassertions/fluentassertions/pull/1958) - Document how to use `ModuleInitializer` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1966](https://togithub.com/fluentassertions/fluentassertions/pull/1966) - Fix a typo on the Assembly References documentation page by [@​asydikov](https://togithub.com/asydikov) in [https://github.com/fluentassertions/fluentassertions/pull/1970](https://togithub.com/fluentassertions/fluentassertions/pull/1970) - Update summary of `EquivalencyValidator` by [@​Wolgo](https://togithub.com/Wolgo) in [https://github.com/fluentassertions/fluentassertions/pull/1991](https://togithub.com/fluentassertions/fluentassertions/pull/1991) - Improve error messages for accidental `Equals` usage by [@​nycdotnet](https://togithub.com/nycdotnet) in [https://github.com/fluentassertions/fluentassertions/pull/2006](https://togithub.com/fluentassertions/fluentassertions/pull/2006) ##### Others - Upgrade to C# 10 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1935](https://togithub.com/fluentassertions/fluentassertions/pull/1935) - Use file scoped namespaces by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1936](https://togithub.com/fluentassertions/fluentassertions/pull/1936) - More use of pattern matching and lifted operators by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1937](https://togithub.com/fluentassertions/fluentassertions/pull/1937) - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1962](https://togithub.com/fluentassertions/fluentassertions/pull/1962) - Make it possible for third-party libraries to access the underlying collection of instances of `ReadOnlyNonGenericCollectionWrapper` by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1968](https://togithub.com/fluentassertions/fluentassertions/pull/1968) - Code cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1973](https://togithub.com/fluentassertions/fluentassertions/pull/1973) - Improve coverage for `CollectionMemberObjectInfo` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1983](https://togithub.com/fluentassertions/fluentassertions/pull/1983) - Deduplicate target frameworks by [@​0xced](https://togithub.com/0xced) in [https://github.com/fluentassertions/fluentassertions/pull/1980](https://togithub.com/fluentassertions/fluentassertions/pull/1980) - Removed netcoreapp2.0 framework check in formatting precision tests by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1976](https://togithub.com/fluentassertions/fluentassertions/pull/1976) - Rename `ShouldCompareMembersThisDeep` to `ShouldCompareNodesThisDeep` by [@​Wolgo](https://togithub.com/Wolgo) in [https://github.com/fluentassertions/fluentassertions/pull/1992](https://togithub.com/fluentassertions/fluentassertions/pull/1992) - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1996](https://togithub.com/fluentassertions/fluentassertions/pull/1996) - Cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1998](https://togithub.com/fluentassertions/fluentassertions/pull/1998) - Update GitHub actions by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2007](https://togithub.com/fluentassertions/fluentassertions/pull/2007) - Fix the PR link in releases.md by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2014](https://togithub.com/fluentassertions/fluentassertions/pull/2014) - Prepare 6.8.0 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2020](https://togithub.com/fluentassertions/fluentassertions/pull/2020) ##### New Contributors - [@​StacyCash](https://togithub.com/StacyCash) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1963](https://togithub.com/fluentassertions/fluentassertions/pull/1963) - [@​asydikov](https://togithub.com/asydikov) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1970](https://togithub.com/fluentassertions/fluentassertions/pull/1970) - [@​0xced](https://togithub.com/0xced) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1980](https://togithub.com/fluentassertions/fluentassertions/pull/1980) - [@​Wolgo](https://togithub.com/Wolgo) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1991](https://togithub.com/fluentassertions/fluentassertions/pull/1991) - [@​Briaoeuidhtns](https://togithub.com/Briaoeuidhtns) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1994](https://togithub.com/fluentassertions/fluentassertions/pull/1994) - [@​nycdotnet](https://togithub.com/nycdotnet) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2006](https://togithub.com/fluentassertions/fluentassertions/pull/2006) - [@​A-Kjeldgaard](https://togithub.com/A-Kjeldgaard) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2010](https://togithub.com/fluentassertions/fluentassertions/pull/2010) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.7.0...6.8.0 ### [`v6.7.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.7.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.6.0...6.7.0) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### New features - Add `BeDefined` and `NotBeDefined` to `EnumAssertions` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1888](https://togithub.com/fluentassertions/fluentassertions/pull/1888) - Restore basic assertions for collections in `System.Data` by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1812](https://togithub.com/fluentassertions/fluentassertions/pull/1812) - Add the ability to exclude non-browsable members from equivalency tests by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1827](https://togithub.com/fluentassertions/fluentassertions/pull/1827) - Add `For`/`Exclude` to allow exclusion of members inside a collection by [@​whymatter](https://togithub.com/whymatter) in [https://github.com/fluentassertions/fluentassertions/pull/1782](https://togithub.com/fluentassertions/fluentassertions/pull/1782) - Add overload to `HaveElement()` to be able to assert on occurrences for `XDocument` and `XElement` by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1880](https://togithub.com/fluentassertions/fluentassertions/pull/1880) ##### Fixes - Do not add all arguments of type `T` to the matching events, if one is found by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1920](https://togithub.com/fluentassertions/fluentassertions/pull/1920) ##### Documentation - Update documentation for event monitoring at .netstandard2.0 by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1879](https://togithub.com/fluentassertions/fluentassertions/pull/1879) - Update docxml comments on `BeInRange` by [@​andrewlock](https://togithub.com/andrewlock) in [https://github.com/fluentassertions/fluentassertions/pull/1907](https://togithub.com/fluentassertions/fluentassertions/pull/1907) - Add ContainSingle.Where to collection examples by [@​timabell](https://togithub.com/timabell) in [https://github.com/fluentassertions/fluentassertions/pull/1917](https://togithub.com/fluentassertions/fluentassertions/pull/1917) ##### Others - More code coverage by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1871](https://togithub.com/fluentassertions/fluentassertions/pull/1871) - Code style fixes by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1881](https://togithub.com/fluentassertions/fluentassertions/pull/1881) - Add missing tests (according to coveralls) for Data\* objects by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1882](https://togithub.com/fluentassertions/fluentassertions/pull/1882) - Fix small typo in `AssertionScope` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1890](https://togithub.com/fluentassertions/fluentassertions/pull/1890) - Add missing tests for matching `null` with a wildcard by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1889](https://togithub.com/fluentassertions/fluentassertions/pull/1889) - More testing of guarding methods by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1891](https://togithub.com/fluentassertions/fluentassertions/pull/1891) - Fix release notes by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1892](https://togithub.com/fluentassertions/fluentassertions/pull/1892) - Structure assertions with nested classes instead of regions (Part 1) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1898](https://togithub.com/fluentassertions/fluentassertions/pull/1898) - Add missing `null` check tests in Data\*Specs by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1899](https://togithub.com/fluentassertions/fluentassertions/pull/1899) - Structure assertions with nested classes instead of regions (Part 2) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1900](https://togithub.com/fluentassertions/fluentassertions/pull/1900) - Update nugets by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1901](https://togithub.com/fluentassertions/fluentassertions/pull/1901) - Cleanup README.md by [@​robvanuden](https://togithub.com/robvanuden) in [https://github.com/fluentassertions/fluentassertions/pull/1905](https://togithub.com/fluentassertions/fluentassertions/pull/1905) - Structure assertions with nested classes instead of regions (Part 3) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1903](https://togithub.com/fluentassertions/fluentassertions/pull/1903) - Try to stabilize UIFact tests by running them sequentially by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1902](https://togithub.com/fluentassertions/fluentassertions/pull/1902) - Structure assertions with nested classes instead of regions (Part 4) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1908](https://togithub.com/fluentassertions/fluentassertions/pull/1908) - Structure assertions with nested classes instead of regions (Part 5) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1909](https://togithub.com/fluentassertions/fluentassertions/pull/1909) - Fix coveralls badge by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1906](https://togithub.com/fluentassertions/fluentassertions/pull/1906) - Fix codestyle issues by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1912](https://togithub.com/fluentassertions/fluentassertions/pull/1912) - Structure assertions with nested classes instead of regions (Part 6) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1911](https://togithub.com/fluentassertions/fluentassertions/pull/1911) - Fix the failure message for occurrence regex by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1913](https://togithub.com/fluentassertions/fluentassertions/pull/1913) #### New Contributors - [@​ITaluone](https://togithub.com/ITaluone) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1871](https://togithub.com/fluentassertions/fluentassertions/pull/1871) - [@​whymatter](https://togithub.com/whymatter) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1782](https://togithub.com/fluentassertions/fluentassertions/pull/1782) - [@​andrewlock](https://togithub.com/andrewlock) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1907](https://togithub.com/fluentassertions/fluentassertions/pull/1907) - [@​timabell](https://togithub.com/timabell) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1917](https://togithub.com/fluentassertions/fluentassertions/pull/1917) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.6.0...6.7.0 ### [`v6.6.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.6.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.5.1...6.6.0) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### New features - Adding support for .NET6 `DateOnly` struct by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1844](https://togithub.com/fluentassertions/fluentassertions/pull/1844) - Adding support for .NET6 `TimeOnly` struct by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1848](https://togithub.com/fluentassertions/fluentassertions/pull/1848) - Extend `NullableBooleanAssertions` by `NotBe()` by [@​mu88](https://togithub.com/mu88) in [https://github.com/fluentassertions/fluentassertions/pull/1865](https://togithub.com/fluentassertions/fluentassertions/pull/1865) - Added a new overload to `MatchRegex()` to assert on the number of regex matches by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1869](https://togithub.com/fluentassertions/fluentassertions/pull/1869) ##### Improvements - Annotated `[Not]MatchRegex` with `[StringSyntax("Regex")]` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1816](https://togithub.com/fluentassertions/fluentassertions/pull/1816) - Determine caller name for `EnumAssertions.Be` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1835](https://togithub.com/fluentassertions/fluentassertions/pull/1835) - Add difference to numeric assertion failure messages by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1859](https://togithub.com/fluentassertions/fluentassertions/pull/1859) - Improve difference calculation of overflowing integrals by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1875](https://togithub.com/fluentassertions/fluentassertions/pull/1875) ##### Fixes - Ensure `ExcludingMissingMembers` doesn't undo usage of `WithMapping` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1838](https://togithub.com/fluentassertions/fluentassertions/pull/1838) - Better support for NaN in numeric assertions on floats and doubles by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1822](https://togithub.com/fluentassertions/fluentassertions/pull/1822) - `WithMapping` now works in equivalency assertions on collections by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1858](https://togithub.com/fluentassertions/fluentassertions/pull/1858) - Better handling of NaN in nullable numeric assertions by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1867](https://togithub.com/fluentassertions/fluentassertions/pull/1867) ##### Documentation - Fix typo in comment for `ComparingRecordsByMembers` by [@​kijanawoodard](https://togithub.com/kijanawoodard) in [https://github.com/fluentassertions/fluentassertions/pull/1809](https://togithub.com/fluentassertions/fluentassertions/pull/1809) - Add release notes template by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1818](https://togithub.com/fluentassertions/fluentassertions/pull/1818) - Update migration tip on how to replace `AllItemsAreInstancesOfType` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1873](https://togithub.com/fluentassertions/fluentassertions/pull/1873) ##### Others - Add code coverage reporting by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1815](https://togithub.com/fluentassertions/fluentassertions/pull/1815) - Fix uninvoked actions in tests by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1817](https://togithub.com/fluentassertions/fluentassertions/pull/1817) - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1819](https://togithub.com/fluentassertions/fluentassertions/pull/1819) - More Code Coverage by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1820](https://togithub.com/fluentassertions/fluentassertions/pull/1820) - Reordered the numeric tests and replaced regions with nested classes by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1821](https://togithub.com/fluentassertions/fluentassertions/pull/1821) - Fill gaps in System.Data unit testing by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1814](https://togithub.com/fluentassertions/fluentassertions/pull/1814) - Add net6.0 target by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1831](https://togithub.com/fluentassertions/fluentassertions/pull/1831) - Target PRs at develop instead of master by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1836](https://togithub.com/fluentassertions/fluentassertions/pull/1836) - Adds test for string collection equivalency by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1843](https://togithub.com/fluentassertions/fluentassertions/pull/1843) - Replaced regions in numeric specs with nested classes by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1837](https://togithub.com/fluentassertions/fluentassertions/pull/1837) - Rename constructor parameter for `NullableDateOnlyAssertions` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1846](https://togithub.com/fluentassertions/fluentassertions/pull/1846) - Improve code coverage of fake should overloads by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1847](https://togithub.com/fluentassertions/fluentassertions/pull/1847) - Improve code coverage and fix some test mutations by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1839](https://togithub.com/fluentassertions/fluentassertions/pull/1839) - Removes unnecessary code by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1849](https://togithub.com/fluentassertions/fluentassertions/pull/1849) - `A_NaN_is_never_in_range_of_two_doubles` was exercising `float`s by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1852](https://togithub.com/fluentassertions/fluentassertions/pull/1852) - Split `StringAssertionSpecs` file by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1855](https://togithub.com/fluentassertions/fluentassertions/pull/1855) - Update internal test and build nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1866](https://togithub.com/fluentassertions/fluentassertions/pull/1866) - Add test coverage for `OccurrenceConstraint` by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1856](https://togithub.com/fluentassertions/fluentassertions/pull/1856) - Fix Some Typos in UpgradingToV6.md by [@​say25](https://togithub.com/say25) in [https://github.com/fluentassertions/fluentassertions/pull/1870](https://togithub.com/fluentassertions/fluentassertions/pull/1870) - Cleanups in Specs by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1853](https://togithub.com/fluentassertions/fluentassertions/pull/1853) #### New Contributors - [@​kijanawoodard](https://togithub.com/kijanawoodard) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1809](https://togithub.com/fluentassertions/fluentassertions/pull/1809) - [@​say25](https://togithub.com/say25) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1870](https://togithub.com/fluentassertions/fluentassertions/pull/1870) - [@​IT-VBFK](https://togithub.com/IT-VBFK) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1869](https://togithub.com/fluentassertions/fluentassertions/pull/1869) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.5.1...6.6.0 ### [`v6.5.1`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.5.1) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.5.0...6.5.1) #### What's Changed - Maintenance on release notes, Github content files, etc by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1800](https://togithub.com/fluentassertions/fluentassertions/pull/1800) - Make the site work with Ruby 3 and update catchphrase and sponsors by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1801](https://togithub.com/fluentassertions/fluentassertions/pull/1801) - Fix ordering collections by the identity function by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1802](https://togithub.com/fluentassertions/fluentassertions/pull/1802) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.5.0...6.5.1 Public release notes: https://fluentassertions.com/releases/[#​651](https://togithub.com/fluentassertions/fluentassertions/issues/651) ### [`v6.5.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.5.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.4.0...6.5.0) #### What's Changed - Allow mapping properties and/or fields with different names by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1742](https://togithub.com/fluentassertions/fluentassertions/pull/1742) - Moved the equivalency specs to a separate test project and split them into separate classes by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1789](https://togithub.com/fluentassertions/fluentassertions/pull/1789) - Improved docs on `BeLowerCased` and `BeUpperCased` for mixed strings by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1792](https://togithub.com/fluentassertions/fluentassertions/pull/1792) - Fixed a continuation issue in the fluent assertion API by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1791](https://togithub.com/fluentassertions/fluentassertions/pull/1791) - Properly recognized non-class types as internal when using `HaveAccessModifier` assertion by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1793](https://togithub.com/fluentassertions/fluentassertions/pull/1793) - Caller identification does not handle all arguments using `new` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1794](https://togithub.com/fluentassertions/fluentassertions/pull/1794) - Added `AllSatisfy` by [@​kmusick](https://togithub.com/kmusick) in [https://github.com/fluentassertions/fluentassertions/pull/1790](https://togithub.com/fluentassertions/fluentassertions/pull/1790) - Fix and improve tracing for nested `AssertionScope`s by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1797](https://togithub.com/fluentassertions/fluentassertions/pull/1797) #### New Contributors - [@​kmusick](https://togithub.com/kmusick) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1790](https://togithub.com/fluentassertions/fluentassertions/pull/1790) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.4.0...6.5.0 ### [`v6.4.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.4.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.3.0...6.4.0) #### What's Changed - Adds `ThatAreStatic` and `ThatAreNotStatic` to `MethodInfoSelector` by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1740](https://togithub.com/fluentassertions/fluentassertions/pull/1740) - Trailing slash results in 404 page by [@​MEmanuelsson](https://togithub.com/MEmanuelsson) in [https://github.com/fluentassertions/fluentassertions/pull/1767](https://togithub.com/fluentassertions/fluentassertions/pull/1767) - Introduce assertions for `StatusCode` of `HttpResponseMessage` by [@​mu88](https://togithub.com/mu88) for [@​swisspost](https://togithub.com/swisspost) in [https://github.com/fluentassertions/fluentassertions/pull/1737](https://togithub.com/fluentassertions/fluentassertions/pull/1737) - `ContainItemsAssignableTo` now expects at least one item assignable to `T` by [@​MullerWasHere](https://togithub.com/MullerWasHere) in [https://github.com/fluentassertions/fluentassertions/pull/1765](https://togithub.com/fluentassertions/fluentassertions/pull/1765) - Variable name is not captured after await assertion by [@​MullerWasHere](https://togithub.com/MullerWasHere) in [https://github.com/fluentassertions/fluentassertions/pull/1770](https://togithub.com/fluentassertions/fluentassertions/pull/1770) - Fix typos by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1774](https://togithub.com/fluentassertions/fluentassertions/pull/1774) - Non-generic overload for `WithInnerExceptionExactly` by [@​karenfarnes](https://togithub.com/karenfarnes) in [https://github.com/fluentassertions/fluentassertions/pull/1769](https://togithub.com/fluentassertions/fluentassertions/pull/1769) - Fix determining caller identity for NET Native by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1776](https://togithub.com/fluentassertions/fluentassertions/pull/1776) - Adjust Identifier properties by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1777](https://togithub.com/fluentassertions/fluentassertions/pull/1777) - Relax `When_the_execution_time_of_an_async_action_is_less_than_a_limit_it_should_not_throw` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1778](https://togithub.com/fluentassertions/fluentassertions/pull/1778) - Bump Nuke/GitVersion, improve PR numbering, simplify Yaml script by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1775](https://togithub.com/fluentassertions/fluentassertions/pull/1775) - `OccurredEvent` ordering on monitored object is now done via thread-safe counter by [@​MullerWasHere](https://togithub.com/MullerWasHere) in [https://github.com/fluentassertions/fluentassertions/pull/1773](https://togithub.com/fluentassertions/fluentassertions/pull/1773) - override Identifier for `BufferedStream` by [@​amosonn](https://togithub.com/amosonn) in [https://github.com/fluentassertions/fluentassertions/pull/1772](https://togithub.com/fluentassertions/fluentassertions/pull/1772) - Fix `TryGetValue` for dictionary like enumerables by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1786](https://togithub.com/fluentassertions/fluentassertions/pull/1786) - Optimize build times by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1787](https://togithub.com/fluentassertions/fluentassertions/pull/1787) - Guard against unformattable caller name by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1788](https://togithub.com/fluentassertions/fluentassertions/pull/1788) #### New Contributors - [@​MEmanuelsson](https://togithub.com/MEmanuelsson) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1767](https://togithub.com/fluentassertions/fluentassertions/pull/1767) - [@​MullerWasHere](https://togithub.com/MullerWasHere) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1765](https://togithub.com/fluentassertions/fluentassertions/pull/1765) - [@​karenfarnes](https://togithub.com/karenfarnes) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1769](https://togithub.com/fluentassertions/fluentassertions/pull/1769) - [@​amosonn](https://togithub.com/amosonn) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1772](https://togithub.com/fluentassertions/fluentassertions/pull/1772) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.3.0...6.4.0 **Public release notes**: https://fluentassertions.com/releases/[#​640](https://togithub.com/fluentassertions/fluentassertions/issues/640) ### [`v6.3.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.3.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.2.0...6.3.0) #### What's Changed - Fix building on linux/WSL by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1723](https://togithub.com/fluentassertions/fluentassertions/pull/1723) - Test that `ComparingByMembers` clears `equalityStrategyCache` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1724](https://togithub.com/fluentassertions/fluentassertions/pull/1724) - Adding `ThatAreAsync()` and `ThatAreNotAsync()` to `MethodInfoSelector` by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1725](https://togithub.com/fluentassertions/fluentassertions/pull/1725) - Return Task for async/non-async test method by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1736](https://togithub.com/fluentassertions/fluentassertions/pull/1736) - Fix contributing guidelines by [@​wgnf](https://togithub.com/wgnf) in [https://github.com/fluentassertions/fluentassertions/pull/1739](https://togithub.com/fluentassertions/fluentassertions/pull/1739) - Replace non-generic collection examples with generic collections in documentation by [@​jonathonchase](https://togithub.com/jonathonchase) in [https://github.com/fluentassertions/fluentassertions/pull/1745](https://togithub.com/fluentassertions/fluentassertions/pull/1745) - Adds ThatAre(Not)Virtual to MethodInfoSelector by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1744](https://togithub.com/fluentassertions/fluentassertions/pull/1744) - Prevent multiple enumeration in `ContainSingle()` by [@​bert2](https://togithub.com/bert2) in [https://github.com/fluentassertions/fluentassertions/pull/1753](https://togithub.com/fluentassertions/fluentassertions/pull/1753) - Change HaveCount assertion message order to state number before dumpi… by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1760](https://togithub.com/fluentassertions/fluentassertions/pull/1760) - Throw exception when calling object.Equals on Assertions class by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1764](https://togithub.com/fluentassertions/fluentassertions/pull/1764) - Take sync work into account in CompleteWithinAsync by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1762](https://togithub.com/fluentassertions/fluentassertions/pull/1762) #### New Contributors - [@​wgnf](https://togithub.com/wgnf) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1739](https://togithub.com/fluentassertions/fluentassertions/pull/1739) - [@​jonathonchase](https://togithub.com/jonathonchase) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1745](https://togithub.com/fluentassertions/fluentassertions/pull/1745) - [@​bert2](https://togithub.com/bert2) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1753](https://togithub.com/fluentassertions/fluentassertions/pull/1753) - [@​iliashkolyar](https://togithub.com/iliashkolyar) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1760](https://togithub.com/fluentassertions/fluentassertions/pull/1760) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.2.0...6.3.0 ### [`v6.2.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.2.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/cythral/brighid-discord-adapter). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4zNC4xIiwidXBkYXRlZEluVmVyIjoiMzUuNDguMiJ9--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Talen Fisher <talen.fisher@cythral.com>
In #1807, changes were made to allow non-browsable members to be excluded from equivalency tests. But, these changes ended up being reverted because they affected processing of both subject & expectation, but include/exclude functions are supposed to apply only to the expectation. In addition, the original changes only worked properly when the subject & expectation were of the same data type. In my actual usage, the subject and expectation are different data types and only one of them marks the member as non-browsable. This wasn't factored in in the original implementation, for which the unit tests exclusively test the case where the subject and expectation are the same data type. The changes in #1807 got reverted since they were in an incomplete/uncertain state and were blocking a release.
This PR makes another attempt at adding this feature. In addition to the tests added in #1807, the PR adds unit tests that comprehensively cover the behaviour when the subject and expectation are different types and only one of them marks a member as non-browsable.
This PR then also provides an implementation that allows excluding non-browsable members from the expectation using an
Excluding
method, and from the subject using a separateIgnore
method.