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