15820f308631a825a05feddddd0aafb962f272b9bPaul Hawkepackage fi.iki.elonen.integration;
25820f308631a825a05feddddd0aafb962f272b9bPaul Hawke
35820f308631a825a05feddddd0aafb962f272b9bPaul Hawkeimport fi.iki.elonen.NanoHTTPD;
45820f308631a825a05feddddd0aafb962f272b9bPaul Hawkeimport org.apache.http.client.HttpClient;
55820f308631a825a05feddddd0aafb962f272b9bPaul Hawkeimport org.apache.http.impl.client.DefaultHttpClient;
65820f308631a825a05feddddd0aafb962f272b9bPaul Hawkeimport org.junit.After;
75820f308631a825a05feddddd0aafb962f272b9bPaul Hawkeimport org.junit.Before;
85820f308631a825a05feddddd0aafb962f272b9bPaul Hawke
95820f308631a825a05feddddd0aafb962f272b9bPaul Hawkeimport java.io.IOException;
105820f308631a825a05feddddd0aafb962f272b9bPaul Hawke
115820f308631a825a05feddddd0aafb962f272b9bPaul Hawke/**
125820f308631a825a05feddddd0aafb962f272b9bPaul Hawke * @author Paul S. Hawke (paul.hawke@gmail.com)
135820f308631a825a05feddddd0aafb962f272b9bPaul Hawke *         On: 9/2/13 at 10:02 PM
145820f308631a825a05feddddd0aafb962f272b9bPaul Hawke */
155820f308631a825a05feddddd0aafb962f272b9bPaul Hawkepublic abstract class IntegrationTestBase<T extends NanoHTTPD> {
165820f308631a825a05feddddd0aafb962f272b9bPaul Hawke    protected DefaultHttpClient httpclient;
175820f308631a825a05feddddd0aafb962f272b9bPaul Hawke    protected T testServer;
185820f308631a825a05feddddd0aafb962f272b9bPaul Hawke
195820f308631a825a05feddddd0aafb962f272b9bPaul Hawke    @Before
205820f308631a825a05feddddd0aafb962f272b9bPaul Hawke    public void setUp() {
215820f308631a825a05feddddd0aafb962f272b9bPaul Hawke        testServer = createTestServer();
225820f308631a825a05feddddd0aafb962f272b9bPaul Hawke        httpclient = new DefaultHttpClient();
235820f308631a825a05feddddd0aafb962f272b9bPaul Hawke        try {
245820f308631a825a05feddddd0aafb962f272b9bPaul Hawke            testServer.start();
255820f308631a825a05feddddd0aafb962f272b9bPaul Hawke        } catch (IOException e) {
265820f308631a825a05feddddd0aafb962f272b9bPaul Hawke            e.printStackTrace();
275820f308631a825a05feddddd0aafb962f272b9bPaul Hawke        }
285820f308631a825a05feddddd0aafb962f272b9bPaul Hawke    }
295820f308631a825a05feddddd0aafb962f272b9bPaul Hawke
305820f308631a825a05feddddd0aafb962f272b9bPaul Hawke    @After
315820f308631a825a05feddddd0aafb962f272b9bPaul Hawke    public void tearDown() {
325820f308631a825a05feddddd0aafb962f272b9bPaul Hawke        httpclient.getConnectionManager().shutdown();
335820f308631a825a05feddddd0aafb962f272b9bPaul Hawke        testServer.stop();
345820f308631a825a05feddddd0aafb962f272b9bPaul Hawke    }
355820f308631a825a05feddddd0aafb962f272b9bPaul Hawke
365820f308631a825a05feddddd0aafb962f272b9bPaul Hawke    public abstract T createTestServer();
375820f308631a825a05feddddd0aafb962f272b9bPaul Hawke}
38