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 {
69 CachedRoleDAO roleDAO;
72 CachedUserRoleDAO userRoleDAO;
77 public void setUp() throws Exception {
79 Mockito.doReturn(userRoleDAO).when(q).userRoleDAO();
80 Mockito.doReturn(roleDAO).when(q).roleDAO();
83 Mockito.doReturn("0.0").when(access).getProperty("aaf_root_ns","org.osaaf.aaf");
84 Mockito.doReturn(new Properties()).when(access).getProperties();
87 when(trans.error()).thenReturn(new LogTarget() {
90 public void printf(String fmt, Object... vars) {}
93 public void log(Throwable e, Object... msgs) {
101 public void log(Object... msgs) {
105 public boolean isLoggable() {
110 } catch (CadiException e) {
111 // TODO Auto-generated catch block
114 f =new Function(trans, q);
119 // public void testPerm() {
121 // PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
123 //// System.out.println(cassExecutorObj);
124 //// assertFalse(retVal);
128 public void testGetUserRole() {
129 @SuppressWarnings("unchecked")
130 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
131 retVal1.value = new ArrayList<UserRoleDAO.Data>();
132 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();
138 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
139 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
140 Result<List<UserRoleDAO.Data>> userRoles = cassExecutorObj.getUserRoles();
142 //System.out.println(""+userRoles.status);
143 assertEquals(24,userRoles.status);
147 public void testGetUserRolesFirstIf() {
148 @SuppressWarnings("unchecked")
149 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
150 retVal1.value = new ArrayList<UserRoleDAO.Data>();
152 Mockito.doReturn(false).when(retVal1).isOKhasData();
153 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
154 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
155 Result<List<UserRoleDAO.Data>> userRoles = cassExecutorObj.getUserRoles();
157 // System.out.println("output is"+userRoles.status);
158 assertEquals(0,userRoles.status);
162 public void testGetUserRolesSecondIf() {
163 @SuppressWarnings("unchecked")
164 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
165 retVal1.value = new ArrayList<UserRoleDAO.Data>();
166 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
168 Date dt = new Date();
169 Calendar c = Calendar.getInstance();
171 c.add(Calendar.DATE, 1);
172 dataObj.expires = c.getTime();
174 retVal1.value.add(dataObj);
175 Mockito.doReturn(true).when(retVal1).isOKhasData();
176 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
177 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
178 Result<List<UserRoleDAO.Data>> userRoles = cassExecutorObj.getUserRoles();
180 //System.out.println(userRoles.status);
181 assertEquals("Success",userRoles.details);
182 Result<List<UserRoleDAO.Data>> userRoles1 = cassExecutorObj.getUserRoles();
184 //System.out.println(userRoles1.status);
185 assertEquals(0, userRoles1.status);
189 public void testGetRole() {
190 @SuppressWarnings("unchecked")
191 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
192 retVal1.value = new ArrayList<UserRoleDAO.Data>();
193 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
195 dataObj.expires = new Date();
197 retVal1.value.add(dataObj);
198 Mockito.doReturn(false).when(retVal1).isOKhasData();
199 Mockito.doReturn(true).when(retVal1).isOK();
200 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
201 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
202 Result<List<RoleDAO.Data>> userRoles = cassExecutorObj.getRoles();
204 //System.out.println(""+userRoles.status);
205 assertEquals(4,userRoles.status);
209 public void testGetRoleFirstIf() {
210 @SuppressWarnings("unchecked")
211 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
212 retVal1.value = new ArrayList<UserRoleDAO.Data>();
213 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
215 dataObj.expires = new Date();
219 retVal1.value.add(dataObj);
220 Mockito.doReturn(false).when(retVal1).isOKhasData();
221 Mockito.doReturn(false).when(retVal1).isOK();
222 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
223 Mockito.doReturn(retVal1).when(roleDAO).read(trans,"","");
224 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
225 Result<List<RoleDAO.Data>> userRoles = cassExecutorObj.getRoles();
227 // System.out.println(""+userRoles.status);
228 assertEquals(0,userRoles.status);
232 public void testGetRoleSecondIf() {
233 @SuppressWarnings("unchecked")
234 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
235 retVal1.value = new ArrayList<UserRoleDAO.Data>();
236 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
238 dataObj.expires = new Date();
242 retVal1.value.add(dataObj);
243 Mockito.doReturn(false).when(retVal1).isOKhasData();
244 Mockito.doReturn(true).when(retVal1).isOK();
245 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
246 Mockito.doReturn(retVal1).when(roleDAO).read(trans,"","");
247 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
248 Result<List<RoleDAO.Data>> userRoles = cassExecutorObj.getRoles();
249 userRoles = cassExecutorObj.getRoles();
251 // System.out.println(""+userRoles.status);
252 assertEquals(0,userRoles.status);
255 public void testGetPerms() {
256 @SuppressWarnings("unchecked")
257 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
258 retVal1.value = new ArrayList<UserRoleDAO.Data>();
259 Mockito.doReturn(false).when(retVal1).isOKhasData();
260 Mockito.doReturn(true).when(retVal1).isOK();
261 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
262 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
263 Result<Set<String>> userRoles = cassExecutorObj.getPermNames();
264 userRoles = cassExecutorObj.getPermNames();
266 //System.out.println(""+userRoles.status);
267 assertEquals(0,userRoles.status);
270 public void testGetPermsRrldOk() {
271 @SuppressWarnings("unchecked")
272 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
273 retVal1.value = new ArrayList<UserRoleDAO.Data>();
274 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
276 dataObj.expires = new Date();
278 retVal1.value.add(dataObj);
279 Mockito.doReturn(false).when(retVal1).isOKhasData();
280 Mockito.doReturn(true).when(retVal1).isOK();
281 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
282 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
283 Result<Set<String>> userRoles = cassExecutorObj.getPermNames();
285 //System.out.println(""+userRoles.status);
286 assertEquals(4,userRoles.status);
290 @SuppressWarnings("unchecked")
292 public void testGetPerm() {
293 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
294 Result<List<RoleDAO.Data>> retVal2 = Mockito.mock(Result.class);
296 retVal1.value = new ArrayList<UserRoleDAO.Data>();
297 retVal2.value = new ArrayList<RoleDAO.Data>();
298 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
300 Date dt = new Date();
301 Calendar c = Calendar.getInstance();
303 c.add(Calendar.DATE, 1);
304 dataObj.expires = c.getTime();
308 RoleDAO.Data dataObj1 = Mockito.mock( RoleDAO.Data.class);
309 Set<String> permSet = new HashSet<String>();
311 Mockito.doReturn(permSet).when(dataObj1).perms(false);
314 c = Calendar.getInstance();
316 c.add(Calendar.DATE, 1);
317 dataObj1.ns = "test";
318 dataObj1.perms = permSet;
320 retVal1.value.add(dataObj);
321 retVal2.value.add(dataObj1);
322 Mockito.doReturn(true).when(retVal1).isOKhasData();
323 Mockito.doReturn(true).when(retVal1).isOK();
324 Mockito.doReturn(true).when(retVal2).isOK();
325 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
326 Mockito.doReturn(retVal2).when(roleDAO).read(trans,"","");
329 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
331 // Mockito.doReturn(retVal2).when(cassExecutorObj).getPermNames();
332 Result<List<Data>> userRoles = cassExecutorObj.getPerms(true);
333 // userRoles = cassExecutorObj.getPerms(false);
335 // System.out.println(""+userRoles.status);
336 assertEquals(0,userRoles.status);
339 @SuppressWarnings("unchecked")
341 public void testGetPermFalse() {
342 Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
343 Result<List<RoleDAO.Data>> retVal2 = Mockito.mock(Result.class);
345 retVal1.value = new ArrayList<UserRoleDAO.Data>();
346 retVal2.value = new ArrayList<RoleDAO.Data>();
347 UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
349 Date dt = new Date();
350 Calendar c = Calendar.getInstance();
352 c.add(Calendar.DATE, 1);
353 dataObj.expires = c.getTime();
357 RoleDAO.Data dataObj1 = Mockito.mock( RoleDAO.Data.class);
358 Set<String> permSet = new HashSet<String>();
360 Mockito.doReturn(permSet).when(dataObj1).perms(false);
363 c = Calendar.getInstance();
365 c.add(Calendar.DATE, 1);
366 dataObj1.ns = "test";
367 dataObj1.perms = permSet;
369 retVal1.value.add(dataObj);
370 retVal2.value.add(dataObj1);
371 Mockito.doReturn(true).when(retVal1).isOKhasData();
372 Mockito.doReturn(true).when(retVal1).isOK();
373 Mockito.doReturn(true).when(retVal2).isOK();
374 Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
375 Mockito.doReturn(retVal2).when(roleDAO).read(trans,"","");
378 PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
380 // Mockito.doReturn(retVal2).when(cassExecutorObj).getPermNames();
381 Result<List<Data>> userRoles = cassExecutorObj.getPerms(false);
382 userRoles = cassExecutorObj.getPerms(false);
384 // System.out.println(""+userRoles.status);
385 assertEquals(0,userRoles.status);