[PORTAL-16 PORTAL-18] Widget ms; staging
[portal.git] / ecomp-portal-BE-common-test / src / main / java / org / openecomp / portalapp / portal / test / controller / FunctionalMenuControllerTest.java
1 /*-
2  * ================================================================================
3  * ECOMP Portal
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
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  * ================================================================================
19  */
20 package org.openecomp.portalapp.portal.test.controller;
21
22 import static org.junit.Assert.assertEquals;
23 import static org.junit.Assert.assertTrue;
24
25 import java.io.IOException;
26 import java.util.ArrayList;
27 import java.util.List;
28
29 import javax.servlet.http.HttpServletRequest;
30 import javax.servlet.http.HttpServletResponse;
31 import javax.servlet.http.HttpSession;
32
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;
56
57 @RunWith(MockitoJUnitRunner.class)
58 public class FunctionalMenuControllerTest extends MockitoTestSuite {
59
60         String userid = "ab1234";
61
62         @Mock
63         FunctionalMenuService functionalMenuService = new FunctionalMenuServiceImpl();
64
65         @InjectMocks
66         FunctionalMenuController functionalMenuController = new FunctionalMenuController();
67
68         @Mock
69         private DataAccessService dataAccessService;
70
71         @Mock
72         AdminRolesService adminRolesService = new AdminRolesServiceImpl();
73
74         @Before
75         public void setup() {
76                 MockitoAnnotations.initMocks(this);
77         }
78
79         MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
80
81         HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
82         HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
83
84         @InjectMocks
85         EPUserUtils ePUserUtils = new EPUserUtils();
86
87         @Mock
88         EPUser epuser;
89
90         MockEPUser mockUser = new MockEPUser();
91
92         List<BusinessCardApplicationRolesList> appRoles = new ArrayList<BusinessCardApplicationRolesList>();
93         List<BusinessCardApplicationRolesList> appRolesActual = new ArrayList<BusinessCardApplicationRolesList>();
94
95         List<BusinessCardApplicationRole> userAppRoleList = new ArrayList<BusinessCardApplicationRole>();
96
97         public List<BusinessCardApplicationRole> mockBusinessCardApplicationRole() {
98                 List<BusinessCardApplicationRole> userAppRoleList = new ArrayList<BusinessCardApplicationRole>();
99
100                 BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole();
101                 businessCardApplicationRole.setRoleName("ADMIN");
102                 businessCardApplicationRole.setAppName("ASDC");
103
104                 BusinessCardApplicationRole businessCardApplicationRole1 = new BusinessCardApplicationRole();
105                 businessCardApplicationRole1.setAppName("ASDC");
106                 businessCardApplicationRole1.setRoleName("Tester");
107
108                 userAppRoleList.add(businessCardApplicationRole);
109                 userAppRoleList.add(businessCardApplicationRole1);
110                 return userAppRoleList;
111         }
112
113         public List<BusinessCardApplicationRolesList> mockBusinessCardApplicationRolesList() {
114                 List<BusinessCardApplicationRolesList> appRolesActual = new ArrayList<BusinessCardApplicationRolesList>();
115
116                 BusinessCardApplicationRolesList businessCardApplicationRolesList = new BusinessCardApplicationRolesList();
117                 businessCardApplicationRolesList.setAppName("ASDC");
118
119                 List<String> roleNames = new ArrayList<String>();
120                 roleNames.add("ADMIN");
121                 roleNames.add("Tester");
122                 businessCardApplicationRolesList.setRoleNames(roleNames);
123
124                 appRolesActual.add(businessCardApplicationRolesList);
125                 return appRolesActual;
126         }
127
128         @Test
129         public void getAppListTestIfAppAlredyExistsBusinessCardApplicationRolesList() throws IOException {
130
131                 userAppRoleList = mockBusinessCardApplicationRole();
132                 appRolesActual = mockBusinessCardApplicationRolesList();
133
134                 Mockito.when(functionalMenuService.getUserAppRolesList(userid)).thenReturn(userAppRoleList);
135
136                 appRoles = functionalMenuController.getAppList(mockedRequest, userid);
137
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());
141
142         }
143
144         @Test
145         public void getAppListTestIfAppDoesnotExistsInBusinessCardApplicationRolesList() throws IOException {
146
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());
166
167         }
168
169         @Test
170         public void regenerateAncestorTableTest() {
171                 EPUser user = mockUser.mockEPUser();
172
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));
186         }
187
188 }