View Javadoc

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   * Testing {@link EntityResource}
16   */
17  public class EntityTest
18  {
19      /**
20       * Simple test that executes {@link EntityClientServlet}, which uses the {@link com.atlassian.sal.api.net.RequestFactory} to query
21       * {@link EntityResource}
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);   // application/xml is the default content-type & accept header value
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" + //default
104                         "Accept=application/json,application/xml", returned);
105     }
106 
107 
108 }