package com.collabinate.server.webserver; import static org.junit.Assert.*; import java.util.logging.Level; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.restlet.Component; import org.restlet.Request; import org.restlet.Response; import org.restlet.data.Method; import org.restlet.data.Status; import org.restlet.engine.Engine; import org.restlet.security.Authenticator; import com.collabinate.server.engine.CollabinateGraph; import com.collabinate.server.engine.GraphAdmin; import com.collabinate.server.engine.GraphEngine; import com.collabinate.server.webserver.CollabinateComponent; import com.tinkerpop.blueprints.GraphFactory; import com.tinkerpop.blueprints.KeyIndexableGraph; /** * Test class for the server component. * * @author mafuba * */ public class CollabinateComponentTest { private KeyIndexableGraph graph; private Component component; @Before public void Setup() { graph = (KeyIndexableGraph)GraphFactory.open( "src/test/resources/graph.properties"); CollabinateGraph collabGraph = new CollabinateGraph(graph); GraphEngine server = new GraphEngine(collabGraph); GraphAdmin admin = new GraphAdmin(collabGraph); Engine.setRestletLogLevel(Level.WARNING); component = new CollabinateComponent(server, server, admin, new Authenticator(null) { @Override protected boolean authenticate(Request request, Response response) { return true; } }); } @After public void Teardown() throws Exception { if (component.isStarted()) { component.stop(); } graph.shutdown(); component.setContext(null); component = null; graph = null; } @Test public void component_should_be_named_collabinate() { assertEquals("Collabinate", component.getName()); } @Test public void getting_trace_resource_should_return_200() { Request request = new Request(Method.GET, "riap://application/trace"); Response response = component.handle(request); assertEquals(Status.SUCCESS_OK, response.getStatus()); } @Test public void getting_static_resource_should_return_200() { Request request = new Request(Method.GET, "riap://application/favicon.ico"); Response response = component.handle(request); assertEquals(Status.SUCCESS_OK, response.getStatus()); } @Test public void getting_invalid_route_should_return_404() { Request request = new Request(Method.GET, "riap://application/invalid/route"); Response response = component.handle(request); assertEquals(Status.CLIENT_ERROR_NOT_FOUND, response.getStatus()); } }