Remove Tabs, per Jococo
[aaf/authz.git] / auth / auth-cass / src / test / java / org / onap / aaf / auth / dao / hl / JU_PermLookup.java
1 /**
2  * ============LICENSE_START====================================================
3  * org.onap.aaf
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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====================================================
19  *
20  */
21 package org.onap.aaf.auth.dao.hl;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.mockito.Mockito.when;
25 import static org.mockito.MockitoAnnotations.initMocks;
26
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;
33 import java.util.Set;
34
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
53
54 @RunWith(MockitoJUnitRunner.class) 
55 public class JU_PermLookup {
56
57     
58     
59     @Mock
60     AuthzTrans trans;
61     
62     @Mock
63     Question q;
64     
65     @Mock
66     Access access;
67
68     @Mock
69     CachedRoleDAO roleDAO;
70
71     @Mock
72     CachedUserRoleDAO userRoleDAO;
73     
74     Function f;
75     
76     @Before
77     public void setUp() throws Exception {
78         initMocks(this);
79         Mockito.doReturn(userRoleDAO).when(q).userRoleDAO();
80         Mockito.doReturn(roleDAO).when(q).roleDAO();
81         
82         try {
83             Mockito.doReturn("0.0").when(access).getProperty("aaf_root_ns","org.osaaf.aaf");
84             Mockito.doReturn(new Properties()).when(access).getProperties();
85             Define.set(access);
86             
87             when(trans.error()).thenReturn(new LogTarget() {
88                 
89                 @Override
90                 public void printf(String fmt, Object... vars) {}
91                 
92                 @Override
93                 public void log(Throwable e, Object... msgs) {
94                     e.getMessage();
95                     e.printStackTrace();
96                     msgs.toString();
97                     
98                 }
99                 
100                 @Override
101                 public void log(Object... msgs) {
102                 }
103                 
104                 @Override
105                 public boolean isLoggable() {
106                     
107                     return true;
108                 }
109             });
110         } catch (CadiException e) {
111             // TODO Auto-generated catch block
112             e.printStackTrace();
113         }
114         f =new Function(trans, q);
115     }
116     
117     
118 //    @Test
119 //    public void testPerm() {
120 //        
121 //        PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
122 //        
123 ////        System.out.println(cassExecutorObj);
124 ////        assertFalse(retVal);
125 //    }
126     
127     @Test
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);
133         
134         dataObj.expires = new Date();
135         
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();
141         
142         //System.out.println(""+userRoles.status);
143         assertEquals(24,userRoles.status);
144     }
145     
146     @Test
147     public void testGetUserRolesFirstIf() {
148         @SuppressWarnings("unchecked")
149         Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
150         retVal1.value = new ArrayList<UserRoleDAO.Data>();
151                 
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();
156         
157 //        System.out.println("output is"+userRoles.status);
158         assertEquals(0,userRoles.status);
159     }
160     
161     @Test
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);
167         
168         Date dt = new Date();
169         Calendar c = Calendar.getInstance(); 
170         c.setTime(dt); 
171         c.add(Calendar.DATE, 1);
172         dataObj.expires = c.getTime();
173         
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();
179         
180         //System.out.println(userRoles.status);
181         assertEquals("Success",userRoles.details);
182         Result<List<UserRoleDAO.Data>> userRoles1 = cassExecutorObj.getUserRoles();
183
184         //System.out.println(userRoles1.status);
185         assertEquals(0, userRoles1.status);
186     }
187     
188     @Test
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);
194         
195         dataObj.expires = new Date();
196         
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();
203         
204         //System.out.println(""+userRoles.status);
205         assertEquals(4,userRoles.status);
206     }
207     
208     @Test
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);
214         
215         dataObj.expires = new Date();
216         dataObj.ns="";
217         dataObj.rname="";
218         
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();
226         
227 //        System.out.println(""+userRoles.status);
228         assertEquals(0,userRoles.status);
229     }
230     
231     @Test
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);
237         
238         dataObj.expires = new Date();
239         dataObj.ns="";
240         dataObj.rname="";
241         
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();
250         
251 //        System.out.println(""+userRoles.status);
252         assertEquals(0,userRoles.status);
253     }
254     @Test
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();
265         
266         //System.out.println(""+userRoles.status);
267         assertEquals(0,userRoles.status);
268     }
269     @Test
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);
275         
276         dataObj.expires = new Date();
277         
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();
284         
285         //System.out.println(""+userRoles.status);
286         assertEquals(4,userRoles.status);
287     }    
288
289
290     @SuppressWarnings("unchecked")
291     @Test
292     public void testGetPerm() {
293         Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
294         Result<List<RoleDAO.Data>> retVal2 = Mockito.mock(Result.class);
295         
296         retVal1.value = new ArrayList<UserRoleDAO.Data>();
297         retVal2.value = new ArrayList<RoleDAO.Data>();
298         UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
299         
300         Date dt = new Date();
301         Calendar c = Calendar.getInstance(); 
302         c.setTime(dt); 
303         c.add(Calendar.DATE, 1);
304         dataObj.expires = c.getTime();
305         dataObj.ns = "";
306         dataObj.rname="";
307         
308         RoleDAO.Data dataObj1 = Mockito.mock( RoleDAO.Data.class);
309         Set<String> permSet = new HashSet<String>();
310         permSet.add("test");
311         Mockito.doReturn(permSet).when(dataObj1).perms(false);
312         
313         dt = new Date();
314         c = Calendar.getInstance(); 
315         c.setTime(dt); 
316         c.add(Calendar.DATE, 1);
317         dataObj1.ns = "test";
318         dataObj1.perms = permSet;
319         
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,"","");
327
328         
329         PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
330 //        
331 //        Mockito.doReturn(retVal2).when(cassExecutorObj).getPermNames();
332         Result<List<Data>> userRoles = cassExecutorObj.getPerms(true);
333 //        userRoles = cassExecutorObj.getPerms(false);
334         
335 //        System.out.println(""+userRoles.status);
336         assertEquals(0,userRoles.status);
337     }
338     
339     @SuppressWarnings("unchecked")
340     @Test
341     public void testGetPermFalse() {
342         Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
343         Result<List<RoleDAO.Data>> retVal2 = Mockito.mock(Result.class);
344         
345         retVal1.value = new ArrayList<UserRoleDAO.Data>();
346         retVal2.value = new ArrayList<RoleDAO.Data>();
347         UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
348         
349         Date dt = new Date();
350         Calendar c = Calendar.getInstance(); 
351         c.setTime(dt); 
352         c.add(Calendar.DATE, 1);
353         dataObj.expires = c.getTime();
354         dataObj.ns = "";
355         dataObj.rname="";
356         
357         RoleDAO.Data dataObj1 = Mockito.mock( RoleDAO.Data.class);
358         Set<String> permSet = new HashSet<String>();
359         permSet.add("test");
360         Mockito.doReturn(permSet).when(dataObj1).perms(false);
361         
362         dt = new Date();
363         c = Calendar.getInstance(); 
364         c.setTime(dt); 
365         c.add(Calendar.DATE, 1);
366         dataObj1.ns = "test";
367         dataObj1.perms = permSet;
368         
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,"","");
376
377         
378         PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
379 //        
380 //        Mockito.doReturn(retVal2).when(cassExecutorObj).getPermNames();
381         Result<List<Data>> userRoles = cassExecutorObj.getPerms(false);
382         userRoles = cassExecutorObj.getPerms(false);
383         
384 //        System.out.println(""+userRoles.status);
385         assertEquals(0,userRoles.status);
386     }
387     
388 }