dajac commented on a change in pull request #11688:
URL: https://github.com/apache/kafka/pull/11688#discussion_r802450152
##########
File path:
clients/src/test/java/org/apache/kafka/clients/consumer/internals/ConsumerCoordinatorTest.java
##########
@@ -386,15 +386,39 @@ public void
testPerformAssignmentShouldValidateCooperativeAssignment() {
if (protocol == COOPERATIVE) {
// in cooperative protocol, we should throw exception when
validating cooperative assignment
Exception e = assertThrows(IllegalStateException.class,
- () -> coordinator.performAssignment("1",
partitionAssignor.name(), metadata));
+ () -> coordinator.performAssignment("1",
partitionAssignor.name(), metadata, false));
assertTrue(e.getMessage().contains("Assignor supporting the
COOPERATIVE protocol violates its requirements"));
} else {
// in eager protocol, we should not validate assignment
- coordinator.performAssignment("1", partitionAssignor.name(),
metadata);
+ coordinator.performAssignment("1", partitionAssignor.name(),
metadata, false);
}
}
}
+ @Test
+ public void testPerformAssignmentShouldSkipAssignment() {
+ SubscriptionState mockSubscriptionState =
Mockito.mock(SubscriptionState.class);
+
+ Map<String, List<String>> memberSubscriptions =
singletonMap(consumerId, singletonList(topic1));
+
+ List<JoinGroupResponseData.JoinGroupResponseMember> metadata = new
ArrayList<>();
+ for (Map.Entry<String, List<String>> subscriptionEntry :
memberSubscriptions.entrySet()) {
+ ConsumerPartitionAssignor.Subscription subscription = new
ConsumerPartitionAssignor.Subscription(subscriptionEntry.getValue());
+ ByteBuffer buf =
ConsumerProtocol.serializeSubscription(subscription);
+ metadata.add(new JoinGroupResponseData.JoinGroupResponseMember()
+ .setMemberId(subscriptionEntry.getKey())
+ .setMetadata(buf.array()));
+ }
+
+ // `partitionAssignor.prepare` is not called therefore calling
`partitionAssignor.assign` will throw
Review comment:
That method is part of `MockPartitionAssignor` which is extensively used
in tests in this suite. I do agree with you than using a mock is more explicit
here. Let me update that.
--
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]