[PORTAL-7] Rebase
[portal.git] / ecomp-portal-BE-common-test / src / main / java / org / openecomp / portalapp / portal / test / controller / AppCatalogControllerTest.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.assertEquals;\r
23 import static org.junit.Assert.assertNull;\r
24 import static org.junit.Assert.assertTrue;\r
25 \r
26 import java.io.IOException;\r
27 import java.util.ArrayList;\r
28 import java.util.Date;\r
29 import java.util.List;\r
30 \r
31 import javax.servlet.http.HttpServletRequest;\r
32 import javax.servlet.http.HttpServletResponse;\r
33 import javax.servlet.http.HttpSession;\r
34 \r
35 import org.junit.Before;\r
36 import org.junit.Test;\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.openecomp.portalapp.portal.controller.AppCatalogController;\r
42 import org.openecomp.portalapp.portal.domain.EPApp;\r
43 import org.openecomp.portalapp.portal.domain.EPUser;\r
44 import org.openecomp.portalapp.portal.ecomp.model.AppCatalogItem;\r
45 import org.openecomp.portalapp.portal.service.AdminRolesService;\r
46 import org.openecomp.portalapp.portal.service.AdminRolesServiceImpl;\r
47 import org.openecomp.portalapp.portal.service.EPAppCommonServiceImpl;\r
48 import org.openecomp.portalapp.portal.service.EPAppService;\r
49 import org.openecomp.portalapp.portal.service.PersUserAppService;\r
50 import org.openecomp.portalapp.portal.service.PersUserAppServiceImpl;\r
51 import org.openecomp.portalapp.portal.test.core.MockEPUser;\r
52 import org.openecomp.portalapp.portal.test.framework.MockitoTestSuite;\r
53 import org.openecomp.portalapp.portal.transport.AppCatalogPersonalization;\r
54 import org.openecomp.portalapp.portal.transport.FieldsValidator;\r
55 import org.openecomp.portalapp.portal.transport.FieldsValidator.FieldName;\r
56 import org.openecomp.portalapp.util.EPUserUtils;\r
57 import org.openecomp.portalsdk.core.util.SystemProperties;\r
58 \r
59 public class AppCatalogControllerTest extends MockitoTestSuite {\r
60 \r
61         @Mock\r
62         AdminRolesService adminRolesService = new AdminRolesServiceImpl();\r
63 \r
64         @Mock\r
65         EPAppService appService = new EPAppCommonServiceImpl();\r
66 \r
67         @InjectMocks\r
68         AppCatalogController appCatalogController = new AppCatalogController();\r
69 \r
70         PersUserAppService persUserAppService = Mockito.spy(new PersUserAppServiceImpl());\r
71 \r
72         @Before\r
73         public void setup() {\r
74                 MockitoAnnotations.initMocks(this);\r
75         }\r
76 \r
77         MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();\r
78 \r
79         HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();\r
80         HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();\r
81 \r
82         @Mock\r
83         EPUserUtils ePUserUtils = new EPUserUtils();\r
84 \r
85         @Mock\r
86         EPUser epuser;\r
87 \r
88         NullPointerException nullPointerException = new NullPointerException();\r
89 \r
90         MockEPUser mockUser = new MockEPUser();\r
91 \r
92         public AppCatalogItem mockAppCatalogItem() {\r
93                 AppCatalogItem appCatalogItem = new AppCatalogItem();\r
94                 appCatalogItem.setId((long) 1);\r
95                 appCatalogItem.setName("Ecomp Portal");\r
96                 appCatalogItem.setImageUrl("Test_URL");\r
97                 appCatalogItem.setDescription("Testing");\r
98                 appCatalogItem.setNotes("Test");\r
99                 appCatalogItem.setUrl("test");\r
100                 appCatalogItem.setAlternateUrl("test");\r
101                 appCatalogItem.setRestricted(false);\r
102                 appCatalogItem.setOpen(false);\r
103                 appCatalogItem.setAccess(true);\r
104                 appCatalogItem.setSelect(true);\r
105                 appCatalogItem.setPending(false);\r
106 \r
107                 return appCatalogItem;\r
108         }\r
109 \r
110         @Test\r
111         public void getAppCatalogTestIfUserNotAdmin() throws IOException {\r
112                 EPUser user = mockUser.mockEPUser();\r
113                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);\r
114                 List<AppCatalogItem> actualAppCatalogList = null;\r
115 \r
116                 List<AppCatalogItem> expectedAppCatalog = new ArrayList<>();\r
117 \r
118                 AppCatalogItem appCatalogItem = mockAppCatalogItem();\r
119                 expectedAppCatalog.add(appCatalogItem);\r
120                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);\r
121                 Mockito.when(appService.getUserAppCatalog(user)).thenReturn(expectedAppCatalog);\r
122                 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);\r
123 \r
124                 assertTrue(actualAppCatalogList.contains(appCatalogItem));\r
125 \r
126         }\r
127 \r
128         @Test\r
129         public void getAppCatalogTestIfUserIsAdmin() throws IOException {\r
130                 EPUser user = mockUser.mockEPUser();\r
131                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);\r
132                 List<AppCatalogItem> actualAppCatalogList = null;\r
133 \r
134                 List<AppCatalogItem> expectedAppCatalog = new ArrayList<>();\r
135 \r
136                 AppCatalogItem appCatalogItem = mockAppCatalogItem();\r
137 \r
138                 expectedAppCatalog.add(appCatalogItem);\r
139                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);\r
140                 Mockito.when(appService.getAdminAppCatalog(user)).thenReturn(expectedAppCatalog);\r
141                 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);\r
142 \r
143                 assertTrue(actualAppCatalogList.contains(appCatalogItem));\r
144 \r
145         }\r
146 \r
147         @Test\r
148         public void getAppCatalogTestIfUserisNull() throws IOException {\r
149                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(null);\r
150                 List<AppCatalogItem> actualAppCatalogList = new ArrayList<>();\r
151                 ;\r
152                 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);\r
153                 assertNull(actualAppCatalogList);\r
154 \r
155         }\r
156 \r
157         @Test\r
158         public void getAppCatalogTestIfUserThrowsExceptionTest() throws IOException {\r
159                 EPUser user = new EPUser();\r
160                 user.setFirstName("test");\r
161                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);\r
162                 List<AppCatalogItem> actualAppCatalogList = new ArrayList<>();\r
163                 ;\r
164 \r
165                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);\r
166 \r
167                 Mockito.when(appCatalogController.getAppCatalog(mockedRequest, mockedResponse)).thenThrow(nullPointerException);\r
168 \r
169                 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);\r
170                 assertNull(actualAppCatalogList);\r
171 \r
172         }\r
173 \r
174         @Test\r
175         public void putAppCatalogSelectionTestWhenAppIsNull() throws IOException {\r
176 \r
177                 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();\r
178                 persRequest.setAppId((long) 1);\r
179                 persRequest.setPending(false);\r
180                 persRequest.setSelect(false);\r
181 \r
182                 EPUser user = mockUser.mockEPUser();\r
183 \r
184                 FieldsValidator expectedFieldValidator = new FieldsValidator();\r
185 \r
186                 FieldsValidator actualFieldValidator = new FieldsValidator();\r
187                 List<FieldName> fields = new ArrayList<>();\r
188                 ;\r
189 \r
190                 expectedFieldValidator.setHttpStatusCode((long) 200);\r
191                 expectedFieldValidator.setFields(fields);\r
192                 expectedFieldValidator.setErrorCode(null);\r
193 \r
194                 EPApp app = null;\r
195 \r
196                 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);\r
197 \r
198                 HttpSession session = mockedRequest.getSession();\r
199                 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);\r
200 \r
201                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);\r
202                 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);\r
203                 assertEquals(expectedFieldValidator, actualFieldValidator);\r
204 \r
205         }\r
206 \r
207         @Test\r
208         public void putAppCatalogSelectionTest() throws IOException {\r
209 \r
210                 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();\r
211                 persRequest.setAppId((long) 1);\r
212                 persRequest.setPending(false);\r
213                 persRequest.setSelect(false);\r
214 \r
215                 EPUser user = mockUser.mockEPUser();\r
216 \r
217                 FieldsValidator expectedFieldValidator = new FieldsValidator();\r
218 \r
219                 FieldsValidator actualFieldValidator = new FieldsValidator();\r
220                 List<FieldName> fields = new ArrayList<>();\r
221                 ;\r
222 \r
223                 expectedFieldValidator.setHttpStatusCode((long) 200);\r
224                 expectedFieldValidator.setFields(fields);\r
225                 expectedFieldValidator.setErrorCode(null);\r
226 \r
227                 EPApp app = new EPApp();\r
228 \r
229                 app.setName("Test");\r
230                 app.setImageUrl("test");\r
231                 app.setDescription("test");\r
232                 app.setNotes("test");\r
233                 app.setUrl("test");\r
234                 app.setId((long) 1);\r
235                 app.setAppRestEndpoint("test");\r
236                 app.setAlternateUrl("test");\r
237                 app.setName("test");\r
238                 app.setMlAppName("test");\r
239                 app.setMlAppAdminId("test");\r
240                 app.setUsername("test");\r
241                 app.setAppPassword("test");\r
242                 app.setOpen(false);\r
243                 app.setEnabled(false);\r
244                 app.setUebKey("test");\r
245                 app.setUebSecret("test");\r
246                 app.setUebTopicName("test");\r
247                 app.setAppType(1);\r
248 \r
249                 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);\r
250 \r
251                 HttpSession session = mockedRequest.getSession();\r
252                 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);\r
253 \r
254                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);\r
255                 Mockito.doNothing().when(persUserAppService).setPersUserAppValue(user, app, persRequest.getSelect(),\r
256                                 persRequest.getPending());\r
257 \r
258                 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);\r
259 \r
260                 assertEquals(expectedFieldValidator, actualFieldValidator);\r
261 \r
262         }\r
263 \r
264 }\r