@Test
  public void getRequestResponseTest() throws IOException {
    short oldGetResponseVersion = GetResponse.CURRENT_VERSION;
    short oldMessageInfoVersion = MessageInfoAndMetadataListSerde.AUTO_VERSION;
    testGetRequestResponse(GetResponse.CURRENT_VERSION, MessageInfoAndMetadataListSerde.VERSION_6);
    testGetRequestResponse(GetResponse.CURRENT_VERSION, MessageInfoAndMetadataListSerde.VERSION_5);
    testGetRequestResponse(GetResponse.GET_RESPONSE_VERSION_V_5, MessageInfoAndMetadataListSerde.VERSION_6);
    testGetRequestResponse(GetResponse.GET_RESPONSE_VERSION_V_5, MessageInfoAndMetadataListSerde.VERSION_5);
    testGetRequestResponse(GetResponse.GET_RESPONSE_VERSION_V_4, MessageInfoAndMetadataListSerde.VERSION_5);
    testGetRequestResponse(GetResponse.GET_RESPONSE_VERSION_V_3, MessageInfoAndMetadataListSerde.VERSION_5);
    GetResponse.CURRENT_VERSION = oldGetResponseVersion;
    MessageInfoAndMetadataListSerde.AUTO_VERSION = oldMessageInfoVersion;
  }
Test Put requests in a specific version.
@param testVersion the version to use for the Put requests. If -1, uses the default version.
@param clusterMap the cluster map to use.
@param correlationId the correlation id associated with the request.
@param clientId the client id associated with the request.
@param blobId the blob id in the request.
@param blobProperties the {@link BlobProperties} associated with the request.
@param userMetadata the user metadata associated with the request.
@param blobType the {@link BlobType} associated with the request.
@param blob the blob content.
@param blobSize the size of the blob.
@param blobKey the encryption key of the blob.
@param expectedKey the expected encryption key from the deserialized Put request.
ambry-protocol/src/test/java/com/github/ambry/protocol/RequestResponseTest.java