Update DCAE Startup Info
[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 }