1 package it.com.atlassian.rest.helloworld;
2
3 import com.atlassian.rest.jersey.client.WebResourceFactory;
4 import static com.atlassian.rest.jersey.client.WebResourceFactory.LATEST;
5 import static com.atlassian.rest.jersey.client.WebResourceFactory.REST_VERSION;
6 import static com.atlassian.rest.jersey.client.WebResourceFactory.REST_VERSION_2;
7 import com.sun.jersey.api.client.UniformInterfaceException;
8 import static org.junit.Assert.assertEquals;
9 import org.junit.Test;
10
11 import static javax.ws.rs.core.Response.Status.UNAUTHORIZED;
12
13 public class HelloWorldTest
14 {
15 @Test
16 public void testGetAnonymousHelloWorldWhenNotAuthenticated()
17 {
18 assertGetAnonymousHelloWorldWhenNotAuthenticated(REST_VERSION, "Hello Anonymous World");
19 assertGetAnonymousHelloWorldWhenNotAuthenticated(REST_VERSION_2, "Goodbye Anonymous World");
20 assertGetAnonymousHelloWorldWhenNotAuthenticated(LATEST, "Goodbye Anonymous World");
21 }
22
23 private void assertGetAnonymousHelloWorldWhenNotAuthenticated(final String version, final String expected)
24 {
25 assertEquals(expected, WebResourceFactory.anonymous(version).path("helloworld").path("anonymous").get(String.class));
26 }
27
28 @Test
29 public void testGetAnonymousHelloWorldWhenAuthenticated()
30 {
31 assertGetAnonymousHelloWorldWhenAuthenticated(REST_VERSION, "Hello Anonymous World");
32 assertGetAnonymousHelloWorldWhenAuthenticated(REST_VERSION_2, "Goodbye Anonymous World");
33 assertGetAnonymousHelloWorldWhenAuthenticated(LATEST, "Goodbye Anonymous World");
34 }
35
36 private void assertGetAnonymousHelloWorldWhenAuthenticated(final String version, final String expected)
37 {
38 assertEquals(expected, WebResourceFactory.authenticated(version).path("helloworld").path("anonymous").get(String.class));
39 }
40
41 @Test
42 public void testGetAuthenticatedHelloWorldWhenAuthenticated()
43 {
44 assertGetAuthenticatedHelloWorldWhenAuthenticated(REST_VERSION, "Hello Authenticated World");
45 assertGetAuthenticatedHelloWorldWhenAuthenticated(REST_VERSION_2, "Goodbye Authenticated World");
46 assertGetAuthenticatedHelloWorldWhenAuthenticated(LATEST, "Goodbye Authenticated World");
47 }
48
49 private void assertGetAuthenticatedHelloWorldWhenAuthenticated(final String restVersion, final String expected)
50 {
51 assertEquals(expected, WebResourceFactory.authenticated(restVersion).path("helloworld").path("authenticated").get(String.class));
52 }
53
54 @Test
55 public void testGetAuthenticatedHelloWorldWhenNotAuthenticated()
56 {
57 assertGetAuthenticatedHelloWorldWhenNotAuthenticated(REST_VERSION);
58 assertGetAuthenticatedHelloWorldWhenNotAuthenticated(REST_VERSION_2);
59 assertGetAuthenticatedHelloWorldWhenNotAuthenticated(LATEST);
60 }
61
62 private void assertGetAuthenticatedHelloWorldWhenNotAuthenticated(final String version)
63 {
64 try
65 {
66 WebResourceFactory.anonymous(version).path("helloworld").path("authenticated").get(String.class);
67 }
68 catch (UniformInterfaceException e)
69 {
70 assertEquals(UNAUTHORIZED, e.getResponse().getResponseStatus());
71 }
72 }
73
74 @Test
75 public void testGetAdminHelloWorldWhenAdmin()
76 {
77 assertGetAdminHelloWorldWhenAdmin(REST_VERSION, "Hello admin");
78 assertGetAdminHelloWorldWhenAdmin(REST_VERSION_2, "Goodbye admin");
79 assertGetAdminHelloWorldWhenAdmin(LATEST, "Goodbye admin");
80 }
81
82 private void assertGetAdminHelloWorldWhenAdmin(final String restVersion, final String expected)
83 {
84 assertEquals(expected, WebResourceFactory.authenticated(restVersion).path("helloworld").path("admin").get(String.class));
85 }
86
87 @Test
88 public void testGetAdminHelloWorldWhenNotFred()
89 {
90 assertGetAdminHelloWorldWhenNotFred(REST_VERSION);
91 assertGetAdminHelloWorldWhenNotFred(REST_VERSION_2);
92 assertGetAdminHelloWorldWhenNotFred(LATEST);
93 }
94
95 private void assertGetAdminHelloWorldWhenNotFred(final String version)
96 {
97 try
98 {
99
100 WebResourceFactory.authenticate(WebResourceFactory.anonymous(version), "fred", "fred").path("helloworld").path("admin").get(String.class);
101 }
102 catch (UniformInterfaceException e)
103 {
104 assertEquals(UNAUTHORIZED, e.getResponse().getResponseStatus());
105 }
106 }
107
108 @Test
109 public void testGetAdminHelloWorldWhenNotAuthenticated()
110 {
111 assertGetAdminHelloWorldWhenNotAuthenticated(REST_VERSION);
112 assertGetAdminHelloWorldWhenNotAuthenticated(REST_VERSION_2);
113 assertGetAdminHelloWorldWhenNotAuthenticated(LATEST);
114 }
115
116 private void assertGetAdminHelloWorldWhenNotAuthenticated(final String version)
117 {
118 try
119 {
120 WebResourceFactory.authenticate(WebResourceFactory.anonymous(version), "bla", "bli").path("helloworld").path("admin").get(String.class);
121 }
122 catch (UniformInterfaceException e)
123 {
124 assertEquals(UNAUTHORIZED, e.getResponse().getResponseStatus());
125 }
126 }
127 }