// Path: src/main/java/org/cytoscape/rest/internal/resource/SessionResource.java
// @Singleton
// @Path("/v1/session")
// public class SessionResource extends AbstractResource {
// 
// 	@Context
// 	@NotNull
// 	private CySessionManager sessionManager;
// 	
// 	@Context
// 	@NotNull
// 	private SaveSessionAsTaskFactory saveSessionAsTaskFactory;
// 	
// 	@Context
// 	@NotNull
// 	private OpenSessionTaskFactory openSessionTaskFactory;
// 	
// 	@Context
// 	@NotNull
// 	private NewSessionTaskFactory newSessionTaskFactory;
// 
// 
// 	public SessionResource() {
// 		super();
// 	}
// 
// 
// 	/**
// 	 * 
// 	 * @summary Get current session name
// 	 * 
// 	 * @return Current session name
// 	 */
// 	@GET
// 	@Path("/name")
// 	@Produces(MediaType.APPLICATION_JSON)
// 	public String getSessionName() {
// 		String sessionName = sessionManager.getCurrentSessionFileName();
// 		if(sessionName == null || sessionName.isEmpty()) {
// 			sessionName = "";
// 		}
// 		
// 		return "{\"name\": \"" + sessionName +"\"}";
// 	}
// 	
// 	
// 	/**
// 	 * 
// 	 * @summary Delete current session and start new one
// 	 * 
// 	 * @return Success message
// 	 * 
// 	 */
// 	@DELETE
// 	@Path("/")
// 	@Produces(MediaType.APPLICATION_JSON)
// 	public String deleteSession() {
// 		
// 		try {
// 			TaskIterator itr = newSessionTaskFactory.createTaskIterator(true);
// 			while(itr.hasNext()) {
// 				final Task task = itr.next();
// 				task.run(new HeadlessTaskMonitor());
// 			}
// 		} catch (Exception e) {
// 			e.printStackTrace();
// 			throw getError("Could not delete current session.", e, Response.Status.INTERNAL_SERVER_ERROR);
// 		}
// 		return "{\"message\": \"New session created.\"}";
// 	}
// 	
// 	
// 	/**
// 	 * This get method load a new session from a file
// 	 * 
// 	 * @summary Load new session from a local file
// 	 * 
// 	 * @param file File name (should be absolute path)
// 	 * 
// 	 * @return Session file name as string
// 	 * 
// 	 */
// 	@GET
// 	@Path("/")
// 	@Produces(MediaType.APPLICATION_JSON)
// 	public String getSessionFromFile(@QueryParam("file") String file) {
// 		File sessionFile = null;
// 		try {
// 			sessionFile = new File(file);
// 			TaskIterator itr = openSessionTaskFactory.createTaskIterator(sessionFile);
// 			while(itr.hasNext()) {
// 				final Task task = itr.next();
// 				task.run(new HeadlessTaskMonitor());
// 			}
// 		} catch (Exception e) {
// 			e.printStackTrace();
// 			throw getError("Could not save session.", e, Response.Status.INTERNAL_SERVER_ERROR);
// 		}
// 	
// 		return "{\"file\": \"" + sessionFile.getAbsolutePath() +"\"}";
// 	}
// 	
// 	
// 	/**
// 	 * 
// 	 * @summary Create a session file
// 	 * 
// 	 * @param file Session file location (should be absolute path)
// 	 * 
// 	 * @return Session file name
// 	 */
// 	@POST
// 	@Path("/")
// 	@Produces(MediaType.APPLICATION_JSON)
// 	public String createSessionFile(@QueryParam("file") String file) {
// 		File sessionFile = null;
// 		try {
// 			sessionFile = new File(file);
// 			TaskIterator itr = saveSessionAsTaskFactory.createTaskIterator(sessionFile);
// 			while(itr.hasNext()) {
// 				final Task task = itr.next();
// 				task.run(new HeadlessTaskMonitor());
// 			}
// 		} catch (Exception e) {
// 			e.printStackTrace();
// 			throw getError("Could not save session.", e, Response.Status.INTERNAL_SERVER_ERROR);
// 		}
// 	
// 		return "{\"file\": \"" + sessionFile.getAbsolutePath() +"\"}";
// 	}
// }


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;
package org.cytoscape.rest.service;






public class SessionResourceTest extends BasicResourceTest {

	private ObjectMapper mapper = new ObjectMapper();

	@Override
	protected Application configure() {
// Path: src/main/java/org/cytoscape/rest/internal/resource/SessionResource.java
// @Singleton
// @Path("/v1/session")
// public class SessionResource extends AbstractResource {
// 
// 	@Context
// 	@NotNull
// 	private CySessionManager sessionManager;
// 	
// 	@Context
// 	@NotNull
// 	private SaveSessionAsTaskFactory saveSessionAsTaskFactory;
// 	
// 	@Context
// 	@NotNull
// 	private OpenSessionTaskFactory openSessionTaskFactory;
// 	
// 	@Context
// 	@NotNull
// 	private NewSessionTaskFactory newSessionTaskFactory;
// 
// 
// 	public SessionResource() {
// 		super();
// 	}
// 
// 
// 	/**
// 	 * 
// 	 * @summary Get current session name
// 	 * 
// 	 * @return Current session name
// 	 */
// 	@GET
// 	@Path("/name")
// 	@Produces(MediaType.APPLICATION_JSON)
// 	public String getSessionName() {
// 		String sessionName = sessionManager.getCurrentSessionFileName();
// 		if(sessionName == null || sessionName.isEmpty()) {
// 			sessionName = "";
// 		}
// 		
// 		return "{\"name\": \"" + sessionName +"\"}";
// 	}
// 	
// 	
// 	/**
// 	 * 
// 	 * @summary Delete current session and start new one
// 	 * 
// 	 * @return Success message
// 	 * 
// 	 */
// 	@DELETE
// 	@Path("/")
// 	@Produces(MediaType.APPLICATION_JSON)
// 	public String deleteSession() {
// 		
// 		try {
// 			TaskIterator itr = newSessionTaskFactory.createTaskIterator(true);
// 			while(itr.hasNext()) {
// 				final Task task = itr.next();
// 				task.run(new HeadlessTaskMonitor());
// 			}
// 		} catch (Exception e) {
// 			e.printStackTrace();
// 			throw getError("Could not delete current session.", e, Response.Status.INTERNAL_SERVER_ERROR);
// 		}
// 		return "{\"message\": \"New session created.\"}";
// 	}
// 	
// 	
// 	/**
// 	 * This get method load a new session from a file
// 	 * 
// 	 * @summary Load new session from a local file
// 	 * 
// 	 * @param file File name (should be absolute path)
// 	 * 
// 	 * @return Session file name as string
// 	 * 
// 	 */
// 	@GET
// 	@Path("/")
// 	@Produces(MediaType.APPLICATION_JSON)
// 	public String getSessionFromFile(@QueryParam("file") String file) {
// 		File sessionFile = null;
// 		try {
// 			sessionFile = new File(file);
// 			TaskIterator itr = openSessionTaskFactory.createTaskIterator(sessionFile);
// 			while(itr.hasNext()) {
// 				final Task task = itr.next();
// 				task.run(new HeadlessTaskMonitor());
// 			}
// 		} catch (Exception e) {
// 			e.printStackTrace();
// 			throw getError("Could not save session.", e, Response.Status.INTERNAL_SERVER_ERROR);
// 		}
// 	
// 		return "{\"file\": \"" + sessionFile.getAbsolutePath() +"\"}";
// 	}
// 	
// 	
// 	/**
// 	 * 
// 	 * @summary Create a session file
// 	 * 
// 	 * @param file Session file location (should be absolute path)
// 	 * 
// 	 * @return Session file name
// 	 */
// 	@POST
// 	@Path("/")
// 	@Produces(MediaType.APPLICATION_JSON)
// 	public String createSessionFile(@QueryParam("file") String file) {
// 		File sessionFile = null;
// 		try {
// 			sessionFile = new File(file);
// 			TaskIterator itr = saveSessionAsTaskFactory.createTaskIterator(sessionFile);
// 			while(itr.hasNext()) {
// 				final Task task = itr.next();
// 				task.run(new HeadlessTaskMonitor());
// 			}
// 		} catch (Exception e) {
// 			e.printStackTrace();
// 			throw getError("Could not save session.", e, Response.Status.INTERNAL_SERVER_ERROR);
// 		}
// 	
// 		return "{\"file\": \"" + sessionFile.getAbsolutePath() +"\"}";
// 	}
// }


// Path: src/test/java/org/cytoscape/rest/service/SessionResourceTest.java
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;

package org.cytoscape.rest.service;






public class SessionResourceTest extends BasicResourceTest {

	private ObjectMapper mapper = new ObjectMapper();

	@Override
	protected Application configure() {
		return new ResourceConfig(SessionResource.class);