1 package com.atlassian.seraph.service;
2
3 import com.mockobjects.servlet.MockHttpServletRequest;
4
5 import java.util.HashMap;
6 import java.util.Set;
7
8 import junit.framework.TestCase;
9
10 public class TestWebworkService extends TestCase
11 {
12 public void testWithUnspecifiedActionsXmlFileParameter()
13 {
14 final WebworkService service = new WebworkService();
15 service.init(new HashMap<String, String>(), null);
16 assertRolesForURI("/AddProject.action", service, "adminUnspecified");
17 }
18
19 public void testWithSpecifiedActionsXmlFileParameter()
20 {
21 final WebworkService service = new WebworkService();
22 final HashMap<String, String> params = new HashMap<String, String>();
23 params.put("actions.xml.file", "test-actions");
24 service.init(params, null);
25 assertRolesForURI("/AddProject.action", service, "adminSpecified");
26 }
27
28 public void testWithSpecifiedActionExtensionsParameter()
29 {
30 final WebworkService service = new WebworkService();
31 final HashMap<String, String> params = new HashMap<String, String>();
32 params.put("actions.xml.file", "test-actions");
33 params.put("action.extension", "fooity");
34 service.init(params, null);
35 assertRolesForURI("/AddProject.fooity", service, "adminSpecified");
36 }
37
38 private void assertRolesForURI(final String requestURI, final WebworkService service, final String role)
39 {
40 final MockHttpServletRequest servletRequest = new MockHttpServletRequest();
41 servletRequest.setupGetRequestURI(requestURI);
42 final Set<String> requiredRoles = service.getRequiredRoles(servletRequest);
43 assertTrue(requiredRoles.contains(role));
44 }
45 }