2 * ============LICENSE_START====================================================
4 * ===========================================================================
5 * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
6 * ===========================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END====================================================
21 package org.onap.aaf.auth.dao.hl;
23 import static org.junit.Assert.assertEquals;
24 import static org.mockito.Mockito.when;
25 import static org.mockito.MockitoAnnotations.initMocks;
27 import java.util.ArrayList;
28 import java.util.Calendar;
29 import java.util.Date;
30 import java.util.HashSet;
31 import java.util.List;
32 import java.util.Properties;
35 import org.junit.Before;
36 import org.junit.Test;
37 import org.junit.runner.RunWith;
38 import org.mockito.Mock;
39 import org.mockito.Mockito;
40 import org.mockito.runners.MockitoJUnitRunner;
41 import org.onap.aaf.auth.common.Define;
42 import org.onap.aaf.auth.dao.cached.CachedRoleDAO;
43 import org.onap.aaf.auth.dao.cached.CachedUserRoleDAO;
44 import org.onap.aaf.auth.dao.cass.PermDAO.Data;
45 import org.onap.aaf.auth.dao.cass.RoleDAO;
46 import org.onap.aaf.auth.dao.cass.UserRoleDAO;
47 import org.onap.aaf.auth.env.AuthzTrans;
48 import org.onap.aaf.auth.layer.Result;
49 import org.onap.aaf.cadi.Access;
50 import org.onap.aaf.cadi.CadiException;
51 import org.onap.aaf.misc.env.LogTarget;
54 @RunWith(MockitoJUnitRunner.class)
55 public class JU_PermLookup {
71 public void setUp() throws Exception {
74 Mockito.doReturn("0.0").when(access).getProperty("aaf_root_ns","org.osaaf.aaf");
75 Mockito.doReturn(new Properties()).when(access).getProperties();
78 when(trans.error()).thenReturn(new LogTarget() {
81 public void printf(String fmt, Object... vars) {}
84 public void log(Throwable e, Object... msgs) {
92 public void log(Object... msgs) {
96 public boolean isLoggable() {
101 } catch (CadiException e) {
102 // TODO Auto-generated catch block
105 f =new Function(trans, q);
110 public void testPerm() {
112 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
114 // System.out.println(cassExecutorObj);
115 // assertFalse(retVal);
119 public void testGetUserRole() {
120 q.userRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
121 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
122 retVal1.value = new ArrayList<UserRoleDAO.Data>();
123 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
125 dataObj.expires = new Date();
127 retVal1.value.add(dataObj);
128 Mockito.doReturn(true).when(retVal1).isOKhasData();
129 Mockito.doReturn(retVal1).when(q.userRoleDAO).readByUser(trans,"");
130 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
131 Result<List<UserRoleDAO.Data>> userRoles = cassExecutorObj.getUserRoles();
133 //System.out.println(""+userRoles.status);
134 assertEquals(24,userRoles.status);
138 public void testGetUserRolesFirstIf() {
139 q.userRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
140 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
141 retVal1.value = new ArrayList<UserRoleDAO.Data>();
143 Mockito.doReturn(false).when(retVal1).isOKhasData();
144 Mockito.doReturn(retVal1).when(q.userRoleDAO).readByUser(trans,"");
145 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
146 Result<List<UserRoleDAO.Data>> userRoles = cassExecutorObj.getUserRoles();
148 // System.out.println("output is"+userRoles.status);
149 assertEquals(0,userRoles.status);
153 public void testGetUserRolesSecondIf() {
154 q.userRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
155 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
156 retVal1.value = new ArrayList<UserRoleDAO.Data>();
157 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
159 Date dt = new Date();
160 Calendar c = Calendar.getInstance();
162 c.add(Calendar.DATE, 1);
163 dataObj.expires = c.getTime();
165 retVal1.value.add(dataObj);
166 Mockito.doReturn(true).when(retVal1).isOKhasData();
167 Mockito.doReturn(retVal1).when(q.userRoleDAO).readByUser(trans,"");
168 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
169 Result<List<UserRoleDAO.Data>> userRoles = cassExecutorObj.getUserRoles();
171 //System.out.println(userRoles.status);
172 assertEquals("Success",userRoles.details);
173 Result<List<UserRoleDAO.Data>> userRoles1 = cassExecutorObj.getUserRoles();
175 //System.out.println(userRoles1.status);
176 assertEquals(0, userRoles1.status);
180 public void testGetRole() {
181 q.userRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
182 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
183 retVal1.value = new ArrayList<UserRoleDAO.Data>();
184 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
186 dataObj.expires = new Date();
188 retVal1.value.add(dataObj);
189 Mockito.doReturn(false).when(retVal1).isOKhasData();
190 Mockito.doReturn(true).when(retVal1).isOK();
191 Mockito.doReturn(retVal1).when(q.userRoleDAO).readByUser(trans,"");
192 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
193 Result<List<RoleDAO.Data>> userRoles = cassExecutorObj.getRoles();
195 //System.out.println(""+userRoles.status);
196 assertEquals(4,userRoles.status);
200 public void testGetRoleFirstIf() {
201 q.userRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
202 q.roleDAO = Mockito.mock(CachedRoleDAO.class);
203 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
204 retVal1.value = new ArrayList<UserRoleDAO.Data>();
205 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
207 dataObj.expires = new Date();
211 retVal1.value.add(dataObj);
212 Mockito.doReturn(false).when(retVal1).isOKhasData();
213 Mockito.doReturn(false).when(retVal1).isOK();
214 Mockito.doReturn(retVal1).when(q.userRoleDAO).readByUser(trans,"");
215 Mockito.doReturn(retVal1).when(q.roleDAO).read(trans,"","");
216 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
217 Result<List<RoleDAO.Data>> userRoles = cassExecutorObj.getRoles();
219 // System.out.println(""+userRoles.status);
220 assertEquals(0,userRoles.status);
224 public void testGetRoleSecondIf() {
225 q.userRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
226 q.roleDAO = Mockito.mock(CachedRoleDAO.class);
227 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
228 retVal1.value = new ArrayList<UserRoleDAO.Data>();
229 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
231 dataObj.expires = new Date();
235 retVal1.value.add(dataObj);
236 Mockito.doReturn(false).when(retVal1).isOKhasData();
237 Mockito.doReturn(true).when(retVal1).isOK();
238 Mockito.doReturn(retVal1).when(q.userRoleDAO).readByUser(trans,"");
239 Mockito.doReturn(retVal1).when(q.roleDAO).read(trans,"","");
240 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
241 Result<List<RoleDAO.Data>> userRoles = cassExecutorObj.getRoles();
242 userRoles = cassExecutorObj.getRoles();
244 // System.out.println(""+userRoles.status);
245 assertEquals(0,userRoles.status);
248 public void testGetPerms() {
249 q.userRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
250 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
251 retVal1.value = new ArrayList<UserRoleDAO.Data>();
252 Mockito.doReturn(false).when(retVal1).isOKhasData();
253 Mockito.doReturn(true).when(retVal1).isOK();
254 Mockito.doReturn(retVal1).when(q.userRoleDAO).readByUser(trans,"");
255 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
256 Result<Set<String>> userRoles = cassExecutorObj.getPermNames();
257 userRoles = cassExecutorObj.getPermNames();
259 //System.out.println(""+userRoles.status);
260 assertEquals(0,userRoles.status);
263 public void testGetPermsRrldOk() {
264 q.userRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
265 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
266 retVal1.value = new ArrayList<UserRoleDAO.Data>();
267 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
269 dataObj.expires = new Date();
271 retVal1.value.add(dataObj);
272 Mockito.doReturn(false).when(retVal1).isOKhasData();
273 Mockito.doReturn(true).when(retVal1).isOK();
274 Mockito.doReturn(retVal1).when(q.userRoleDAO).readByUser(trans,"");
275 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
276 Result<Set<String>> userRoles = cassExecutorObj.getPermNames();
278 //System.out.println(""+userRoles.status);
279 assertEquals(4,userRoles.status);
284 public void testGetPerm() {
285 q.userRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
286 q.roleDAO = Mockito.mock(CachedRoleDAO.class);
287 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
288 Result<List<RoleDAO.Data>> retVal2 = Mockito.mock(Result.class);
290 retVal1.value = new ArrayList<UserRoleDAO.Data>();
291 retVal2.value = new ArrayList<RoleDAO.Data>();
292 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
294 Date dt = new Date();
295 Calendar c = Calendar.getInstance();
297 c.add(Calendar.DATE, 1);
298 dataObj.expires = c.getTime();
302 RoleDAO.Data dataObj1 = Mockito.mock( RoleDAO.Data.class);
303 Set<String> permSet = new HashSet<String>();
305 Mockito.doReturn(permSet).when(dataObj1).perms(false);
308 c = Calendar.getInstance();
310 c.add(Calendar.DATE, 1);
311 dataObj1.ns = "test";
312 dataObj1.perms = permSet;
314 retVal1.value.add(dataObj);
315 retVal2.value.add(dataObj1);
316 Mockito.doReturn(true).when(retVal1).isOKhasData();
317 Mockito.doReturn(true).when(retVal1).isOK();
318 Mockito.doReturn(true).when(retVal2).isOK();
319 Mockito.doReturn(retVal1).when(q.userRoleDAO).readByUser(trans,"");
320 Mockito.doReturn(retVal2).when(q.roleDAO).read(trans,"","");
323 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
325 // Mockito.doReturn(retVal2).when(cassExecutorObj).getPermNames();
326 Result<List<Data>> userRoles = cassExecutorObj.getPerms(true);
327 // userRoles = cassExecutorObj.getPerms(false);
329 // System.out.println(""+userRoles.status);
330 assertEquals(0,userRoles.status);
334 public void testGetPermFalse() {
335 q.userRoleDAO = Mockito.mock(CachedUserRoleDAO.class);
336 q.roleDAO = Mockito.mock(CachedRoleDAO.class);
337 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
338 Result<List<RoleDAO.Data>> retVal2 = Mockito.mock(Result.class);
340 retVal1.value = new ArrayList<UserRoleDAO.Data>();
341 retVal2.value = new ArrayList<RoleDAO.Data>();
342 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
344 Date dt = new Date();
345 Calendar c = Calendar.getInstance();
347 c.add(Calendar.DATE, 1);
348 dataObj.expires = c.getTime();
352 RoleDAO.Data dataObj1 = Mockito.mock( RoleDAO.Data.class);
353 Set<String> permSet = new HashSet<String>();
355 Mockito.doReturn(permSet).when(dataObj1).perms(false);
358 c = Calendar.getInstance();
360 c.add(Calendar.DATE, 1);
361 dataObj1.ns = "test";
362 dataObj1.perms = permSet;
364 retVal1.value.add(dataObj);
365 retVal2.value.add(dataObj1);
366 Mockito.doReturn(true).when(retVal1).isOKhasData();
367 Mockito.doReturn(true).when(retVal1).isOK();
368 Mockito.doReturn(true).when(retVal2).isOK();
369 Mockito.doReturn(retVal1).when(q.userRoleDAO).readByUser(trans,"");
370 Mockito.doReturn(retVal2).when(q.roleDAO).read(trans,"","");
373 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
375 // Mockito.doReturn(retVal2).when(cassExecutorObj).getPermNames();
376 Result<List<Data>> userRoles = cassExecutorObj.getPerms(false);
377 userRoles = cassExecutorObj.getPerms(false);
379 // System.out.println(""+userRoles.status);
380 assertEquals(0,userRoles.status);