package org.opennaas.itests.helpers.server; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * * Defines the main architecture of a test which contains a resource capability with a HTTP REST driver. * * @author Adrian Rosello Rey (i2CAT) * */ public abstract class MockHTTPServerTest { private final static Log log = LogFactory.getLog(MockHTTPServerTest.class); protected HTTPServer server; protected List<HTTPServerBehaviour> desiredBehaviours; /** * Creates and starts a HTTP server in port 8080, listening for requests under the given servletURL url. It will contain the previous configured * list of behaviors, which define the set of requests the server accepts and the responses associated to them. * * @param servletUrl * @throws Exception */ protected void startServer(String servletUrl) throws Exception { log.info("Creating HTTP server on http://localhost:8080" + servletUrl); server = new HTTPServer(8080); server.setBaseURL(servletUrl); log.debug("Adding desired behaviors to server."); server.setDesiredBehaviours(desiredBehaviours); server.start(); log.info("HTTP Server successfully created on http://localhost:8080" + servletUrl); } /** * Stops the server instance. * * @throws Exception */ protected void stopServer() throws Exception { log.info("Stopping HTTP server"); server.stop(); desiredBehaviours = null; log.info("HTTP server stopped."); } /** * Method should create the list of behaviors the server will contain. * * @throws Exception */ protected abstract void prepareBehaviours() throws Exception; }