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;
52 import org.onap.aaf.org.DefaultOrg;
55 @RunWith(MockitoJUnitRunner.class)
56 public class JU_PermLookup {
70 CachedRoleDAO roleDAO;
73 CachedUserRoleDAO userRoleDAO;
78 public void setUp() throws Exception {
80 Mockito.doReturn(userRoleDAO).when(q).userRoleDAO();
81 Mockito.doReturn(roleDAO).when(q).roleDAO();
84 Mockito.doReturn("0.0").when(access).getProperty("aaf_root_ns","org.osaaf.aaf");
85 Mockito.doReturn(new Properties()).when(access).getProperties();
88 when(trans.error()).thenReturn(new LogTarget() {
91 public void printf(String fmt, Object... vars) {}
94 public void log(Throwable e, Object... msgs) {
102 public void log(Object... msgs) {
106 public boolean isLoggable() {
111 } catch (CadiException e) {
112 // TODO Auto-generated catch block
115 f =new Function(trans, q);
120 // public void testPerm() {
122 // PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
124 //// System.out.println(cassExecutorObj);
125 //// assertFalse(retVal);
129 public void testGetUserRole() {
130 @SuppressWarnings("unchecked")
131 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
132 retVal1.value = new ArrayList<UserRoleDAO.Data>();
133 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
134 dataObj.expires = new Date();
136 retVal1.value.add(dataObj);
137 Mockito.doReturn(true).when(retVal1).isOKhasData();
139 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
141 DefaultOrg org = Mockito.mock(DefaultOrg.class);
142 when(trans.org()).thenReturn(org);
144 PermLookup cassExecutorObj = PermLookup.get(trans, q,"");
145 Result<List<UserRoleDAO.Data>> userRoles = cassExecutorObj.getUserRoles();
147 //System.out.println(""+userRoles.status);
148 assertEquals(24,userRoles.status);
152 public void testGetUserRolesFirstIf() {
153 @SuppressWarnings("unchecked")
154 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
155 retVal1.value = new ArrayList<UserRoleDAO.Data>();
157 Mockito.doReturn(false).when(retVal1).isOKhasData();
158 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
160 DefaultOrg org = Mockito.mock(DefaultOrg.class);
161 when(trans.org()).thenReturn(org);
163 PermLookup cassExecutorObj = PermLookup.get(trans, q,"");
164 Result<List<UserRoleDAO.Data>> userRoles = cassExecutorObj.getUserRoles();
166 // System.out.println("output is"+userRoles.status);
167 assertEquals(0,userRoles.status);
171 public void testGetUserRolesSecondIf() {
172 @SuppressWarnings("unchecked")
173 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
174 retVal1.value = new ArrayList<UserRoleDAO.Data>();
175 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
177 Date dt = new Date();
178 Calendar c = Calendar.getInstance();
180 c.add(Calendar.DATE, 1);
181 dataObj.expires = c.getTime();
183 retVal1.value.add(dataObj);
184 Mockito.doReturn(true).when(retVal1).isOKhasData();
185 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
187 DefaultOrg org = Mockito.mock(DefaultOrg.class);
188 when(trans.org()).thenReturn(org);
190 PermLookup cassExecutorObj = PermLookup.get(trans, q,"");
191 Result<List<UserRoleDAO.Data>> userRoles = cassExecutorObj.getUserRoles();
193 //System.out.println(userRoles.status);
194 assertEquals("Success",userRoles.details);
195 Result<List<UserRoleDAO.Data>> userRoles1 = cassExecutorObj.getUserRoles();
197 //System.out.println(userRoles1.status);
198 assertEquals(0, userRoles1.status);
202 public void testGetRole() {
203 @SuppressWarnings("unchecked")
204 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
205 retVal1.value = new ArrayList<UserRoleDAO.Data>();
206 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
208 dataObj.expires = new Date();
210 retVal1.value.add(dataObj);
211 Mockito.doReturn(false).when(retVal1).isOKhasData();
212 Mockito.doReturn(true).when(retVal1).isOK();
213 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
214 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
215 Result<List<RoleDAO.Data>> userRoles = cassExecutorObj.getRoles();
217 //System.out.println(""+userRoles.status);
218 assertEquals(4,userRoles.status);
222 public void testGetRoleFirstIf() {
223 @SuppressWarnings("unchecked")
224 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
225 retVal1.value = new ArrayList<UserRoleDAO.Data>();
226 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
228 dataObj.expires = new Date();
232 retVal1.value.add(dataObj);
233 Mockito.doReturn(false).when(retVal1).isOKhasData();
234 Mockito.doReturn(false).when(retVal1).isOK();
235 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
236 Mockito.doReturn(retVal1).when(roleDAO).read(trans,"","");
237 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
238 Result<List<RoleDAO.Data>> userRoles = cassExecutorObj.getRoles();
240 // System.out.println(""+userRoles.status);
241 assertEquals(0,userRoles.status);
245 public void testGetRoleSecondIf() {
246 @SuppressWarnings("unchecked")
247 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
248 retVal1.value = new ArrayList<UserRoleDAO.Data>();
249 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
251 dataObj.expires = new Date();
255 retVal1.value.add(dataObj);
256 Mockito.doReturn(false).when(retVal1).isOKhasData();
257 Mockito.doReturn(true).when(retVal1).isOK();
258 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
259 Mockito.doReturn(retVal1).when(roleDAO).read(trans,"","");
260 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
261 Result<List<RoleDAO.Data>> userRoles = cassExecutorObj.getRoles();
262 userRoles = cassExecutorObj.getRoles();
264 // System.out.println(""+userRoles.status);
265 assertEquals(0,userRoles.status);
268 public void testGetPerms() {
269 @SuppressWarnings("unchecked")
270 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
271 retVal1.value = new ArrayList<UserRoleDAO.Data>();
272 Mockito.doReturn(false).when(retVal1).isOKhasData();
273 Mockito.doReturn(true).when(retVal1).isOK();
274 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
275 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
276 Result<Set<String>> userRoles = cassExecutorObj.getPermNames();
277 userRoles = cassExecutorObj.getPermNames();
279 //System.out.println(""+userRoles.status);
280 assertEquals(0,userRoles.status);
283 public void testGetPermsRrldOk() {
284 @SuppressWarnings("unchecked")
285 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
286 retVal1.value = new ArrayList<UserRoleDAO.Data>();
287 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
289 dataObj.expires = new Date();
291 retVal1.value.add(dataObj);
292 Mockito.doReturn(false).when(retVal1).isOKhasData();
293 Mockito.doReturn(true).when(retVal1).isOK();
294 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
295 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
296 Result<Set<String>> userRoles = cassExecutorObj.getPermNames();
298 //System.out.println(""+userRoles.status);
299 assertEquals(4,userRoles.status);
303 @SuppressWarnings("unchecked")
305 public void testGetPerm() {
306 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
307 Result<List<RoleDAO.Data>> retVal2 = Mockito.mock(Result.class);
309 retVal1.value = new ArrayList<UserRoleDAO.Data>();
310 retVal2.value = new ArrayList<RoleDAO.Data>();
311 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
313 Date dt = new Date();
314 Calendar c = Calendar.getInstance();
316 c.add(Calendar.DATE, 1);
317 dataObj.expires = c.getTime();
321 RoleDAO.Data dataObj1 = Mockito.mock( RoleDAO.Data.class);
322 Set<String> permSet = new HashSet<String>();
324 Mockito.doReturn(permSet).when(dataObj1).perms(false);
327 c = Calendar.getInstance();
329 c.add(Calendar.DATE, 1);
330 dataObj1.ns = "test";
331 dataObj1.perms = permSet;
333 retVal1.value.add(dataObj);
334 retVal2.value.add(dataObj1);
335 Mockito.doReturn(true).when(retVal1).isOKhasData();
336 Mockito.doReturn(true).when(retVal1).isOK();
337 Mockito.doReturn(true).when(retVal2).isOK();
338 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
339 Mockito.doReturn(retVal2).when(roleDAO).read(trans,"","");
342 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
344 // Mockito.doReturn(retVal2).when(cassExecutorObj).getPermNames();
345 Result<List<Data>> userRoles = cassExecutorObj.getPerms(true);
346 // userRoles = cassExecutorObj.getPerms(false);
348 // System.out.println(""+userRoles.status);
349 assertEquals(0,userRoles.status);
352 @SuppressWarnings("unchecked")
354 public void testGetPermFalse() {
355 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
356 Result<List<RoleDAO.Data>> retVal2 = Mockito.mock(Result.class);
358 retVal1.value = new ArrayList<UserRoleDAO.Data>();
359 retVal2.value = new ArrayList<RoleDAO.Data>();
360 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
362 Date dt = new Date();
363 Calendar c = Calendar.getInstance();
365 c.add(Calendar.DATE, 1);
366 dataObj.expires = c.getTime();
370 RoleDAO.Data dataObj1 = Mockito.mock( RoleDAO.Data.class);
371 Set<String> permSet = new HashSet<String>();
373 Mockito.doReturn(permSet).when(dataObj1).perms(false);
376 c = Calendar.getInstance();
378 c.add(Calendar.DATE, 1);
379 dataObj1.ns = "test";
380 dataObj1.perms = permSet;
382 retVal1.value.add(dataObj);
383 retVal2.value.add(dataObj1);
384 Mockito.doReturn(true).when(retVal1).isOKhasData();
385 Mockito.doReturn(true).when(retVal1).isOK();
386 Mockito.doReturn(true).when(retVal2).isOK();
387 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
388 Mockito.doReturn(retVal2).when(roleDAO).read(trans,"","");
391 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
393 // Mockito.doReturn(retVal2).when(cassExecutorObj).getPermNames();
394 Result<List<Data>> userRoles = cassExecutorObj.getPerms(false);
395 userRoles = cassExecutorObj.getPerms(false);
397 // System.out.println(""+userRoles.status);
398 assertEquals(0,userRoles.status);