Make types generic in TAssertions#1296
Merged
jnyrup merged 1 commit intofluentassertions:developfrom Apr 3, 2020
Merged
Conversation
This PR makes most assertions generic in `TAssertions`. This benefits deriving from one those assertion classes, as chaining with `.And` allows you to continue use assertions from the derived class instead of only from the base class. Utilizing the generic type system this way also caught wrong return types. `NullableDateTimeAssertions.Be` returned an `DateTimeAssertions`, where it could return an `NullableDateTimeAssertions`. Similar "bugs" were caught in `NullableDateTimeOffsetAssertions` and `NullableBooleanAssertions`. Child classes are included to match the current signatures, which is seen by noticing that all return types of `Should`s remain the same. The only types that do not have child classes are * `AndWhichConstraint` * `DateTimeRangeAssertions` * `DateTimeOffsetRangeAssertions` This PR also served as a preparation for upcoming PRs that will improve delegate and dictionary assertions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR makes most assertions generic in
TAssertions.This benefits deriving from one of those assertion classes, as chaining
with
.Andallows you to continue use assertions from the derived class insteadof only from the base class.
Utilizing the generic type system this way also caught wrong return types.
NullableDateTimeAssertions.Bereturned anDateTimeAssertions,where it could return an
NullableDateTimeAssertions.Similar "bugs" were also caught in
NullableDateTimeOffsetAssertionsandNullableBooleanAssertions.Child classes are included to match the current signatures, which is
seen by noticing that all return types of
Shoulds remain the same.The only types that do not have child classes are
AndWhichConstraintDateTimeRangeAssertionsDateTimeOffsetRangeAssertionsThis PR also serves as a preparation for an upcoming PRs that will improve dictionary assertions.