2 * ============LICENSE_START=======================================================
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
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.openecomp.sdc.be.ecomp;
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;
36 import javax.servlet.http.HttpServletRequest;
37 import java.util.HashSet;
41 public class PortalRestAPICentralServiceImplTest {
43 private PortalRestAPICentralServiceImpl testSubject;
44 private UserBusinessLogic ubl;
45 private UserBusinessLogicExt uble;
48 public void createTestSubject() {
49 ubl = Mockito.mock(UserBusinessLogic.class);
50 uble = Mockito.mock(UserBusinessLogicExt.class);
51 testSubject = new PortalRestAPICentralServiceImpl(ubl, uble);
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"));
64 public void testPushUser() {
65 EcompUser user = new EcompUser();
66 Set<EcompRole> roleSet = new HashSet<>();
67 EcompRole role = new EcompRole();
69 role.setName("Designer");
71 user.setRoles(roleSet);
73 testSubject.pushUser(user);
74 } catch (PortalAPIException e) {
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();
86 role.setName("Designer");
88 user.setRoles(roleSet);
90 testSubject.pushUser(user);
91 } catch (PortalAPIException e) {
92 Assert.assertTrue(e.getMessage().startsWith("Failed to create user"));
99 public void testPushUserMultipleRoles() {
100 EcompUser user = new EcompUser();
101 Set<EcompRole> roleSet = new HashSet<>();
102 EcompRole role = new EcompRole();
104 role.setName("Designer");
106 EcompRole role1 = new EcompRole();
109 role.setName("Tester");
110 user.setRoles(roleSet);
112 testSubject.pushUser(user);
113 } catch (PortalAPIException e) {
114 Assert.assertTrue(e.getMessage().startsWith("Received multiple roles for user"));
121 public void testPushUserNullRoles() {
122 EcompUser user = new EcompUser();
124 testSubject.pushUser(user);
125 } catch (PortalAPIException e){
126 Assert.assertTrue(e.getMessage().equals("Received null roles for user" + user));
133 public void testPushUserUserNull() {
135 testSubject.pushUser(null);
136 } catch (PortalAPIException e) {
137 Assert.assertTrue(e.getMessage().equals("Received null for argument user"));
144 public void testEditUserUserNull() {
146 testSubject.editUser(null, null);
147 } catch (PortalAPIException e) {
148 Assert.assertTrue(e.getMessage().equals("Received null for argument user"));
155 public void testEditUserIdNull() {
157 testSubject.editUser(null, new EcompUser());
158 } catch (PortalAPIException e) {
159 Assert.assertTrue(e.getMessage().equals("Received null for argument loginId"));
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();
173 role.setName("Designer");
175 user.setRoles(roleSet);
177 testSubject.editUser("mock_id", user);
178 } catch (PortalAPIException e) {
179 Assert.assertTrue(e.getMessage().startsWith("Failed to edit user"));
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();
189 testSubject.editUser("mock_id", user);
190 } catch (PortalAPIException e) {
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();
204 role.setName("Designer");
206 user.setRoles(roleSet);
208 testSubject.editUser("mock_id", user);
209 } catch (PortalAPIException e) {
210 Assert.assertTrue(e.getMessage().startsWith("Error: Failed to update user role"));
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();
223 testSubject.editUser("mock_id", user);
224 } catch (PortalAPIException e) {
225 Assert.assertTrue(e.getMessage().startsWith("Error: Failed to deactivate user"));
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();
239 role.setName("Designer");
241 user.setRoles(roleSet);
243 testSubject.editUser("mock_id", user);
244 } catch (PortalAPIException e) {
250 public void testGetUserId() {
251 HttpServletRequest httpServletRequestMock = Mockito.mock(HttpServletRequest.class);
252 String mockHeader = "MockHeader";
253 Mockito.when(httpServletRequestMock.getHeader(Mockito.anyString())).thenReturn(mockHeader);
255 String userId = testSubject.getUserId(httpServletRequestMock);
256 Assert.assertTrue(userId.equals(mockHeader));
257 } catch (PortalAPIException e){
264 public void testGetUserIdException() {
265 HttpServletRequest httpServletRequestMock = Mockito.mock(HttpServletRequest.class);
267 testSubject.getUserId(httpServletRequestMock);
268 } catch (PortalAPIException e){
269 Assert.assertTrue(e.getMessage().equals("Failed to get user_id header"));