Catalog alignment
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / ecomp / PortalRestAPICentralServiceImplTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 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.openecomp.sdc.be.ecomp;
22
23 import fj.data.Either;
24 import org.junit.Assert;
25 import org.junit.Before;
26 import org.junit.Test;
27 import org.mockito.Mockito;
28 import org.onap.portalsdk.core.onboarding.exception.PortalAPIException;
29 import org.onap.portalsdk.core.restful.domain.EcompRole;
30 import org.onap.portalsdk.core.restful.domain.EcompUser;
31 import org.openecomp.sdc.be.model.User;
32 import org.openecomp.sdc.be.user.UserBusinessLogic;
33 import org.openecomp.sdc.be.user.UserBusinessLogicExt;
34 import org.openecomp.sdc.exception.ResponseFormat;
35
36 import javax.servlet.http.HttpServletRequest;
37 import java.util.HashSet;
38 import java.util.Map;
39 import java.util.Set;
40
41 public class PortalRestAPICentralServiceImplTest {
42
43     private PortalRestAPICentralServiceImpl testSubject;
44     private UserBusinessLogic ubl;
45     private  UserBusinessLogicExt uble;
46
47     @Before
48     public void createTestSubject() {
49         ubl = Mockito.mock(UserBusinessLogic.class);
50         uble = Mockito.mock(UserBusinessLogicExt.class);
51         testSubject = new PortalRestAPICentralServiceImpl(ubl, uble);
52
53     }
54
55     @Test
56     public void testGetAppCredentials() throws Exception {
57         Map<String, String> appCredentials = testSubject.getAppCredentials();
58         Assert.assertTrue(appCredentials.get("appName").equals("sdc"));
59         Assert.assertTrue(appCredentials.get("username").equals("sdc"));
60         Assert.assertTrue(appCredentials.get("password").equals("asdc"));
61     }
62
63     @Test
64     public void testPushUser() {
65         EcompUser user = new EcompUser();
66         Set<EcompRole> roleSet = new HashSet<>();
67         EcompRole role = new EcompRole();
68         role.setId(1L);
69         role.setName("Designer");
70         roleSet.add(role);
71         user.setRoles(roleSet);
72         try {
73             testSubject.pushUser(user);
74         } catch (PortalAPIException e) {
75             Assert.fail();
76         }
77     }
78
79     @Test
80     public void testPushUserUBLError() {
81         Mockito.when(ubl.createUser(Mockito.anyString(), Mockito.any(User.class))).thenThrow(RuntimeException.class);
82         EcompUser user = new EcompUser();
83         Set<EcompRole> roleSet = new HashSet<>();
84         EcompRole role = new EcompRole();
85         role.setId(1L);
86         role.setName("Designer");
87         roleSet.add(role);
88         user.setRoles(roleSet);
89         try {
90             testSubject.pushUser(user);
91         } catch (PortalAPIException e) {
92             Assert.assertTrue(e.getMessage().startsWith("Failed to create user"));
93             return;
94         }
95         Assert.fail();
96     }
97
98     @Test
99     public void testPushUserMultipleRoles() {
100         EcompUser user = new EcompUser();
101         Set<EcompRole> roleSet = new HashSet<>();
102         EcompRole role = new EcompRole();
103         role.setId(1L);
104         role.setName("Designer");
105         roleSet.add(role);
106         EcompRole role1 = new EcompRole();
107         role.setId(2L);
108         roleSet.add(role1);
109         role.setName("Tester");
110         user.setRoles(roleSet);
111         try {
112             testSubject.pushUser(user);
113         } catch (PortalAPIException e) {
114             Assert.assertTrue(e.getMessage().startsWith("Received multiple roles for user"));
115             return;
116         }
117         Assert.fail();
118     }
119
120     @Test
121     public void testPushUserNullRoles() {
122         EcompUser user = new EcompUser();
123         try{
124             testSubject.pushUser(user);
125         } catch (PortalAPIException e){
126             Assert.assertTrue(e.getMessage().equals("Received null roles for user" + user));
127             return;
128         }
129         Assert.fail();
130     }
131
132     @Test
133     public void testPushUserUserNull() {
134         try {
135             testSubject.pushUser(null);
136         } catch (PortalAPIException e) {
137             Assert.assertTrue(e.getMessage().equals("Received null for argument user"));
138             return;
139         }
140         Assert.fail();
141     }
142
143     @Test
144     public void testEditUserUserNull() {
145         try {
146             testSubject.editUser(null, null);
147         } catch (PortalAPIException e) {
148             Assert.assertTrue(e.getMessage().equals("Received null for argument user"));
149             return;
150         }
151         Assert.fail();
152     }
153
154     @Test
155     public void testEditUserIdNull() {
156         try {
157             testSubject.editUser(null, new EcompUser());
158         } catch (PortalAPIException e) {
159             Assert.assertTrue(e.getMessage().equals("Received null for argument loginId"));
160             return;
161         }
162         Assert.fail();
163     }
164
165     @Test
166     public void testEditUserFailOnUpdate() {
167         Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.right(new ResponseFormat()));
168         Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User()));
169         EcompUser user = new EcompUser();
170         Set<EcompRole> roleSet = new HashSet<>();
171         EcompRole role = new EcompRole();
172         role.setId(1L);
173         role.setName("Designer");
174         roleSet.add(role);
175         user.setRoles(roleSet);
176         try {
177             testSubject.editUser("mock_id", user);
178         } catch (PortalAPIException e) {
179             Assert.assertTrue(e.getMessage().startsWith("Failed to edit user"));
180         }
181     }
182
183     @Test
184     public void testEditUserDeactivate() {
185         Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.left(new User()));
186         Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User()));
187         EcompUser user = new EcompUser();
188         try {
189             testSubject.editUser("mock_id", user);
190         } catch (PortalAPIException e) {
191             Assert.fail();
192         }
193     }
194
195     @Test
196     public void testEditUserFailUpdate() {
197         Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.left(new User()));
198         Mockito.when(ubl.updateUserRole(Mockito.anyString(), Mockito.anyString(), Mockito.anyString())).thenThrow(new RuntimeException());
199         Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User()));
200         EcompUser user = new EcompUser();
201         Set<EcompRole> roleSet = new HashSet<>();
202         EcompRole role = new EcompRole();
203         role.setId(1L);
204         role.setName("Designer");
205         roleSet.add(role);
206         user.setRoles(roleSet);
207         try {
208             testSubject.editUser("mock_id", user);
209         } catch (PortalAPIException e) {
210             Assert.assertTrue(e.getMessage().startsWith("Error: Failed to update user role"));
211             return;
212         }
213         Assert.fail();
214     }
215
216     @Test
217     public void testEditUserFailDeactivate() {
218         Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.left(new User()));
219         Mockito.when(uble.deActivateUser(Mockito.anyString(), Mockito.anyString())).thenThrow(new RuntimeException());
220         Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User()));
221         EcompUser user = new EcompUser();
222         try {
223             testSubject.editUser("mock_id", user);
224         } catch (PortalAPIException e) {
225             Assert.assertTrue(e.getMessage().startsWith("Error: Failed to deactivate user"));
226             return;
227         }
228         Assert.fail();
229     }
230
231     @Test
232     public void testEditUser() {
233         Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.left(new User()));
234         Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User()));
235         EcompUser user = new EcompUser();
236         Set<EcompRole> roleSet = new HashSet<>();
237         EcompRole role = new EcompRole();
238         role.setId(1L);
239         role.setName("Designer");
240         roleSet.add(role);
241         user.setRoles(roleSet);
242         try {
243             testSubject.editUser("mock_id", user);
244         } catch (PortalAPIException e) {
245             Assert.fail();
246         }
247     }
248
249     @Test
250     public void testGetUserId() {
251         HttpServletRequest httpServletRequestMock = Mockito.mock(HttpServletRequest.class);
252         String mockHeader = "MockHeader";
253         Mockito.when(httpServletRequestMock.getHeader(Mockito.anyString())).thenReturn(mockHeader);
254         try {
255             String userId = testSubject.getUserId(httpServletRequestMock);
256             Assert.assertTrue(userId.equals(mockHeader));
257         } catch (PortalAPIException e){
258             Assert.fail();
259         }
260
261     }
262
263     @Test
264     public void testGetUserIdException() {
265         HttpServletRequest httpServletRequestMock = Mockito.mock(HttpServletRequest.class);
266         try {
267             testSubject.getUserId(httpServletRequestMock);
268         } catch (PortalAPIException e){
269             Assert.assertTrue(e.getMessage().equals("Failed to get user_id header"));
270             return;
271         }
272         Assert.fail();
273     }
274 }