package org.cytoscape.rest.service;
import static org.junit.Assert.*;
import java.io.File;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.cytoscape.rest.internal.resource.SessionResource;
import org.glassfish.jersey.server.ResourceConfig;
import org.junit.Test;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class SessionResourceTest extends BasicResourceTest {
private ObjectMapper mapper = new ObjectMapper();
@Override
protected Application configure() {
return new ResourceConfig(SessionResource.class);
}
@Test
public void testGetSessionName() throws Exception {
String result = target("/v1/session/name").request().get(String.class);
assertNotNull(result);
final JsonNode root = mapper.readTree(result);
assertTrue(root.isObject());
assertNotNull(root.get("name"));
assertEquals("testSession", root.get("name").asText());
}
@Test
public void testLoadSession() throws Exception {
File dummySession = new File("test1.cys");
String result = target("/v1/session").queryParam("file", dummySession.getName()).request().get(String.class);
assertNotNull(result);
final JsonNode root = mapper.readTree(result);
assertTrue(root.isObject());
assertNotNull(root.get("file"));
assertEquals(dummySession.getAbsolutePath(), root.get("file").asText());
}
@Test
public void testDeleteSession() throws Exception {
Response result = target("/v1/session").request().delete();
assertNotNull(result);
assertFalse(result.getStatus() == 500);
System.out.println("res: " + result.toString());
MediaType type = result.getMediaType();
System.out.println("media type: " + type.toString());
assertEquals(MediaType.APPLICATION_JSON, type.toString());
String val = result.readEntity(String.class);
System.out.println("value: " + val);
final JsonNode root = mapper.readTree(val);
assertTrue(root.isObject());
assertNotNull(root.get("message"));
assertEquals("New session created.", root.get("message").asText());
}
@Test
public void testSaveSession() throws Exception {
final Entity<String> entity = Entity.entity("", MediaType.APPLICATION_JSON_TYPE);
File dummySession = new File("test1.cys");
System.out.println("original file: " + dummySession.getAbsolutePath());
Response result = target("/v1/session").queryParam("file", dummySession.getName()).request().post(entity);
assertNotNull(result);
assertFalse(result.getStatus() == 500);
System.out.println("res: " + result.toString());
MediaType type = result.getMediaType();
System.out.println("media type: " + type.toString());
assertEquals(MediaType.APPLICATION_JSON, type.toString());
String val = result.readEntity(String.class);
System.out.println("value: " + val);
final JsonNode root = mapper.readTree(val);
assertTrue(root.isObject());
assertNotNull(root.get("file"));
assertEquals(dummySession.getAbsolutePath(), root.get("file").asText());
}
}