sjhajharia opened a new pull request, #22350:
URL: https://github.com/apache/kafka/pull/22350

   ### Description:
   
   `GroupMetadataManagerTest.java` had grown to **27,879 lines / 406 `@Test` 
methods**, testing four distinct group types (Classic, Consumer/KIP-848, 
Share/KIP-932, Streams/KIP-1071) plus cross-cutting concerns in a single file. 
This made the file slow to navigate, prone to merge conflicts between teams, 
and left contributors with no clear rule for where new tests should land.
   
   ### What changed
   The file is split, by group type, into five files in the same package:
   
   - `GroupMetadataManagerTest` (residual) | 39 tests | Group-type-agnostic: 
list/describe, metadata-image plumbing, dynamic config wiring, cross-type 
rejection 
   - `GroupMetadataManagerConsumerGroupTest` | 127 tests | KIP-848 
consumer-group heartbeat/reconciliation/regex/replay, classic↔consumer 
migration paths 
   - `GroupMetadataManagerClassicGroupTest` | 130 tests | Classic protocol 
join/sync/heartbeat/leave, static membership, rebalance/session timeouts
   - `GroupMetadataManagerShareGroupTest` | 41 tests | KIP-932 share-group 
heartbeat, init/delete, offset deletion, replay
   - `GroupMetadataManagerStreamsGroupTest` | 69 tests | KIP-1071 streams-group 
heartbeat, topology, task assignment, replay 
   
   Each new class has a Javadoc stating its scope so future contributors can 
pick a destination by reading one sentence: **a test goes into the file 
matching the group type whose operation it exercises**; genuinely cross-cutting 
tests go in the residual `GroupMetadataManagerTest`.
   
   The shared `GroupMetadataManagerTestContext` is unchanged. No production 
code is changed. No tests are renamed, deleted, or modified — every `@Test` is 
moved byte-identically into its new home. Helpers that were only used by a 
single bucket move with their callers; nothing required promotion to 
`TestContext` (verified via call-site analysis).
   
   `checkstyle/suppressions.xml` was updated to add the four new file names 
alongside the existing `GroupMetadataManagerTest` entry (the new files inherit 
the same `NPathComplexity`, `MethodLength`, `ClassFanOutComplexity`, 
`ClassDataAbstractionCoupling`, `JavaNCSS` suppressions the original already 
had).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to