Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.25 KB | None | 0 0
  1.  
  2. Først til til pom.xml
  3.  
  4. <properties>
  5. <version.org.jboss.resteasy>3.0.19.Final</version.org.jboss.resteasy>
  6. <version.com.fasterxml.jackson>2.8.6</version.com.fasterxml.jackson>
  7. <version.org.codehaus.jackson>1.9.13</version.org.codehaus.jackson>
  8. </properties>
  9.  
  10. <dependencies>
  11. <dependency>
  12. <groupId>org.jboss.resteasy</groupId>
  13. <artifactId>resteasy-client</artifactId>
  14. <version>${version.org.jboss.resteasy}</version>
  15. <scope>provided</scope>
  16. </dependency>
  17.  
  18. <dependency>
  19. <groupId>com.fasterxml.jackson.module</groupId>
  20. <artifactId>jackson-module-jaxb-annotations</artifactId>
  21. <version>${version.com.fasterxml.jackson}</version>
  22. <scope>provided</scope>
  23. </dependency>
  24.  
  25. <dependency>
  26. <groupId>org.codehaus.jackson</groupId>
  27. <artifactId>jackson-mapper-asl</artifactId>
  28. <version>${version.org.codehaus.jackson}</version>
  29. <scope>provided</scope>
  30. </dependency>
  31.  
  32. <!-- TEST -->
  33. <dependency>
  34. <groupId>org.jboss.resteasy</groupId>
  35. <artifactId>resteasy-jaxb-provider</artifactId>
  36. <version>${version.org.jboss.resteasy}</version>
  37. <scope>test</scope>
  38. </dependency>
  39.  
  40. <dependency>
  41. <groupId>org.jboss.resteasy</groupId>
  42. <artifactId>resteasy-jackson-provider</artifactId>
  43. <version>${version.org.jboss.resteasy}</version>
  44. <scope>test</scope>
  45. </dependency>
  46.  
  47. <dependency>
  48. <groupId>org.jboss.logging</groupId>
  49. <artifactId>jboss-logging</artifactId>
  50. <version>${version.jboss-logging}</version>
  51. <scope>test</scope>
  52. </dependency>
  53. </dependencies>
  54.  
  55.  
  56. -----------------------------------------------------------------------------
  57.  
  58. package dk.convergens.todo;
  59.  
  60. import java.io.IOException;
  61. import java.io.UnsupportedEncodingException;
  62. import java.net.UnknownHostException;
  63.  
  64. import javax.json.Json;
  65. import javax.json.JsonObjectBuilder;
  66. import javax.ws.rs.client.Client;
  67. import javax.ws.rs.client.ClientBuilder;
  68. import javax.ws.rs.client.ClientRequestContext;
  69. import javax.ws.rs.client.ClientRequestFilter;
  70. import javax.ws.rs.client.Entity;
  71. import javax.ws.rs.client.Invocation;
  72. import javax.ws.rs.client.WebTarget;
  73. import javax.ws.rs.core.MediaType;
  74. import javax.ws.rs.core.MultivaluedMap;
  75. import javax.ws.rs.core.Response;
  76. import javax.xml.bind.DatatypeConverter;
  77.  
  78. import org.apache.log4j.Logger;
  79. import org.junit.Assert;
  80. import org.junit.Before;
  81. import org.junit.Test;
  82.  
  83. import com.mongodb.BasicDBObject;
  84.  
  85. public class ToDoResourceIT {
  86.  
  87. private static Logger logger = Logger.getLogger(ToDoResourceIT.class.getName());
  88.  
  89. private Client client;
  90. private WebTarget toDoTarget;
  91.  
  92. @Before
  93. public void init() throws UnknownHostException {
  94.  
  95. String baseUri = "http://localhost:8080/todo";
  96.  
  97. String userName = "user";
  98. String password = "Hemmeligt";
  99.  
  100. client = ClientBuilder.newClient();
  101. if (userName != null) {
  102. client.register(new BasicAuthenticator(userName, password));
  103. }
  104. WebTarget base = client.target(baseUri);
  105. toDoTarget = base.path("resources").path("todos");
  106. }
  107.  
  108. @Test
  109. public void create() {
  110.  
  111. JsonObjectBuilder createObjectBuilder = Json.createObjectBuilder();
  112.  
  113. createObjectBuilder.add("subject", "Overskriften i denne ToDo");
  114. createObjectBuilder.add("body", "Brødtekst i denne ToDo");
  115.  
  116. /**
  117. * CREATE
  118. */
  119. Invocation.Builder request = toDoTarget.request(MediaType.APPLICATION_JSON);
  120. Response response = null;
  121. String location = null;
  122. try {
  123. response = request.post(Entity.json(createObjectBuilder.build()));
  124. if (response.getStatus() != Response.Status.CREATED.getStatusCode()) {
  125. logger.error(response.readEntity(String.class));
  126. Assert.fail(
  127. "Status er ikke " + Response.Status.CREATED.getStatusCode() + " men " + response.getStatus());
  128. }
  129. location = response.getHeaderString("Location");
  130. } finally {
  131. if (response != null) {
  132. response.close();
  133. }
  134. }
  135.  
  136. /**
  137. * DELETE
  138. */
  139. WebTarget target = client.target(location);
  140. request = target.request(MediaType.APPLICATION_JSON);
  141. response = request.delete();
  142. if (response.getStatus() != Response.Status.OK.getStatusCode()
  143. && response.getStatus() != Response.Status.FORBIDDEN.getStatusCode()) {
  144. Assert.fail("Status er ikke " + Response.Status.OK.getStatusCode() + " men " + response.getStatus());
  145. }
  146. if (response.getStatus() == Response.Status.FORBIDDEN.getStatusCode()) {
  147. BasicDBObject obj = response.readEntity(BasicDBObject.class);
  148. response.close();
  149. logger.warn(obj.toString());
  150. } else {
  151. response.close();
  152. }
  153. }
  154.  
  155. @Test
  156. public void update() {
  157.  
  158. JsonObjectBuilder createObjectBuilder = Json.createObjectBuilder();
  159.  
  160. createObjectBuilder.add("subject", "Overskriften i denne ToDo");
  161. createObjectBuilder.add("body", "Brødtekst i denne ToDo");
  162.  
  163. /**
  164. * CREATE
  165. */
  166. Invocation.Builder request = toDoTarget.request(MediaType.APPLICATION_JSON);
  167. Response response = null;
  168. String location = null;
  169. try {
  170. response = request.post(Entity.json(createObjectBuilder.build()));
  171. if (response.getStatus() != Response.Status.CREATED.getStatusCode()) {
  172. logger.error(response.readEntity(String.class));
  173. Assert.fail(
  174. "Status er ikke " + Response.Status.CREATED.getStatusCode() + " men " + response.getStatus());
  175. }
  176. location = response.getHeaderString("Location");
  177. } finally {
  178. if (response != null) {
  179. response.close();
  180. }
  181. }
  182.  
  183. /**
  184. * UPDATE
  185. */
  186. createObjectBuilder = Json.createObjectBuilder();
  187. createObjectBuilder.add("subject", "Overskriften i denne ToDo - update");
  188. createObjectBuilder.add("body", "Brødtekst i denne ToDo - update");
  189.  
  190. WebTarget target = client.target(location);
  191. request = target.request(MediaType.APPLICATION_JSON);
  192. try {
  193. response = request.put(Entity.json(createObjectBuilder.build()));
  194. if (response.getStatus() != Response.Status.NO_CONTENT.getStatusCode()
  195. && response.getStatus() != Response.Status.FORBIDDEN.getStatusCode()) {
  196. Assert.fail("Status er ikke " + Response.Status.NO_CONTENT.getStatusCode() + " men "
  197. + response.getStatus());
  198. }
  199. if (response.getStatus() == Response.Status.FORBIDDEN.getStatusCode()) {
  200. logger.warn(response.readEntity(String.class));
  201. }
  202. } finally {
  203. if (response != null) {
  204. response.close();
  205. }
  206. }
  207.  
  208. /**
  209. * DELETE
  210. */
  211. target = client.target(location);
  212. request = target.request(MediaType.APPLICATION_JSON);
  213. response = request.delete();
  214. if (response.getStatus() != Response.Status.OK.getStatusCode()
  215. && response.getStatus() != Response.Status.FORBIDDEN.getStatusCode()) {
  216. Assert.fail("Status er ikke " + Response.Status.OK.getStatusCode() + " men " + response.getStatus());
  217. }
  218. if (response.getStatus() == Response.Status.FORBIDDEN.getStatusCode()) {
  219. BasicDBObject obj = response.readEntity(BasicDBObject.class);
  220. response.close();
  221. logger.warn(obj.toString());
  222. } else {
  223. response.close();
  224. }
  225. }
  226.  
  227. }
  228.  
  229. class BasicAuthenticator implements ClientRequestFilter {
  230.  
  231. private final String user;
  232. private final String password;
  233.  
  234. public BasicAuthenticator(String user, String password) {
  235. this.user = user;
  236. this.password = password;
  237. }
  238.  
  239. @Override
  240. public void filter(ClientRequestContext requestContext) throws IOException {
  241. MultivaluedMap<String, Object> headers = requestContext.getHeaders();
  242. String basicAuthentication = getBasicAuthentication();
  243. headers.add("Authorization", basicAuthentication);
  244. }
  245.  
  246. private String getBasicAuthentication() {
  247. String token = this.user + ":" + this.password;
  248. try {
  249. return "Basic " + DatatypeConverter.printBase64Binary(token.getBytes("UTF-8"));
  250. } catch (UnsupportedEncodingException ex) {
  251. throw new IllegalStateException("Cannot encode with UTF-8", ex);
  252. }
  253. }
  254. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement