private void putRestMethodTest(AsyncRequestResponseHandler requestResponseHandler) throws Exception {
    RestRequest restRequest = createRestRequest(RestMethod.PUT, "/", null, null);
    MockRestResponseChannel restResponseChannel = new MockRestResponseChannel();
    sendRequestAwaitResponse(requestResponseHandler, restRequest, restResponseChannel);
    if (restResponseChannel.getException() == null) {
      fail("Request handling would have failed and an exception should have been generated");
    } else {
      // it's ok if this conversion fails - the test should fail anyway.
      RestServiceException e = (RestServiceException) restResponseChannel.getException();
      assertEquals("Did not get expected RestServiceErrorCode", RestServiceErrorCode.MissingArgs,
          e.getErrorCode());
      assertTrue("AsyncRequestResponseHandler is dead", requestResponseHandler.isRunning());
    }
  }
Sends a {@link RestRequest} with an PUT {@link RestMethod}. The failure will happen once the request is
dequeued.
@param requestResponseHandler The {@link AsyncRequestResponseHandler} instance to use.
@throws Exception
ambry-rest/src/test/java/com/github/ambry/rest/AsyncRequestResponseHandlerTest.java