dd9527a15f59bfb9222bcd57babbf4c8b29051ad
[aaf/authz.git] / auth / auth-batch / src / test / java / org / onap / aaf / auth / batch / approvalsets / JU_URApprovalSet.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
22 package org.onap.aaf.auth.batch.approvalsets;
23
24 import static org.junit.Assert.assertTrue;
25 import static org.mockito.MockitoAnnotations.initMocks;
26
27 import java.io.IOException;
28 import java.util.ArrayList;
29 import java.util.Date;
30 import java.util.GregorianCalendar;
31 import java.util.List;
32
33 import org.junit.Before;
34 import org.junit.Test;
35 import org.mockito.Mock;
36 import org.mockito.Mockito;
37 import org.onap.aaf.auth.dao.cass.NsDAO;
38 import org.onap.aaf.auth.dao.cass.RoleDAO;
39 import org.onap.aaf.auth.dao.cass.UserRoleDAO;
40 import org.onap.aaf.auth.dao.cass.UserRoleDAO.Data;
41 import org.onap.aaf.auth.env.AuthzTrans;
42 import org.onap.aaf.auth.layer.Result;
43 import org.onap.aaf.auth.org.Organization;
44 import org.onap.aaf.auth.org.Organization.Identity;
45 import org.onap.aaf.auth.org.OrganizationException;
46 import org.onap.aaf.cadi.CadiException;
47 import org.onap.aaf.cadi.PropAccess;
48 import org.onap.aaf.org.DefaultOrgIdentity;
49
50 import com.datastax.driver.core.Cluster;
51
52 public class JU_URApprovalSet {
53
54     @Mock
55     AuthzTrans trans;
56     @Mock
57     Cluster cluster;
58     @Mock
59     PropAccess access;
60
61     @Mock
62     DataView dv;
63
64     URApprovalSet approvalObj;
65
66     @Mock
67     Loader<UserRoleDAO.Data> lurdd;
68
69     @Before
70     public void setUp() {
71         initMocks(this);
72     }
73
74     @Test
75     public void testConstructor() {
76         GregorianCalendar start = new GregorianCalendar();
77         UserRoleDAO.Data urdd = new UserRoleDAO.Data();
78         urdd.rname = "owner";
79         urdd.expires = new Date();
80         Organization orgObj = Mockito.mock(Organization.class);
81         try {
82
83             Mockito.doReturn(urdd).when(lurdd).load();
84             Mockito.doReturn(orgObj).when(trans).org();
85             Mockito.doReturn(Mockito.mock(GregorianCalendar.class)).when(orgObj)
86                     .expiration(null, Organization.Expiration.UserInRole);
87
88             Result<RoleDAO.Data> rsRoleData = new Result<RoleDAO.Data>(null, 0,
89                     "test", new Object[0]);
90             Mockito.doReturn(rsRoleData).when(dv).roleByName(trans, urdd.role);
91             approvalObj = new URApprovalSet(trans, start, dv, lurdd);
92         } catch (CadiException e) {
93             assertTrue(e.getMessage().contains("Error - test"));
94         } catch (IOException e) {
95             // TODO Auto-generated catch block
96             e.printStackTrace();
97         }
98
99         try {
100             urdd.rname = "admin";
101             RoleDAO.Data dataObj = new RoleDAO.Data();
102             Result<RoleDAO.Data> rsRoleData = new Result<RoleDAO.Data>(dataObj,
103                     0, "test", new Object[0]);
104             Mockito.doReturn(rsRoleData).when(dv).roleByName(trans, urdd.role);
105
106             Result<NsDAO.Data> rsNsData = new Result<NsDAO.Data>(null, 0,
107                     "test", new Object[0]);
108             Mockito.doReturn(rsNsData).when(dv).ns(trans, urdd.ns);
109             approvalObj = new URApprovalSet(trans, start, dv, lurdd);
110         } catch (CadiException e) {
111             assertTrue(e.getMessage().contains("Error - test"));
112         } catch (IOException e) {
113             // TODO Auto-generated catch block
114             e.printStackTrace();
115         }
116
117         try {
118             urdd.rname = "rname";
119             NsDAO.Data dataObj = new NsDAO.Data();
120
121             Result<NsDAO.Data> rsNsData = new Result<NsDAO.Data>(dataObj, 0,
122                     "test", new Object[0]);
123             Mockito.doReturn(rsNsData).when(dv).ns(trans, urdd.ns);
124
125             Result<List<Data>> rsData = new Result<List<Data>>(null, 1, "test",
126                     new Object[0]);
127             Mockito.doReturn(rsData).when(dv).ursByRole(trans, urdd.role);
128             approvalObj = new URApprovalSet(trans, start, dv, lurdd);
129         } catch (CadiException e) {
130             assertTrue(e.getMessage()
131                     .contains("User 'null' in Role 'null' does not exist"));
132         } catch (IOException e) {
133             // TODO Auto-generated catch block
134             e.printStackTrace();
135         }
136
137         try {
138
139             List<Data> dataAL = new ArrayList<>();
140             Data data = new Data();
141             data.user = "user";
142             urdd.user = "test";
143             dataAL.add(data);
144             Result<List<Data>> rsData = new Result<List<Data>>(dataAL, 0,
145                     "test", new Object[0]);
146             Mockito.doReturn(rsData).when(dv).ursByRole(trans, urdd.role);
147             approvalObj = new URApprovalSet(trans, start, dv, lurdd);
148         } catch (CadiException e) {
149             assertTrue(e.getMessage()
150                     .contains("User 'test' in Role 'null' does not exist"));
151         } catch (IOException e) {
152             // TODO Auto-generated catch block
153             e.printStackTrace();
154         }
155
156         try {
157
158             List<Data> dataAL = new ArrayList<>();
159             Data data = new Data();
160             data.user = "user";
161             urdd.user = "user";
162             dataAL.add(data);
163             Result<List<Data>> rsData = new Result<List<Data>>(dataAL, 0,
164                     "test", new Object[0]);
165             Mockito.doReturn(rsData).when(dv).ursByRole(trans, urdd.role);
166
167             Result<List<UserRoleDAO.Data>> rsURData = new Result<List<UserRoleDAO.Data>>(
168                     null, 1, "test", new Object[0]);
169             Mockito.doReturn(rsURData).when(dv).ursByRole(trans,
170                     urdd.ns + ".owner");
171
172             approvalObj = new URApprovalSet(trans, start, dv, lurdd);
173
174             List<UserRoleDAO.Data> urDataAL = new ArrayList<>();
175             UserRoleDAO.Data urData = new UserRoleDAO.Data();
176             urData.user = "user";
177             urDataAL.add(urData);
178             rsURData = new Result<List<UserRoleDAO.Data>>(urDataAL, 0, "test",
179                     new Object[0]);
180             Mockito.doReturn(rsURData).when(dv).ursByRole(trans,
181                     urdd.ns + ".owner");
182             approvalObj = new URApprovalSet(trans, start, dv, lurdd);
183
184             List<Identity> identityAL = new ArrayList<Identity>();
185             Identity idenObj = Mockito.mock(DefaultOrgIdentity.class);
186             identityAL.add(idenObj);
187
188             try {
189                 Mockito.doReturn(identityAL).when(orgObj).getApprovers(trans,
190                         urdd.user);
191             } catch (OrganizationException e) {
192                 // TODO Auto-generated catch block
193                 e.printStackTrace();
194             }
195             approvalObj = new URApprovalSet(trans, start, dv, lurdd);
196
197             urDataAL = new ArrayList<>();
198             urData = new UserRoleDAO.Data();
199             urData.user = "user1";
200             urDataAL.add(urData);
201             rsURData = new Result<List<UserRoleDAO.Data>>(urDataAL, 0, "test",
202                     new Object[0]);
203             Mockito.doReturn(rsURData).when(dv).ursByRole(trans,
204                     urdd.ns + ".owner");
205             approvalObj = new URApprovalSet(trans, start, dv, lurdd);
206         } catch (CadiException e) {
207             assertTrue(e.getMessage()
208                     .contains("User 'null' in Role 'null' does not exist"));
209         } catch (IOException e) {
210             // TODO Auto-generated catch block
211             e.printStackTrace();
212         }
213
214         try {
215             try {
216                 Mockito.doThrow(new OrganizationException()).when(orgObj)
217                         .getApprovers(trans, urdd.user);
218             } catch (OrganizationException e) {
219                 // TODO Auto-generated catch block
220                 e.printStackTrace();
221             }
222             approvalObj = new URApprovalSet(trans, start, dv, lurdd);
223         } catch (CadiException e) {
224             e.printStackTrace();
225             assertTrue(e.getMessage()
226                     .contains("User 'null' in Role 'null' does not exist"));
227         } catch (IOException e) {
228             // TODO Auto-generated catch block
229             e.printStackTrace();
230         }
231
232     }
233
234 }