2  * ================================================================================
\r 
   4  * ================================================================================
\r 
   5  * Copyright (C) 2017 AT&T Intellectual Property
\r 
   6  * ================================================================================
\r 
   7  * Licensed under the Apache License, Version 2.0 (the "License");
\r 
   8  * you may not use this file except in compliance with the License.
\r 
   9  * You may obtain a copy of the License at
\r 
  11  *      http://www.apache.org/licenses/LICENSE-2.0
\r 
  13  * Unless required by applicable law or agreed to in writing, software
\r 
  14  * distributed under the License is distributed on an "AS IS" BASIS,
\r 
  15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r 
  16  * See the License for the specific language governing permissions and
\r 
  17  * limitations under the License.
\r 
  18  * ================================================================================
\r 
  20 package org.openecomp.portalapp.portal.test.controller;
\r 
  22 import static org.junit.Assert.*;
\r 
  24 import java.io.IOException;
\r 
  25 import java.util.ArrayList;
\r 
  26 import java.util.Date;
\r 
  27 import java.util.List;
\r 
  29 import javax.servlet.http.HttpServletRequest;
\r 
  30 import javax.servlet.http.HttpServletResponse;
\r 
  31 import javax.servlet.http.HttpSession;
\r 
  32 import javax.validation.constraints.AssertTrue;
\r 
  34 import org.junit.Before;
\r 
  35 import org.junit.Test;
\r 
  36 import org.junit.runner.RunWith;
\r 
  37 import org.mockito.InjectMocks;
\r 
  38 import org.mockito.Mock;
\r 
  39 import org.mockito.Mockito;
\r 
  40 import org.mockito.MockitoAnnotations;
\r 
  41 import org.mockito.runners.MockitoJUnitRunner;
\r 
  42 import org.openecomp.portalapp.portal.controller.FunctionalMenuController;
\r 
  43 import org.openecomp.portalapp.portal.domain.EPUser;
\r 
  44 import org.openecomp.portalapp.portal.service.AdminRolesService;
\r 
  45 import org.openecomp.portalapp.portal.service.AdminRolesServiceImpl;
\r 
  46 import org.openecomp.portalapp.portal.service.FunctionalMenuService;
\r 
  47 import org.openecomp.portalapp.portal.service.FunctionalMenuServiceImpl;
\r 
  48 import org.openecomp.portalapp.portal.test.core.MockEPUser;
\r 
  49 import org.openecomp.portalapp.portal.test.framework.MockitoTestSuite;
\r 
  50 import org.openecomp.portalapp.portal.transport.BusinessCardApplicationRole;
\r 
  51 import org.openecomp.portalapp.portal.transport.BusinessCardApplicationRolesList;
\r 
  52 import org.openecomp.portalapp.portal.transport.FieldsValidator;
\r 
  53 import org.openecomp.portalapp.portal.transport.FieldsValidator.FieldName;
\r 
  54 import org.openecomp.portalapp.portal.utils.EcompPortalUtils;
\r 
  55 import org.openecomp.portalapp.util.EPUserUtils;
\r 
  56 import org.openecomp.portalsdk.core.service.DataAccessService;
\r 
  57 import org.openecomp.portalsdk.core.util.SystemProperties;
\r 
  59 @RunWith(MockitoJUnitRunner.class)
\r 
  60 public class FunctionalMenuControllerTest extends MockitoTestSuite {
\r 
  62         String userid = "sk434m";
\r 
  65         FunctionalMenuService functionalMenuService = new FunctionalMenuServiceImpl();
\r 
  68         FunctionalMenuController functionalMenuController = new FunctionalMenuController();
\r 
  71         private DataAccessService dataAccessService;
\r 
  74         AdminRolesService adminRolesService = new AdminRolesServiceImpl();
\r 
  77         public void setup() {
\r 
  78                 MockitoAnnotations.initMocks(this);
\r 
  81         MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
\r 
  83         HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
\r 
  84         HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
\r 
  87         EPUserUtils ePUserUtils = new EPUserUtils();
\r 
  92         MockEPUser mockUser = new MockEPUser();
\r 
  94         List<BusinessCardApplicationRolesList> appRoles = new ArrayList<BusinessCardApplicationRolesList>();
\r 
  95         List<BusinessCardApplicationRolesList> appRolesActual = new ArrayList<BusinessCardApplicationRolesList>();
\r 
  97         List<BusinessCardApplicationRole> userAppRoleList = new ArrayList<BusinessCardApplicationRole>();
\r 
  99         public List<BusinessCardApplicationRole> mockBusinessCardApplicationRole() {
\r 
 100                 List<BusinessCardApplicationRole> userAppRoleList = new ArrayList<BusinessCardApplicationRole>();
\r 
 102                 BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole();
\r 
 103                 businessCardApplicationRole.setRoleName("ADMIN");
\r 
 104                 businessCardApplicationRole.setAppName("ASDC");
\r 
 106                 BusinessCardApplicationRole businessCardApplicationRole1 = new BusinessCardApplicationRole();
\r 
 107                 businessCardApplicationRole1.setAppName("ASDC");
\r 
 108                 businessCardApplicationRole1.setRoleName("Tester");
\r 
 110                 userAppRoleList.add(businessCardApplicationRole);
\r 
 111                 userAppRoleList.add(businessCardApplicationRole1);
\r 
 112                 return userAppRoleList;
\r 
 115         public List<BusinessCardApplicationRolesList> mockBusinessCardApplicationRolesList() {
\r 
 116                 List<BusinessCardApplicationRolesList> appRolesActual = new ArrayList<BusinessCardApplicationRolesList>();
\r 
 118                 BusinessCardApplicationRolesList businessCardApplicationRolesList = new BusinessCardApplicationRolesList();
\r 
 119                 businessCardApplicationRolesList.setAppName("ASDC");
\r 
 121                 List<String> roleNames = new ArrayList<String>();
\r 
 122                 roleNames.add("ADMIN");
\r 
 123                 roleNames.add("Tester");
\r 
 124                 businessCardApplicationRolesList.setRoleNames(roleNames);
\r 
 126                 appRolesActual.add(businessCardApplicationRolesList);
\r 
 127                 return appRolesActual;
\r 
 131         public void getAppListTestIfAppAlredyExistsBusinessCardApplicationRolesList() throws IOException {
\r 
 133                 userAppRoleList = mockBusinessCardApplicationRole();
\r 
 134                 appRolesActual = mockBusinessCardApplicationRolesList();
\r 
 136                 Mockito.when(functionalMenuService.getUserAppRolesList(userid)).thenReturn(userAppRoleList);
\r 
 138                 appRoles = functionalMenuController.getAppList(mockedRequest, userid);
\r 
 140                 assertEquals(appRolesActual.size(), appRoles.size());
\r 
 141                 assertEquals(appRolesActual.get(0).getAppName(), appRoles.get(0).getAppName());
\r 
 142                 assertEquals(appRolesActual.get(0).getRoleNames(), appRoles.get(0).getRoleNames());
\r 
 147         public void getAppListTestIfAppDoesnotExistsInBusinessCardApplicationRolesList() throws IOException {
\r 
 149                 userAppRoleList = mockBusinessCardApplicationRole();
\r 
 150                 BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole();
\r 
 151                 businessCardApplicationRole.setAppName("CCD");
\r 
 152                 businessCardApplicationRole.setRoleName("ADMIN");
\r 
 153                 userAppRoleList.add(businessCardApplicationRole);
\r 
 154                 appRolesActual = mockBusinessCardApplicationRolesList();
\r 
 155                 BusinessCardApplicationRolesList businessCardApplicationRolesList = new BusinessCardApplicationRolesList();
\r 
 156                 businessCardApplicationRolesList.setAppName("CCD");
\r 
 157                 List<String> roleNames1 = new ArrayList<String>();
\r 
 158                 roleNames1.add("ADMIN");
\r 
 159                 businessCardApplicationRolesList.setRoleNames(roleNames1);
\r 
 160                 appRolesActual.add(businessCardApplicationRolesList);
\r 
 161                 Mockito.when(functionalMenuService.getUserAppRolesList(userid)).thenReturn(userAppRoleList);
\r 
 162                 appRoles = functionalMenuController.getAppList(mockedRequest, userid);
\r 
 163                 assertEquals(appRolesActual.size(), appRoles.size());
\r 
 164                 assertEquals(appRolesActual.get(0).getAppName(), appRoles.get(0).getAppName());
\r 
 165                 assertEquals(appRolesActual.get(0).getRoleNames(), appRoles.get(0).getRoleNames());
\r 
 166                 assertEquals(appRolesActual.get(1).getAppName(), appRoles.get(1).getAppName());
\r 
 167                 assertEquals(appRolesActual.get(1).getRoleNames(), appRoles.get(1).getRoleNames());
\r 
 172         public void regenerateAncestorTableTest() {
\r 
 173                 EPUser user = mockUser.mockEPUser();
\r 
 175                 HttpSession session = mockedRequest.getSession();
\r 
 176                 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r 
 177                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
\r 
 178                 FieldsValidator acutualFieldValidator = null;
\r 
 179                 FieldsValidator expectedFieldValidator = new FieldsValidator();
\r 
 180                 List<FieldName> fields = new ArrayList<>();
\r 
 181                 expectedFieldValidator.setHttpStatusCode((long) 200);
\r 
 182                 expectedFieldValidator.setFields(fields);
\r 
 183                 expectedFieldValidator.setErrorCode(null);
\r 
 184                 Mockito.when(!adminRolesService.isSuperAdmin(user)).thenReturn(true);
\r 
 185                 Mockito.when(functionalMenuService.regenerateAncestorTable()).thenReturn(expectedFieldValidator);
\r 
 186                 acutualFieldValidator = functionalMenuController.regenerateAncestorTable(mockedRequest, mockedResponse);
\r 
 187                 assertTrue(acutualFieldValidator.equals(expectedFieldValidator));
\r