Generate concrete behavior registrations - #392
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe generator now registers behavior dependencies through ChangesUnified handler registration
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tests/Immediate.Handlers.FunctionalTests/RegistrationTests.cs`:
- Line 14: Update the registration test to invoke both
MultipleBehaviorHandler.AddHandlers and
MultipleStreamingBehaviorsHandler.AddHandlers twice before the assertions. Keep
the existing expected descriptor lists unchanged so the test verifies duplicate
registration is handled correctly.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 69530036-7b28-4727-921d-931abcfaae2c
📒 Files selected for processing (70)
.gitattributesreadme.mdsamples/Normal/Program.cssrc/Immediate.Handlers.Generators/ImmediateHandlersGenerator.cssrc/Immediate.Handlers.Generators/Models.cssrc/Immediate.Handlers.Generators/Templates/Handler.sbntxtsrc/Immediate.Handlers.Generators/Templates/ServiceCollectionExtensions.sbntxtsrc/Immediate.Handlers.Generators/TransformBehaviors.cstests/Immediate.Handlers.FunctionalTests/HandlerResolver.cstests/Immediate.Handlers.FunctionalTests/RegistrationTests.cstests/Immediate.Handlers.FunctionalTests/Tags/TaggedRegistrationTests.cstests/Immediate.Handlers.Tests/GeneratorTests/AddHandlersTests.cstests/Immediate.Handlers.Tests/GeneratorTests/HandlerTests.cstests/Immediate.Handlers.Tests/GeneratorTests/InvalidBehaviorsTests.cstests/Immediate.Handlers.Tests/GeneratorTests/InvalidHandlerTests.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.BehaviorsUseConcreteRegistrations_framework=net10.0#IH..FirstHandler.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.BehaviorsUseConcreteRegistrations_framework=net10.0#IH..SecondHandler.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.BehaviorsUseConcreteRegistrations_framework=net10.0#IH.ServiceCollectionExtensions.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.BehaviorsUseConcreteRegistrations_framework=net11.0#IH..FirstHandler.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.BehaviorsUseConcreteRegistrations_framework=net11.0#IH..SecondHandler.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.BehaviorsUseConcreteRegistrations_framework=net11.0#IH.ServiceCollectionExtensions.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.BehaviorsUseConcreteRegistrations_framework=net8.0#IH..FirstHandler.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.BehaviorsUseConcreteRegistrations_framework=net8.0#IH..SecondHandler.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.BehaviorsUseConcreteRegistrations_framework=net8.0#IH.ServiceCollectionExtensions.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.BehaviorsUseConcreteRegistrations_framework=net9.0#IH..FirstHandler.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.BehaviorsUseConcreteRegistrations_framework=net9.0#IH..SecondHandler.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.BehaviorsUseConcreteRegistrations_framework=net9.0#IH.ServiceCollectionExtensions.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.ValidAddHandlersMethod_framework=net10.0#IH.ServiceCollectionExtensions.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.ValidAddHandlersMethod_framework=net11.0#IH.ServiceCollectionExtensions.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.ValidAddHandlersMethod_framework=net8.0#IH.ServiceCollectionExtensions.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/AddHandlersTests.ValidAddHandlersMethod_framework=net9.0#IH.ServiceCollectionExtensions.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.BehaviorHasMultipleTRequestConstraints#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.BehaviorHasMultipleTResponseConstraints#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.CrtpBehavior#IH..ConstraintHandler.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.MultipleBehaviors#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.NestedBehavior#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.NullableBehavior_behaviorNullable=False_returnNullable=False#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.NullableBehavior_behaviorNullable=False_returnNullable=True#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.NullableBehavior_behaviorNullable=True_returnNullable=False#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.NullableBehavior_behaviorNullable=True_returnNullable=True#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.RequestTypeParameterBehavior#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.ResponseTypeParameterBehavior#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.SingleBehavior#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/BehaviorTests.ZeroTypeParameterBehavior#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.ComplexParameterAttribute#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.HandlerTags#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.IntReturnType_modifier=#IH.Dummy.GetUsersQuery.g.verified.cs``tests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.IntReturnType_modifier=static#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.MissingCancellationToken_modifier=#IH.Dummy.GetUsersQuery.g.verified.cs``tests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.MissingCancellationToken_modifier=static#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.MultipleParameterAttributes#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.NullableParameterType#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.NullableReturnType#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.ServiceLifetime_lifetime=Scoped#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.ServiceLifetime_lifetime=Singleton#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.ServiceLifetime_lifetime=Transient#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.SimpleParameterAttribute#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.VoidReturnType_modifier=#IH.Dummy.GetUsersQuery.g.verified.cs``tests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/HandlerTests.VoidReturnType_modifier=static#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/ImmediateAssemblyIdentifierTests.ImmediateAssemblyIdentifierOverridesAssemblyName_framework=net10.0#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/ImmediateAssemblyIdentifierTests.ImmediateAssemblyIdentifierOverridesAssemblyName_framework=net10.0#IH.ServiceCollectionExtensions.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/ImmediateAssemblyIdentifierTests.ImmediateAssemblyIdentifierOverridesAssemblyName_framework=net11.0#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/ImmediateAssemblyIdentifierTests.ImmediateAssemblyIdentifierOverridesAssemblyName_framework=net11.0#IH.ServiceCollectionExtensions.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/ImmediateAssemblyIdentifierTests.ImmediateAssemblyIdentifierOverridesAssemblyName_framework=net8.0#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/ImmediateAssemblyIdentifierTests.ImmediateAssemblyIdentifierOverridesAssemblyName_framework=net8.0#IH.ServiceCollectionExtensions.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/ImmediateAssemblyIdentifierTests.ImmediateAssemblyIdentifierOverridesAssemblyName_framework=net9.0#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/ImmediateAssemblyIdentifierTests.ImmediateAssemblyIdentifierOverridesAssemblyName_framework=net9.0#IH.ServiceCollectionExtensions.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/StreamingHandlerTests.StreamingBehavior#IH.Dummy.GetUsersQuery.g.verified.cstests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/StreamingHandlerTests.StreamingIntReturnType_modifier=#IH.Dummy.GetUsersQuery.g.verified.cs``tests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/StreamingHandlerTests.StreamingIntReturnType_modifier=static#IH.Dummy.GetUsersQuery.g.verified.cs
💤 Files with no reviewable changes (8)
- tests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/ImmediateAssemblyIdentifierTests.ImmediateAssemblyIdentifierOverridesAssemblyName_framework=net9.0#IH.ServiceCollectionExtensions.g.verified.cs
- src/Immediate.Handlers.Generators/TransformBehaviors.cs
- src/Immediate.Handlers.Generators/Models.cs
- tests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/ImmediateAssemblyIdentifierTests.ImmediateAssemblyIdentifierOverridesAssemblyName_framework=net10.0#IH.ServiceCollectionExtensions.g.verified.cs
- src/Immediate.Handlers.Generators/Templates/ServiceCollectionExtensions.sbntxt
- tests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/ImmediateAssemblyIdentifierTests.ImmediateAssemblyIdentifierOverridesAssemblyName_framework=net8.0#IH.ServiceCollectionExtensions.g.verified.cs
- samples/Normal/Program.cs
- tests/Immediate.Handlers.Tests/GeneratorTests/Snapshots/ImmediateAssemblyIdentifierTests.ImmediateAssemblyIdentifierOverridesAssemblyName_framework=net11.0#IH.ServiceCollectionExtensions.g.verified.cs
Coverage Report for CI Build 31143653186Coverage decreased (-0.06%) to 93.829%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
Fixes #390
Summary by CodeRabbit
New Features
AddXxxHandlers()now automatically registers associated behaviors.Breaking Changes
AddXxxBehaviors()registration methods are no longer generated or required.Tests