1 package org.apache.turbine.services.security;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 import static org.junit.Assert.assertFalse;
21 import static org.junit.Assert.assertTrue;
22
23 import org.apache.fulcrum.security.SecurityService;
24 import org.apache.fulcrum.security.entity.Group;
25 import org.apache.fulcrum.security.entity.Role;
26 import org.apache.fulcrum.security.model.turbine.TurbineModelManager;
27 import org.apache.fulcrum.security.model.turbine.entity.TurbineUser;
28 import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
29 import org.apache.fulcrum.security.model.turbine.entity.impl.TurbineUserImpl;
30 import org.apache.fulcrum.security.model.turbine.test.AbstractTurbineModelManagerTest;
31 import org.apache.fulcrum.security.util.DataBackendException;
32 import org.apache.fulcrum.security.util.EntityExistsException;
33 import org.apache.fulcrum.security.util.UnknownEntityException;
34 import org.apache.fulcrum.testcontainer.BaseUnit4Test;
35 import org.apache.turbine.om.security.User;
36 import org.apache.turbine.services.ServiceManager;
37 import org.apache.turbine.services.TurbineServices;
38 import org.apache.turbine.util.TurbineConfig;
39 import org.junit.AfterClass;
40 import org.junit.Before;
41 import org.junit.BeforeClass;
42 import org.junit.Test;
43
44
45
46
47
48
49
50
51
52
53 public class SecurityServiceTest extends BaseUnit4Test
54 {
55
56 SecurityService fulcrumSecurityService;
57 org.apache.turbine.services.security.SecurityService securityService;
58 static TurbineConfig tc;
59
60
61 @BeforeClass
62 public static void init() throws Exception
63 {
64 tc = new TurbineConfig(".", "/conf/test/CompleteTurbineResources.properties");
65 tc.initialize();
66
67 }
68
69 @Before
70 public void setUpBefore() throws Exception
71 {
72
73 ServiceManager serviceManager = TurbineServices.getInstance();
74
75 fulcrumSecurityService = (SecurityService) serviceManager.getService(SecurityService.ROLE);
76
77 securityService = (org.apache.turbine.services.security.SecurityService)
78 TurbineServices.getInstance().getService(org.apache.turbine.services.security.SecurityService.SERVICE_NAME);
79 }
80
81 @Test
82 public void testAccountExists() throws Exception
83 {
84
85 User user = new org.apache.turbine.om.security.DefaultUserImpl(new TurbineUserImpl());
86 user.setAccessCounter(5);
87
88 assertFalse(securityService.accountExists(user));
89 assertFalse(fulcrumSecurityService.getUserManager().checkExists(user));
90
91 }
92 @Test
93 public void testCreateUser() throws Exception
94 {
95
96 User user = new org.apache.turbine.om.security.DefaultUserImpl(new TurbineUserImpl());
97 user.setAccessCounter(5);
98 user.setName("ringo");
99 securityService.addUser(user,"fakepasswrod");
100 assertTrue(securityService.accountExists(user));
101 assertTrue(fulcrumSecurityService.getUserManager().checkExists(user));
102
103 }
104
105
106
107
108
109
110
111
112
113 @Test
114 public void testGrantUserGroupRole() throws Exception
115 {
116 Group group = fulcrumSecurityService.getGroupManager().getGroupInstance();
117 group.setName("TEST_GROUP");
118 fulcrumSecurityService.getGroupManager().addGroup(group);
119 Role role = fulcrumSecurityService.getRoleManager().getRoleInstance();
120 role.setName("TEST_Role");
121 fulcrumSecurityService.getRoleManager().addRole(role);
122
123
124
125 User user = securityService.getUserInstance("Clint");
126
127 securityService.addUser(user, "clint");
128 securityService.grant(user, group, role);
129
130 addUserAndCheck(group, role, user.getUserDelegate());
131
132
133 org.apache.fulcrum.security.UserManager userManager = fulcrumSecurityService.getUserManager();
134 TurbineUser fulcrumUser = userManager.getUserInstance("Clint2");
135 userManager.addUser(fulcrumUser, "clint2");
136 ((TurbineModelManager)fulcrumSecurityService.getModelManager()).grant(fulcrumUser, group, role);
137
138 addUserAndCheck(group, role, fulcrumUser);
139
140 }
141
142
143
144
145
146
147
148
149
150
151
152 private void addUserAndCheck(Group group, Role role, TurbineUser user)
153 throws EntityExistsException, DataBackendException,
154 UnknownEntityException
155 {
156
157 boolean ugrFound = false;
158 TurbineUserGroupRole ugrTest = null;
159 for (TurbineUserGroupRole ugr : ((TurbineUser) user).getUserGroupRoleSet())
160 {
161 if (ugr.getUser().equals(user) && ugr.getGroup().equals(group) && ugr.getRole().equals(role))
162 {
163 ugrFound = true;
164 ugrTest = ugr;
165 break;
166 }
167 }
168 assertTrue(ugrFound);
169 assertTrue(ugrTest.getGroup().equals(group));
170 assertTrue(ugrTest.getUser().equals(user));
171 }
172
173
174 @AfterClass
175 public static void setupAfter()
176 {
177 ServiceManager serviceManager = TurbineServices.getInstance();
178 serviceManager.shutdownService(org.apache.turbine.services.security.SecurityService.SERVICE_NAME);
179 serviceManager.shutdownServices();
180 }
181
182
183 }