-
-
Notifications
You must be signed in to change notification settings - Fork 109
feat(assertions): add CollectionNotNullAssertion for collection null checks with chaining support #3473
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
Conversation
…checks with chaining support
|
Claude finished @thomhurst's task —— View job PR Review: CollectionNotNullAssertion FeatureI've completed my review of this pull request that adds CollectionNotNullAssertion for collection null checks with chaining support. Todo List:
Review SummaryThis PR successfully addresses issue #3471 by adding specialized collection null assertion support that preserves type information for proper chaining. The implementation is well-designed and follows TUnit's patterns. ✅ Strengths1. Code Quality & Design
2. Type Safety & API Design
3. Test Coverage
4. Documentation & Maintenance
🔍 Technical AnalysisPerformance: ✅ Excellent
Security: ✅ No concerns
Thread Safety: ✅ Safe
🧪 Code Implementation ReviewThe core implementation in protected override Task<AssertionResult> CheckAsync(EvaluationMetadata<TCollection> metadata)
{
var value = metadata.Value;
if (value != null)
{
return Task.FromResult(AssertionResult.Passed);
}
return Task.FromResult(AssertionResult.Failed("value is null"));
}This is exactly right - simple, efficient, and clear. The extension method in
📋 Repository Compliance✅ Follows CLAUDE.md guidelines:
🎯 Addresses Issue #3471 PerfectlyThe implementation directly solves the compilation error described in the issue. Before this fix: // This failed to compile
await Assert.That(dictionary).IsNotNull().And.Contains(x => x.Key == "key");After this fix, it works perfectly because 🔄 Minor Suggestions
✅ Final AssessmentThis is a high-quality implementation that:
Recommendation: Approve and merge - This PR is ready for production. |
Fixes #3471