private void doRequestControlAdminRequestTest(RequestOrResponseType requestOrResponseType, boolean enable)
      throws IOException {
    MockClusterMap clusterMap = new MockClusterMap();
    PartitionId id = clusterMap.getWritablePartitionIds(MockClusterMap.DEFAULT_PARTITION_CLASS).get(0);
    int correlationId = 1234;
    String clientId = "client";
    AdminRequest adminRequest =
        new AdminRequest(AdminRequestOrResponseType.RequestControl, id, correlationId, clientId);
    RequestControlAdminRequest controlRequest =
        new RequestControlAdminRequest(requestOrResponseType, enable, adminRequest);
    DataInputStream requestStream = serAndPrepForRead(controlRequest, -1, true);
    AdminRequest deserializedAdminRequest =
        deserAdminRequestAndVerify(requestStream, clusterMap, correlationId, clientId,
            AdminRequestOrResponseType.RequestControl, id);
    RequestControlAdminRequest deserializedControlRequest =
        RequestControlAdminRequest.readFrom(requestStream, deserializedAdminRequest);
    Assert.assertEquals(requestOrResponseType, deserializedControlRequest.getRequestTypeToControl());
    Assert.assertEquals(enable, deserializedControlRequest.shouldEnable());
    controlRequest.release();
  }
Does the actual test of ser/de of {@link RequestControlAdminRequest} and checks for equality of fields with
reference data.
@param requestOrResponseType the {@link RequestOrResponseType} to be used in the {@link RequestControlAdminRequest}
@param enable the value for the enable field in {@link RequestControlAdminRequest}.
@throws IOException
ambry-protocol/src/test/java/com/github/ambry/protocol/RequestResponseTest.java