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