Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Først til til pom.xml
- <properties>
- <version.org.jboss.resteasy>3.0.19.Final</version.org.jboss.resteasy>
- <version.com.fasterxml.jackson>2.8.6</version.com.fasterxml.jackson>
- <version.org.codehaus.jackson>1.9.13</version.org.codehaus.jackson>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-client</artifactId>
- <version>${version.org.jboss.resteasy}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.module</groupId>
- <artifactId>jackson-module-jaxb-annotations</artifactId>
- <version>${version.com.fasterxml.jackson}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- <version>${version.org.codehaus.jackson}</version>
- <scope>provided</scope>
- </dependency>
- <!-- TEST -->
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxb-provider</artifactId>
- <version>${version.org.jboss.resteasy}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jackson-provider</artifactId>
- <version>${version.org.jboss.resteasy}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.logging</groupId>
- <artifactId>jboss-logging</artifactId>
- <version>${version.jboss-logging}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- -----------------------------------------------------------------------------
- package dk.convergens.todo;
- import java.io.IOException;
- import java.io.UnsupportedEncodingException;
- import java.net.UnknownHostException;
- import javax.json.Json;
- import javax.json.JsonObjectBuilder;
- import javax.ws.rs.client.Client;
- import javax.ws.rs.client.ClientBuilder;
- import javax.ws.rs.client.ClientRequestContext;
- import javax.ws.rs.client.ClientRequestFilter;
- import javax.ws.rs.client.Entity;
- import javax.ws.rs.client.Invocation;
- import javax.ws.rs.client.WebTarget;
- import javax.ws.rs.core.MediaType;
- import javax.ws.rs.core.MultivaluedMap;
- import javax.ws.rs.core.Response;
- import javax.xml.bind.DatatypeConverter;
- import org.apache.log4j.Logger;
- import org.junit.Assert;
- import org.junit.Before;
- import org.junit.Test;
- import com.mongodb.BasicDBObject;
- public class ToDoResourceIT {
- private static Logger logger = Logger.getLogger(ToDoResourceIT.class.getName());
- private Client client;
- private WebTarget toDoTarget;
- @Before
- public void init() throws UnknownHostException {
- String baseUri = "http://localhost:8080/todo";
- String userName = "user";
- String password = "Hemmeligt";
- client = ClientBuilder.newClient();
- if (userName != null) {
- client.register(new BasicAuthenticator(userName, password));
- }
- WebTarget base = client.target(baseUri);
- toDoTarget = base.path("resources").path("todos");
- }
- @Test
- public void create() {
- JsonObjectBuilder createObjectBuilder = Json.createObjectBuilder();
- createObjectBuilder.add("subject", "Overskriften i denne ToDo");
- createObjectBuilder.add("body", "Brødtekst i denne ToDo");
- /**
- * CREATE
- */
- Invocation.Builder request = toDoTarget.request(MediaType.APPLICATION_JSON);
- Response response = null;
- String location = null;
- try {
- response = request.post(Entity.json(createObjectBuilder.build()));
- if (response.getStatus() != Response.Status.CREATED.getStatusCode()) {
- logger.error(response.readEntity(String.class));
- Assert.fail(
- "Status er ikke " + Response.Status.CREATED.getStatusCode() + " men " + response.getStatus());
- }
- location = response.getHeaderString("Location");
- } finally {
- if (response != null) {
- response.close();
- }
- }
- /**
- * DELETE
- */
- WebTarget target = client.target(location);
- request = target.request(MediaType.APPLICATION_JSON);
- response = request.delete();
- if (response.getStatus() != Response.Status.OK.getStatusCode()
- && response.getStatus() != Response.Status.FORBIDDEN.getStatusCode()) {
- Assert.fail("Status er ikke " + Response.Status.OK.getStatusCode() + " men " + response.getStatus());
- }
- if (response.getStatus() == Response.Status.FORBIDDEN.getStatusCode()) {
- BasicDBObject obj = response.readEntity(BasicDBObject.class);
- response.close();
- logger.warn(obj.toString());
- } else {
- response.close();
- }
- }
- @Test
- public void update() {
- JsonObjectBuilder createObjectBuilder = Json.createObjectBuilder();
- createObjectBuilder.add("subject", "Overskriften i denne ToDo");
- createObjectBuilder.add("body", "Brødtekst i denne ToDo");
- /**
- * CREATE
- */
- Invocation.Builder request = toDoTarget.request(MediaType.APPLICATION_JSON);
- Response response = null;
- String location = null;
- try {
- response = request.post(Entity.json(createObjectBuilder.build()));
- if (response.getStatus() != Response.Status.CREATED.getStatusCode()) {
- logger.error(response.readEntity(String.class));
- Assert.fail(
- "Status er ikke " + Response.Status.CREATED.getStatusCode() + " men " + response.getStatus());
- }
- location = response.getHeaderString("Location");
- } finally {
- if (response != null) {
- response.close();
- }
- }
- /**
- * UPDATE
- */
- createObjectBuilder = Json.createObjectBuilder();
- createObjectBuilder.add("subject", "Overskriften i denne ToDo - update");
- createObjectBuilder.add("body", "Brødtekst i denne ToDo - update");
- WebTarget target = client.target(location);
- request = target.request(MediaType.APPLICATION_JSON);
- try {
- response = request.put(Entity.json(createObjectBuilder.build()));
- if (response.getStatus() != Response.Status.NO_CONTENT.getStatusCode()
- && response.getStatus() != Response.Status.FORBIDDEN.getStatusCode()) {
- Assert.fail("Status er ikke " + Response.Status.NO_CONTENT.getStatusCode() + " men "
- + response.getStatus());
- }
- if (response.getStatus() == Response.Status.FORBIDDEN.getStatusCode()) {
- logger.warn(response.readEntity(String.class));
- }
- } finally {
- if (response != null) {
- response.close();
- }
- }
- /**
- * DELETE
- */
- target = client.target(location);
- request = target.request(MediaType.APPLICATION_JSON);
- response = request.delete();
- if (response.getStatus() != Response.Status.OK.getStatusCode()
- && response.getStatus() != Response.Status.FORBIDDEN.getStatusCode()) {
- Assert.fail("Status er ikke " + Response.Status.OK.getStatusCode() + " men " + response.getStatus());
- }
- if (response.getStatus() == Response.Status.FORBIDDEN.getStatusCode()) {
- BasicDBObject obj = response.readEntity(BasicDBObject.class);
- response.close();
- logger.warn(obj.toString());
- } else {
- response.close();
- }
- }
- }
- class BasicAuthenticator implements ClientRequestFilter {
- private final String user;
- private final String password;
- public BasicAuthenticator(String user, String password) {
- this.user = user;
- this.password = password;
- }
- @Override
- public void filter(ClientRequestContext requestContext) throws IOException {
- MultivaluedMap<String, Object> headers = requestContext.getHeaders();
- String basicAuthentication = getBasicAuthentication();
- headers.add("Authorization", basicAuthentication);
- }
- private String getBasicAuthentication() {
- String token = this.user + ":" + this.password;
- try {
- return "Basic " + DatatypeConverter.printBase64Binary(token.getBytes("UTF-8"));
- } catch (UnsupportedEncodingException ex) {
- throw new IllegalStateException("Cannot encode with UTF-8", ex);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement