private void testRoundTrip(SimpleExampleMessageData message,
                               Consumer<SimpleExampleMessageData> validator,
                               short version) {
        validator.accept(message);

        SimpleExampleMessageData message2 = roundTripSerde(message, version);
        validator.accept(message2);
        assertEquals(message, message2);
        assertEquals(message.hashCode(), message2.hashCode());

        // Check JSON serialization
        JsonNode serializedJson = SimpleExampleMessageDataJsonConverter.write(message, version);
        SimpleExampleMessageData messageFromJson = SimpleExampleMessageDataJsonConverter.read(serializedJson, version);
        validator.accept(messageFromJson);
        assertEquals(message, messageFromJson);
        assertEquals(message.hashCode(), messageFromJson.hashCode());
    }
Check following cases:
1. Tagged struct can be serialized/deserialized for version it is supported
2. Tagged struct doesn't matter for versions it is not declared.
clients/src/test/java/org/apache/kafka/common/message/SimpleExampleMessageTest.java