package org.cytoscape.rest.service; import static org.junit.Assert.*; import java.util.HashSet; import java.util.Set; import javax.ws.rs.core.Application; import javax.ws.rs.core.Response; import org.cytoscape.rest.internal.resource.AlgorithmicResource; import org.glassfish.jersey.server.ResourceConfig; import org.junit.Test; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class AlgorithmicResourceTest extends BasicResourceTest { private ObjectMapper mapper = new ObjectMapper(); @Override protected Application configure() { return new ResourceConfig(AlgorithmicResource.class); } @Test public void testGetLayouts() throws Exception { final Response result = target("/v1/apply/layouts").request().get(); assertNotNull(result); assertFalse(result.getStatus() == 500); assertEquals(200, result.getStatus()); System.out.println("res: " + result.toString()); final String body = result.readEntity(String.class); System.out.println(body); final JsonNode root = mapper.readTree(body); assertTrue(root.isArray()); assertEquals(root.size(), 1); assertEquals("grid", root.get(0).asText()); } @Test public void testGetLayout() throws Exception { final Response result = target("/v1/apply/layouts/grid").request().get(); assertNotNull(result); assertFalse(result.getStatus() == 500); assertEquals(200, result.getStatus()); System.out.println("res: " + result.toString()); final String body = result.readEntity(String.class); System.out.println(body); final JsonNode root = mapper.readTree(body); assertEquals("grid", root.get("name").asText()); assertTrue(root.get("parameters").isArray()); } @Test public void testGetLayoutParameters() throws Exception { final Response result = target("/v1/apply/layouts/grid/parameters").request().get(); assertNotNull(result); assertFalse(result.getStatus() == 500); assertEquals(200, result.getStatus()); System.out.println("res: " + result.toString()); final String body = result.readEntity(String.class); System.out.println(body); final JsonNode root = mapper.readTree(body); assertTrue(root.isArray()); } @Test public void testGetLayoutColumnType() throws Exception { final Response result = target("/v1/apply/layouts/grid/columntypes").request().get(); assertNotNull(result); assertFalse(result.getStatus() == 500); assertEquals(200, result.getStatus()); System.out.println("res: " + result.toString()); final String body = result.readEntity(String.class); System.out.println(body); final JsonNode root = mapper.readTree(body); assertTrue(root.isObject()); } @Test public void testGetStyles() throws Exception { final Response result = target("/v1/apply/styles").request().get(); assertNotNull(result); assertFalse(result.getStatus() == 500); assertEquals(200, result.getStatus()); System.out.println("res: " + result.toString()); final String body = result.readEntity(String.class); System.out.println(body); final JsonNode root = mapper.readTree(body); assertTrue(root.isArray()); assertEquals(2, root.size()); Set<String> vsNames = new HashSet<>(); for(JsonNode n: root) { vsNames.add(n.asText()); } assertTrue(vsNames.contains("vs1")); assertTrue(vsNames.contains("mock1")); } @Test public void testApplyLayout() { Long suid = view.getModel().getSUID(); Response result = target("/v1/apply/layouts/grid/" + suid) .queryParam("column", "test").request().get(); System.out.println("res: " + result.toString()); // TODO: Add more realistic test assertTrue(result.getStatus() == 500); } @Test public void testApplyStyle() throws Exception { Long suid = view.getModel().getSUID(); Response result = target("/v1/apply/styles/vs1/" + suid).request().get(); System.out.println("res: " + result.toString()); assertFalse(result.getStatus() == 500); assertEquals(200, result.getStatus()); final String body = result.readEntity(String.class); System.out.println(body); final JsonNode root = mapper.readTree(body); assertTrue(root.isObject()); assertNotNull(root.get("message").asText()); } }