@Test(groups = {"standalone", "default_provider"})
  public void basicByteBufferTest() throws Exception {
    AsyncHttpClient c = getAsyncHttpClient(null);
    try {
      File largeFile = createTempFile(1024 * 100 * 10);
      final AtomicInteger byteReceived = new AtomicInteger();

      try {
        Response response =
            c.preparePut(getTargetUrl())
                .setBody(largeFile)
                .execute(
                    new AsyncCompletionHandlerAdapter() {
                      @Override
                      public STATE onBodyPartReceived(final HttpResponseBodyPart content)
                          throws Exception {
                        byteReceived.addAndGet(content.getBodyByteBuffer().capacity());
                        return super.onBodyPartReceived(content);
                      }
                    })
                .get();

        assertNotNull(response);
        assertEquals(response.getStatusCode(), 200);
        assertEquals(byteReceived.get(), largeFile.length());
        assertEquals(response.getResponseBody().length(), largeFile.length());

      } catch (IOException ex) {
        fail("Should have timed out");
      }
    } finally {
      c.close();
    }
  }
 @Test(groups = {"standalone", "default_provider"})
 public void Expect100Continue() throws Exception {
   try (AsyncHttpClient client = getAsyncHttpClient(null)) {
     Future<Response> f =
         client
             .preparePut("http://127.0.0.1:" + port1 + "/")
             .setHeader("Expect", "100-continue")
             .setBody(SIMPLE_TEXT_FILE)
             .execute();
     Response resp = f.get();
     assertNotNull(resp);
     assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK);
     assertEquals(resp.getResponseBody(), SIMPLE_TEXT_FILE_STRING);
   }
 }