package com.collective.celos; import junit.framework.Assert; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.conn.HttpHostConnectException; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.junit.Test; import java.io.IOException; import java.net.ServerSocket; /** * Created by akonopko on 22.12.14. */ public class JettyServerTest { @Test public void testServerStarts() throws Exception { JettyServer jettyServer = new JettyServer(); int port = jettyServer.start(); HttpClient httpClient = new DefaultHttpClient(); HttpGet workflowListGet = new HttpGet("http://localhost:" + port); HttpResponse response = httpClient.execute(workflowListGet); EntityUtils.consume(response.getEntity()); Assert.assertEquals(response.getStatusLine().getStatusCode(), 403); } @Test(expected = HttpHostConnectException.class) public void testServerStops() throws Exception { JettyServer jettyServer = new JettyServer(); int port = jettyServer.start(); HttpClient httpClient = new DefaultHttpClient(); HttpGet workflowListGet = new HttpGet("http://localhost:" + port); HttpResponse response = httpClient.execute(workflowListGet); Assert.assertEquals(response.getStatusLine().getStatusCode(), 403); EntityUtils.consume(response.getEntity()); jettyServer.stop(); httpClient.execute(workflowListGet); } @Test public void testServerStartsSpecifyPort() throws Exception { int port = getFreePort(); JettyServer jettyServer = new JettyServer(); jettyServer.start(port); HttpClient httpClient = new DefaultHttpClient(); HttpGet workflowListGet = new HttpGet("http://localhost:" + port); HttpResponse response = httpClient.execute(workflowListGet); EntityUtils.consume(response.getEntity()); Assert.assertEquals(response.getStatusLine().getStatusCode(), 403); } @Test(expected = HttpHostConnectException.class) public void testServerStopsSpecifyPort() throws Exception { int port = getFreePort(); JettyServer jettyServer = new JettyServer(); jettyServer.start(port); HttpClient httpClient = new DefaultHttpClient(); HttpGet workflowListGet = new HttpGet("http://localhost:" + port); HttpResponse response = httpClient.execute(workflowListGet); Assert.assertEquals(response.getStatusLine().getStatusCode(), 403); EntityUtils.consume(response.getEntity()); jettyServer.stop(); httpClient.execute(workflowListGet); } private int getFreePort() throws IOException { ServerSocket s = new ServerSocket(0); int port = s.getLocalPort(); s.close(); return port; } }