package org.odata4j.test.integration;
import org.junit.After;
import org.junit.Before;
import org.odata4j.producer.server.ODataServer;
/**
* Base integration test class that:
* <ol><li>starts an ODataServer,</li>
* <li>registers an ODataProducer,</li>
* <li>and starts a client</li></ol>
*/
public abstract class AbstractIntegrationTest extends AbstractRuntimeTest {
protected static final String BASE_URI = "http://localhost:8888/test.svc/";
/**
* The ODataServer instance.
*/
protected ODataServer server;
public AbstractIntegrationTest(RuntimeFacadeType type) {
super(type);
}
@Before
public void setup() throws Exception {
startODataServer();
registerODataProducer();
startClient();
}
@After
public void teardown() throws Exception {
stopClient();
stopODataServer();
}
protected void startODataServer() throws Exception {
server = rtFacade.startODataServer(BASE_URI);
}
protected abstract void registerODataProducer() throws Exception;
protected abstract void startClient() throws Exception;
protected abstract void stopClient() throws Exception;
protected void stopODataServer() throws Exception {
server.stop();
}
}