/* * Copyright 2010 Ning, Inc. * * This program is licensed 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 org.asynchttpclient; import static org.asynchttpclient.test.TestUtils.addHttpConnector; import static org.testng.Assert.fail; import io.netty.handler.codec.http.HttpHeaders; import org.asynchttpclient.test.EchoHandler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.handler.AbstractHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; public abstract class AbstractBasicTest { protected final static int TIMEOUT = 30; protected final Logger logger = LoggerFactory.getLogger(getClass()); protected Server server; protected int port1 = -1; protected int port2 =-1; @BeforeClass(alwaysRun = true) public void setUpGlobal() throws Exception { server = new Server(); ServerConnector connector1 = addHttpConnector(server); server.setHandler(configureHandler()); ServerConnector connector2 = addHttpConnector(server); server.start(); port1 = connector1.getLocalPort(); port2 = connector2.getLocalPort(); logger.info("Local HTTP server started successfully"); } @AfterClass(alwaysRun = true) public void tearDownGlobal() throws Exception { if (server != null) server.stop(); } protected String getTargetUrl() { return String.format("http://localhost:%d/foo/test", port1); } protected String getTargetUrl2() { return String.format("https://localhost:%d/foo/test", port2); } public AbstractHandler configureHandler() throws Exception { return new EchoHandler(); } public static class AsyncCompletionHandlerAdapter extends AsyncCompletionHandler<Response> { @Override public Response onCompleted(Response response) throws Exception { return response; } @Override public void onThrowable(Throwable t) { t.printStackTrace(); } } public static class AsyncHandlerAdapter implements AsyncHandler<String> { @Override public void onThrowable(Throwable t) { t.printStackTrace(); fail("Unexpected exception", t); } @Override public State onBodyPartReceived(HttpResponseBodyPart content) throws Exception { return State.CONTINUE; } @Override public State onStatusReceived(HttpResponseStatus responseStatus) throws Exception { return State.CONTINUE; } @Override public State onHeadersReceived(HttpHeaders headers) throws Exception { return State.CONTINUE; } @Override public String onCompleted() throws Exception { return ""; } } }