/*
 * Copyright 2010 Ning, Inc.
 *
 * Ning licenses this file to you under the Apache License, version 2.0
 * (the "License"); you may not use this file except in compliance with the
 * License.  You may obtain a copy of the License at:
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */
package com.ning.http.client.async;

import com.ning.http.client.AsyncHttpClient;
import com.ning.http.client.AsyncHttpClientConfig;
import com.ning.http.client.Response;
import com.ning.http.client.logging.LogManager;
import com.ning.http.client.logging.Logger;
import org.testng.annotations.Test;

public class ConnectionPoolTest extends AbstractBasicTest{
    protected final Logger log = LogManager.getLogger(AbstractBasicTest.class);
   
    @Test
    public void testMaxTotalConnections() {
        AsyncHttpClient client = new AsyncHttpClient(
                new AsyncHttpClientConfig.Builder()
                        .setConnectionTimeoutInMs(100)
                        .setRequestTimeoutInMs(100)
                        .setKeepAlive(true)
                        .setMaximumConnectionsTotal(30)
                        .build()
        );

        String url = getTargetUrl();
        for (int i = 0; i < 50; i++) {
            try {
                log.info(String.format("%d requesting url [%s]...", i, url));
                Response response = client.prepareGet(url).execute().get();
                log.info(String.format("%d response [%s].", i, response));
            } catch (Exception e) {
                log.error(String.format("%d error: %s", i, e.getMessage()));
            }
        }
    }

}

@@ -911,16 +911,82 @@
 .Test;%0A%0A
+%0Aimport java.io.IOException;%0A%0Aimport static org.testng.Assert.*;%0A%0A
 public c
@@ -1487,10 +1487,9 @@
 tal(
-30
+1
 )%0A  
@@ -1600,10 +1600,9 @@
 i %3C 
-50
+3
 ; i+
@@ -1869,31 +1869,239 @@
     
-%7D catch (Exception e) %7B
+    if (i %3E 1) %7B%0A                    fail();%0A                %7D%0A            %7D catch (Exception e) %7B%0A                assertEquals(e.getClass(), IOException.class);%0A                assertEquals(e.getMessage(), %22Too many connections%22);
 %0A   
@@ -2204,11 +2204,10 @@
 %7D%0A    %7D%0A
-%0A
 %7D%0A

Improve the test