package eu.scape_project.planning.services.notification; import java.io.StringWriter; import javax.ws.rs.core.MediaType; import org.apache.http.client.methods.HttpPut; import org.codehaus.jackson.map.ObjectMapper; import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.config.ClientConfig; import com.sun.jersey.api.client.config.DefaultClientConfig; import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter; import eu.scape_project.planning.annotation.IntegrationTest; @Category(IntegrationTest.class) public class NotificationResourceIT { /** * adds a test notification. * - the server must be running on localhost:8080 * - credentials for notification.rest : scout/pass * - notification is added for user: scape.pw@gmail.com * * @throws Exception */ @Test public void addNotificationTest() throws Exception { ClientConfig cc = new DefaultClientConfig(); Client client = Client.create(cc); client.addFilter(new HTTPBasicAuthFilter("scout", "pass")); WebResource endpoint = client.resource("http://localhost:8080/plato/rest/"); // prepare the json load WatchNotification n = new WatchNotification(null, "test message", null, null, "scape.pw@gmail.com"); StringWriter writer = new StringWriter(); ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(writer, n); HttpPut putRequest = new HttpPut("http://localhost:8080/plato/rest/notification"); putRequest.addHeader("content-type", "application/json"); WebResource fileResource = endpoint.path("notification"); ClientResponse response = fileResource.type(MediaType.APPLICATION_JSON).put(ClientResponse.class, writer.toString()); Assert.assertEquals(200, response.getStatus()); } }