2 * ================================================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property
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 * ================================================================================
20 package org.openecomp.portalapp.portal.test.controller;
22 import static org.junit.Assert.assertEquals;
23 import static org.junit.Assert.assertTrue;
25 import java.io.IOException;
26 import java.util.ArrayList;
27 import java.util.List;
29 import javax.servlet.http.HttpServletRequest;
30 import javax.servlet.http.HttpServletResponse;
31 import javax.servlet.http.HttpSession;
33 import org.junit.Before;
34 import org.junit.Test;
35 import org.junit.runner.RunWith;
36 import org.mockito.InjectMocks;
37 import org.mockito.Mock;
38 import org.mockito.Mockito;
39 import org.mockito.MockitoAnnotations;
40 import org.mockito.runners.MockitoJUnitRunner;
41 import org.openecomp.portalapp.portal.controller.FunctionalMenuController;
42 import org.openecomp.portalapp.portal.domain.EPUser;
43 import org.openecomp.portalapp.portal.service.AdminRolesService;
44 import org.openecomp.portalapp.portal.service.AdminRolesServiceImpl;
45 import org.openecomp.portalapp.portal.service.FunctionalMenuService;
46 import org.openecomp.portalapp.portal.service.FunctionalMenuServiceImpl;
47 import org.openecomp.portalapp.portal.test.core.MockEPUser;
48 import org.openecomp.portalapp.portal.test.framework.MockitoTestSuite;
49 import org.openecomp.portalapp.portal.transport.BusinessCardApplicationRole;
50 import org.openecomp.portalapp.portal.transport.BusinessCardApplicationRolesList;
51 import org.openecomp.portalapp.portal.transport.FieldsValidator;
52 import org.openecomp.portalapp.portal.transport.FieldsValidator.FieldName;
53 import org.openecomp.portalapp.util.EPUserUtils;
54 import org.openecomp.portalsdk.core.service.DataAccessService;
55 import org.openecomp.portalsdk.core.util.SystemProperties;
57 @RunWith(MockitoJUnitRunner.class)
58 public class FunctionalMenuControllerTest extends MockitoTestSuite {
60 String userid = "ab1234";
63 FunctionalMenuService functionalMenuService = new FunctionalMenuServiceImpl();
66 FunctionalMenuController functionalMenuController = new FunctionalMenuController();
69 private DataAccessService dataAccessService;
72 AdminRolesService adminRolesService = new AdminRolesServiceImpl();
76 MockitoAnnotations.initMocks(this);
79 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
81 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
82 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
85 EPUserUtils ePUserUtils = new EPUserUtils();
90 MockEPUser mockUser = new MockEPUser();
92 List<BusinessCardApplicationRolesList> appRoles = new ArrayList<BusinessCardApplicationRolesList>();
93 List<BusinessCardApplicationRolesList> appRolesActual = new ArrayList<BusinessCardApplicationRolesList>();
95 List<BusinessCardApplicationRole> userAppRoleList = new ArrayList<BusinessCardApplicationRole>();
97 public List<BusinessCardApplicationRole> mockBusinessCardApplicationRole() {
98 List<BusinessCardApplicationRole> userAppRoleList = new ArrayList<BusinessCardApplicationRole>();
100 BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole();
101 businessCardApplicationRole.setRoleName("ADMIN");
102 businessCardApplicationRole.setAppName("ASDC");
104 BusinessCardApplicationRole businessCardApplicationRole1 = new BusinessCardApplicationRole();
105 businessCardApplicationRole1.setAppName("ASDC");
106 businessCardApplicationRole1.setRoleName("Tester");
108 userAppRoleList.add(businessCardApplicationRole);
109 userAppRoleList.add(businessCardApplicationRole1);
110 return userAppRoleList;
113 public List<BusinessCardApplicationRolesList> mockBusinessCardApplicationRolesList() {
114 List<BusinessCardApplicationRolesList> appRolesActual = new ArrayList<BusinessCardApplicationRolesList>();
116 BusinessCardApplicationRolesList businessCardApplicationRolesList = new BusinessCardApplicationRolesList();
117 businessCardApplicationRolesList.setAppName("ASDC");
119 List<String> roleNames = new ArrayList<String>();
120 roleNames.add("ADMIN");
121 roleNames.add("Tester");
122 businessCardApplicationRolesList.setRoleNames(roleNames);
124 appRolesActual.add(businessCardApplicationRolesList);
125 return appRolesActual;
129 public void getAppListTestIfAppAlredyExistsBusinessCardApplicationRolesList() throws IOException {
131 userAppRoleList = mockBusinessCardApplicationRole();
132 appRolesActual = mockBusinessCardApplicationRolesList();
134 Mockito.when(functionalMenuService.getUserAppRolesList(userid)).thenReturn(userAppRoleList);
136 appRoles = functionalMenuController.getAppList(mockedRequest, userid);
138 assertEquals(appRolesActual.size(), appRoles.size());
139 assertEquals(appRolesActual.get(0).getAppName(), appRoles.get(0).getAppName());
140 assertEquals(appRolesActual.get(0).getRoleNames(), appRoles.get(0).getRoleNames());
145 public void getAppListTestIfAppDoesnotExistsInBusinessCardApplicationRolesList() throws IOException {
147 userAppRoleList = mockBusinessCardApplicationRole();
148 BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole();
149 businessCardApplicationRole.setAppName("CCD");
150 businessCardApplicationRole.setRoleName("ADMIN");
151 userAppRoleList.add(businessCardApplicationRole);
152 appRolesActual = mockBusinessCardApplicationRolesList();
153 BusinessCardApplicationRolesList businessCardApplicationRolesList = new BusinessCardApplicationRolesList();
154 businessCardApplicationRolesList.setAppName("CCD");
155 List<String> roleNames1 = new ArrayList<String>();
156 roleNames1.add("ADMIN");
157 businessCardApplicationRolesList.setRoleNames(roleNames1);
158 appRolesActual.add(businessCardApplicationRolesList);
159 Mockito.when(functionalMenuService.getUserAppRolesList(userid)).thenReturn(userAppRoleList);
160 appRoles = functionalMenuController.getAppList(mockedRequest, userid);
161 assertEquals(appRolesActual.size(), appRoles.size());
162 assertEquals(appRolesActual.get(0).getAppName(), appRoles.get(0).getAppName());
163 assertEquals(appRolesActual.get(0).getRoleNames(), appRoles.get(0).getRoleNames());
164 assertEquals(appRolesActual.get(1).getAppName(), appRoles.get(1).getAppName());
165 assertEquals(appRolesActual.get(1).getRoleNames(), appRoles.get(1).getRoleNames());
170 public void regenerateAncestorTableTest() {
171 EPUser user = mockUser.mockEPUser();
173 HttpSession session = mockedRequest.getSession();
174 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
175 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
176 FieldsValidator acutualFieldValidator = null;
177 FieldsValidator expectedFieldValidator = new FieldsValidator();
178 List<FieldName> fields = new ArrayList<>();
179 expectedFieldValidator.setHttpStatusCode((long) 200);
180 expectedFieldValidator.setFields(fields);
181 expectedFieldValidator.setErrorCode(null);
182 Mockito.when(!adminRolesService.isSuperAdmin(user)).thenReturn(true);
183 Mockito.when(functionalMenuService.regenerateAncestorTable()).thenReturn(expectedFieldValidator);
184 acutualFieldValidator = functionalMenuController.regenerateAncestorTable(mockedRequest, mockedResponse);
185 assertTrue(acutualFieldValidator.equals(expectedFieldValidator));