alanlau28 commented on code in PR #23544:
URL: https://github.com/apache/kafka/pull/23544#discussion_r4083747183
##########
clients/src/test/java/org/apache/kafka/common/requests/RequestHeaderTest.java:
##########
@@ -60,6 +61,75 @@ public void testRequestHeaderV2() {
assertEquals(header, deserialized);
}
+ @Test
+ public void testRequestHeaderV3() {
+ // OffsetDelete v1 is the first RPC version mapped to the v3 request
header.
+ short apiVersion = 1;
+ RequestHeader header = new RequestHeader(ApiKeys.OFFSET_DELETE,
apiVersion, "", 10);
+ assertEquals(3, header.headerVersion());
+
+ // The client instance ID is tagged, so a v3 header which leaves it
unset is the size of a v2 header.
+ ByteBuffer buffer = RequestTestUtils.serializeRequestHeader(header);
+ assertEquals(11, buffer.remaining());
+ RequestHeader deserialized = RequestHeader.parse(buffer);
+ assertEquals(header, deserialized);
+ assertEquals(Uuid.ZERO_UUID, deserialized.data().clientInstanceId());
+ }
+
+ @Test
+ public void testRequestHeaderV3WithClientInstanceId() {
+ Uuid clientInstanceId = Uuid.randomUuid();
+ RequestHeaderData headerData = new RequestHeaderData().
+ setRequestApiKey(ApiKeys.OFFSET_DELETE.id).
+ setRequestApiVersion((short) 1).
+ setClientId("").
+ setCorrelationId(10).
+ setClientInstanceId(clientInstanceId);
+ RequestHeader header = new RequestHeader(headerData, (short) 3);
+
+ // The 10 bytes of header fields, plus the tagged field's count, tag,
size and 16-byte UUID.
+ ByteBuffer buffer = RequestTestUtils.serializeRequestHeader(header);
+ assertEquals(29, buffer.remaining());
+ RequestHeader deserialized = RequestHeader.parse(buffer);
+ assertEquals(header, deserialized);
+ assertEquals(clientInstanceId, deserialized.data().clientInstanceId());
+ }
+
+ @Test
+ public void testClientInstanceIdIsSetForTheV3Header() {
Review Comment:
definitely
--
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]