1 package it.com.atlassian.plugins.rest.sample.entities;
2
3 import com.atlassian.plugins.rest.sample.entities.EntityClientServlet;
4 import com.atlassian.plugins.rest.sample.entities.EntityResource;
5 import com.atlassian.plugins.rest.sample.entities.UriBuilder;
6 import com.sun.jersey.api.client.Client;
7 import org.junit.Test;
8
9 import java.net.URI;
10
11 import static com.atlassian.plugins.rest.sample.entities.EntityClientServlet.*;
12 import static org.junit.Assert.assertEquals;
13
14
15
16
17 public class EntityTest
18 {
19
20
21
22
23 @Test
24 public void testApplesForOranges()
25 {
26 final URI baseUri = UriBuilder.create().path("plugins").path("servlet").path("client").build();
27 final String returned = Client.create().resource(baseUri).queryParam(P_ORANGE, "valencia").get(String.class);
28 assertEquals(
29 "apple-valencia\n" +
30 "Content-Type=application/xml\n" +
31 "Accept=application/xml", returned);
32 }
33
34 @Test
35 public void testApplesForOrangesJson()
36 {
37 final URI baseUri = UriBuilder.create().path("plugins").path("servlet").path("client").build();
38 final String returned = Client.create().resource(baseUri)
39 .queryParam(P_ORANGE, "delfino")
40 .queryParam(P_CONTENT_TYPE, "application/json")
41 .queryParam(P_ACCEPT, "application/json")
42 .get(String.class);
43 assertEquals(
44 "apple-delfino\n" +
45 "Content-Type=application/json\n" +
46 "Accept=application/json", returned);
47 }
48
49 @Test
50 public void testApplesForOrangesDefaultContentTypeAcceptJson()
51 {
52 final URI baseUri = UriBuilder.create().path("plugins").path("servlet").path("client").build();
53 final String returned = Client.create().resource(baseUri)
54 .queryParam(P_ORANGE, "delfino")
55 .queryParam(P_ACCEPT, "application/json")
56 .get(String.class);
57 assertEquals(
58 "apple-delfino\n" +
59 "Content-Type=application/xml\n" +
60 "Accept=application/json", returned);
61 }
62
63 @Test
64 public void testApplesForOrangesExplicitXmlContentTypeAndAccept()
65 {
66 final URI baseUri = UriBuilder.create().path("plugins").path("servlet").path("client").build();
67 final String returned = Client.create().resource(baseUri)
68 .queryParam(P_ORANGE, "delfino")
69 .queryParam(P_CONTENT_TYPE, "application/xml")
70 .queryParam(P_ACCEPT, "application/xml")
71 .get(String.class);
72 assertEquals(
73 "apple-delfino\n" +
74 "Content-Type=application/xml\n" +
75 "Accept=application/xml", returned);
76 }
77
78 @Test
79 public void testApplesForOrangesMissingAcceptHeaderDefaultsToContentType()
80 {
81 final URI baseUri = UriBuilder.create().path("plugins").path("servlet").path("client").build();
82 final String returned = Client.create().resource(baseUri)
83 .queryParam(P_ORANGE, "delfino")
84 .queryParam(P_CONTENT_TYPE, "application/json")
85 .get(String.class);
86 assertEquals(
87 "apple-delfino\n" +
88 "Content-Type=application/json\n" +
89 "Accept=application/json", returned);
90 }
91
92 @Test
93 public void testApplesForOrangesMultipleValidAcceptHeaders()
94 {
95 final URI baseUri = UriBuilder.create().path("plugins").path("servlet").path("client").build();
96 final String returned = Client.create().resource(baseUri)
97 .queryParam(P_ORANGE, "delfino")
98 .queryParam(P_ACCEPT, "application/json")
99 .queryParam(P_ACCEPT, "application/xml")
100 .get(String.class);
101 assertEquals(
102 "apple-delfino\n" +
103 "Content-Type=application/xml\n" +
104 "Accept=application/json,application/xml", returned);
105 }
106
107
108 }