chia7712 commented on code in PR #16854:
URL: https://github.com/apache/kafka/pull/16854#discussion_r1713053084
##########
clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java:
##########
@@ -8206,16 +8223,25 @@ public void
testCallFailWithUnsupportedVersionExceptionDoesNotHaveConcurrentModi
// avoid sending fetchMetadata request
doReturn(1L).when(metadataManager).metadataFetchDelayMs(anyLong());
- env.kafkaClient().setNodeApiVersions(NodeApiVersions.create());
+ mockCLient.setNodeApiVersions(NodeApiVersions.create());
try (KafkaAdminClient admin = KafkaAdminClient.createInternal(
- new AdminClientConfig(Collections.emptyMap()),
metadataManager, env.kafkaClient(), env.time())) {
- admin.describeCluster(new
DescribeClusterOptions().timeoutMs(1000));
+ new AdminClientConfig(Collections.emptyMap()),
metadataManager, mockCLient, Time.SYSTEM)) {
+ DescribeClusterResult result = admin.describeCluster(new
DescribeClusterOptions());
// make sure maybeDrainPendingCalls doesn't remove duplicate
pending calls
// the listNodes call will be added again in call.fail and
remove one in maybeDrainPendingCalls
- TestUtils.waitForCondition(() ->
env.kafkaClient().inFlightRequestCount() != 0,
+ TestUtils.waitForCondition(() ->
mockCLient.inFlightRequestCount() != 0,
"Timed out waiting for listNodes request");
+
+ // after handleUnsupportedVersionException, describe cluster
use MetadataRequest
+ ClientRequest request = mockCLient.requests().peek();
+ assertNotNull(request.apiKey());
Review Comment:
both line 8239 and line 8240 could be replaced by
`assertEquals(ApiKeys.METADATA, request.apiKey());`
##########
clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java:
##########
@@ -8206,16 +8223,25 @@ public void
testCallFailWithUnsupportedVersionExceptionDoesNotHaveConcurrentModi
// avoid sending fetchMetadata request
doReturn(1L).when(metadataManager).metadataFetchDelayMs(anyLong());
- env.kafkaClient().setNodeApiVersions(NodeApiVersions.create());
+ mockCLient.setNodeApiVersions(NodeApiVersions.create());
try (KafkaAdminClient admin = KafkaAdminClient.createInternal(
- new AdminClientConfig(Collections.emptyMap()),
metadataManager, env.kafkaClient(), env.time())) {
- admin.describeCluster(new
DescribeClusterOptions().timeoutMs(1000));
+ new AdminClientConfig(Collections.emptyMap()),
metadataManager, mockCLient, Time.SYSTEM)) {
+ DescribeClusterResult result = admin.describeCluster(new
DescribeClusterOptions());
// make sure maybeDrainPendingCalls doesn't remove duplicate
pending calls
// the listNodes call will be added again in call.fail and
remove one in maybeDrainPendingCalls
- TestUtils.waitForCondition(() ->
env.kafkaClient().inFlightRequestCount() != 0,
+ TestUtils.waitForCondition(() ->
mockCLient.inFlightRequestCount() != 0,
"Timed out waiting for listNodes request");
+
+ // after handleUnsupportedVersionException, describe cluster
use MetadataRequest
+ ClientRequest request = mockCLient.requests().peek();
+ assertNotNull(request.apiKey());
+ assertEquals(ApiMessageType.METADATA,
request.apiKey().messageType);
+
+ // clear active external request
+ mockCLient.respondToRequest(request,
prepareMetadataResponse(cluster, Errors.NONE));
+ assertDoesNotThrow(() -> result.clusterId().get());
Review Comment:
`assertEquals(cluster.clusterResource().clusterId(), assertDoesNotThrow(()
-> result.clusterId().get()));`
##########
clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java:
##########
@@ -8191,7 +8192,23 @@ public void testListClientMetricsResourcesNotSupported()
{
@Test
public void
testCallFailWithUnsupportedVersionExceptionDoesNotHaveConcurrentModificationException()
throws InterruptedException {
- try (AdminClientUnitTestEnv env = new
AdminClientUnitTestEnv(mockCluster(1, 0))) {
+ Cluster cluster = mockCluster(1, 0);
+ try (MockClient mockCLient = new MockClient(Time.SYSTEM, new
MockClient.MockMetadataUpdater() {
Review Comment:
`mockCLient` -> `mockClient`
--
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]