Make types generic in TAssertions
#1296
Merged
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.