Fixed health check issue
[portal.git] / ecomp-portal-BE-common / src / test / java / org / onap / portalapp / portal / controller / AppCatalogControllerTest.java
1 /*-
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ===================================================================
7  *
8  * Unless otherwise specified, all software contained herein is licensed
9  * under the Apache License, Version 2.0 (the "License");
10  * you may not use this software except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *             http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  * Unless otherwise specified, all documentation contained herein is licensed
22  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23  * you may not use this documentation except in compliance with the License.
24  * You may obtain a copy of the License at
25  *
26  *             https://creativecommons.org/licenses/by/4.0/
27  *
28  * Unless required by applicable law or agreed to in writing, documentation
29  * distributed under the License is distributed on an "AS IS" BASIS,
30  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31  * See the License for the specific language governing permissions and
32  * limitations under the License.
33  *
34  * ============LICENSE_END============================================
35  *
36  * 
37  */
38 package org.onap.portalapp.portal.controller;
39
40 import static org.junit.Assert.assertEquals;
41 import static org.junit.Assert.assertNull;
42 import static org.junit.Assert.assertTrue;
43
44 import java.io.IOException;
45 import java.util.ArrayList;
46 import java.util.List;
47
48 import javax.servlet.http.HttpServletRequest;
49 import javax.servlet.http.HttpServletResponse;
50 import javax.servlet.http.HttpSession;
51
52 import org.junit.Before;
53 import org.junit.Test;
54 import org.mockito.InjectMocks;
55 import org.mockito.Mock;
56 import org.mockito.Mockito;
57 import org.mockito.MockitoAnnotations;
58 import org.onap.portalapp.portal.controller.AppCatalogController;
59 import org.onap.portalapp.portal.core.MockEPUser;
60 import org.onap.portalapp.portal.domain.EPApp;
61 import org.onap.portalapp.portal.domain.EPUser;
62 import org.onap.portalapp.portal.domain.EpAppType;
63 import org.onap.portalapp.portal.ecomp.model.AppCatalogItem;
64 import org.onap.portalapp.portal.framework.MockitoTestSuite;
65 import org.onap.portalapp.portal.service.AdminRolesService;
66 import org.onap.portalapp.portal.service.AdminRolesServiceImpl;
67 import org.onap.portalapp.portal.service.EPAppCommonServiceImpl;
68 import org.onap.portalapp.portal.service.EPAppService;
69 import org.onap.portalapp.portal.service.PersUserAppService;
70 import org.onap.portalapp.portal.service.PersUserAppServiceImpl;
71 import org.onap.portalapp.portal.transport.AppCatalogPersonalization;
72 import org.onap.portalapp.portal.transport.FieldsValidator;
73 import org.onap.portalapp.portal.transport.FieldsValidator.FieldName;
74 import org.onap.portalapp.util.EPUserUtils;
75 import org.onap.portalsdk.core.util.SystemProperties;
76
77 public class AppCatalogControllerTest extends MockitoTestSuite {
78
79         @Mock
80         AdminRolesService adminRolesService = new AdminRolesServiceImpl();
81
82         @Mock
83         EPAppService appService = new EPAppCommonServiceImpl();
84
85         @InjectMocks
86         AppCatalogController appCatalogController = new AppCatalogController();
87
88         PersUserAppService persUserAppService = Mockito.spy(new PersUserAppServiceImpl());
89
90         @Before
91         public void setup() {
92                 MockitoAnnotations.initMocks(this);
93         }
94
95         MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
96
97         HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
98         HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
99
100         @Mock
101         EPUserUtils ePUserUtils = new EPUserUtils();
102
103         @Mock
104         EPUser epuser;
105
106         NullPointerException nullPointerException = new NullPointerException();
107
108         MockEPUser mockUser = new MockEPUser();
109
110         public AppCatalogItem mockAppCatalogItem() {
111                 AppCatalogItem appCatalogItem = new AppCatalogItem();
112                 appCatalogItem.setId((long) 1);
113                 appCatalogItem.setName("Ecomp Portal");
114                 appCatalogItem.setImageUrl("Test_URL");
115                 appCatalogItem.setDescription("Testing");
116                 appCatalogItem.setNotes("Test");
117                 appCatalogItem.setUrl("test");
118                 appCatalogItem.setAlternateUrl("test");
119                 appCatalogItem.setRestricted(false);
120                 appCatalogItem.setOpen(false);
121                 appCatalogItem.setAccess(true);
122                 appCatalogItem.setSelect(true);
123                 appCatalogItem.setPending(false);
124
125                 return appCatalogItem;
126         }
127
128         @Test
129         public void getAppCatalogTestIfUserNotAdmin() throws IOException {
130                 EPUser user = mockUser.mockEPUser();
131                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
132                 List<AppCatalogItem> actualAppCatalogList = null;
133
134                 List<AppCatalogItem> expectedAppCatalog = new ArrayList<>();
135
136                 AppCatalogItem appCatalogItem = mockAppCatalogItem();
137                 expectedAppCatalog.add(appCatalogItem);
138                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
139                 Mockito.when(appService.getUserAppCatalog(user)).thenReturn(expectedAppCatalog);
140                 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
141
142                 assertTrue(actualAppCatalogList.contains(appCatalogItem));
143
144         }
145
146         @Test
147         public void getAppCatalogTestIfUserIsAdmin() throws IOException {
148                 EPUser user = mockUser.mockEPUser();
149                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
150                 List<AppCatalogItem> actualAppCatalogList = null;
151
152                 List<AppCatalogItem> expectedAppCatalog = new ArrayList<>();
153
154                 AppCatalogItem appCatalogItem = mockAppCatalogItem();
155
156                 expectedAppCatalog.add(appCatalogItem);
157                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
158                 Mockito.when(appService.getAdminAppCatalog(user)).thenReturn(expectedAppCatalog);
159                 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
160
161                 assertTrue(actualAppCatalogList.contains(appCatalogItem));
162
163         }
164
165         @Test
166         public void getAppCatalogTestIfUserisNull() throws IOException {
167                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(null);
168                 List<AppCatalogItem> actualAppCatalogList = new ArrayList<>();
169                 ;
170                 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
171                 assertNull(actualAppCatalogList);
172
173         }
174
175         @Test
176         public void getAppCatalogTestIfUserThrowsExceptionTest() throws IOException {
177                 EPUser user = new EPUser();
178                 user.setFirstName("test");
179                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
180                 List<AppCatalogItem> actualAppCatalogList = new ArrayList<>();
181                 ;
182
183                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
184
185                 Mockito.when(appCatalogController.getAppCatalog(mockedRequest, mockedResponse)).thenThrow(nullPointerException);
186
187                 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
188                 assertNull(actualAppCatalogList);
189
190         }
191
192         @Test
193         public void putAppCatalogSelectionTestWhenAppIsNull() throws IOException {
194
195                 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();
196                 persRequest.setAppId((long) 1);
197                 persRequest.setPending(false);
198                 persRequest.setSelect(false);
199
200                 EPUser user = mockUser.mockEPUser();
201
202                 FieldsValidator expectedFieldValidator = new FieldsValidator();
203
204                 FieldsValidator actualFieldValidator = new FieldsValidator();
205                 List<FieldName> fields = new ArrayList<>();
206                 ;
207
208                 expectedFieldValidator.setHttpStatusCode((long) 200);
209                 expectedFieldValidator.setFields(fields);
210                 expectedFieldValidator.setErrorCode(null);
211
212                 EPApp app = null;
213
214                 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);
215
216                 HttpSession session = mockedRequest.getSession();
217                 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
218
219                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
220                 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);
221                 assertEquals(expectedFieldValidator, actualFieldValidator);
222
223         }
224
225         @Test
226         public void putAppCatalogSelectionTest() throws IOException {
227
228                 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();
229                 persRequest.setAppId((long) 1);
230                 persRequest.setPending(false);
231                 persRequest.setSelect(false);
232
233                 EPUser user = mockUser.mockEPUser();
234
235                 FieldsValidator expectedFieldValidator = new FieldsValidator();
236
237                 FieldsValidator actualFieldValidator = new FieldsValidator();
238                 List<FieldName> fields = new ArrayList<>();
239                 ;
240
241                 expectedFieldValidator.setHttpStatusCode((long) 200);
242                 expectedFieldValidator.setFields(fields);
243                 expectedFieldValidator.setErrorCode(null);
244
245                 EPApp app = new EPApp();
246
247                 app.setName("Test");
248                 app.setImageUrl("test");
249                 app.setAppDescription("test");
250                 app.setAppNotes("test");
251                 app.setLandingPage("test");
252                 app.setId((long) 1);
253                 app.setAppRestEndpoint("test");
254                 app.setAlternateLandingPage("test");
255                 app.setName("test");
256                 app.setMlAppName("test");
257                 app.setMlAppAdminId("test");
258                 app.setAppBasicAuthUsername("test");
259                 app.setAppBasicAuthPassword("test");
260                 app.setOpen(false);
261                 app.setEnabled(false);
262                 app.setUebKey("test");
263                 app.setUebSecret("test");
264                 app.setUebTopicName("test");
265                 app.setAppType(EpAppType.GUI);
266
267                 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);
268
269                 HttpSession session = mockedRequest.getSession();
270                 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
271
272                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
273                 Mockito.doNothing().when(persUserAppService).setPersUserAppValue(user, app, persRequest.getSelect(),
274                                 persRequest.getPending());
275
276                 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);
277
278                 assertEquals(expectedFieldValidator, actualFieldValidator);
279
280         }
281         
282         @Test
283         public void putAppCatalogSelectionTestWithException() throws IOException {
284
285                 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();
286                 persRequest.setAppId((long) 1);
287                 persRequest.setPending(false);
288                 persRequest.setSelect(false);
289
290                 EPUser user = mockUser.mockEPUser();
291
292                 FieldsValidator expectedFieldValidator = new FieldsValidator();
293
294                 FieldsValidator actualFieldValidator = new FieldsValidator();
295                 List<FieldName> fields = new ArrayList<>();
296                 ;
297
298                 expectedFieldValidator.setHttpStatusCode((long) 200);
299                 expectedFieldValidator.setFields(fields);
300                 expectedFieldValidator.setErrorCode(null);
301
302                 EPApp app = new EPApp();
303
304                 app.setName("Test");
305                 app.setImageUrl("test");
306                 app.setAppDescription("test");
307                 app.setAppNotes("test");
308                 app.setLandingPage("test");
309                 app.setId((long) 1);
310                 app.setAppRestEndpoint("test");
311                 app.setAlternateLandingPage("test");
312                 app.setName("test");
313                 app.setMlAppName("test");
314                 app.setMlAppAdminId("test");
315                 app.setAppBasicAuthUsername("test");
316                 app.setAppBasicAuthPassword("test");
317                 app.setOpen(false);
318                 app.setEnabled(false);
319                 app.setUebKey("test");
320                 app.setUebSecret("test");
321                 app.setUebTopicName("test");
322                 app.setAppType(EpAppType.GUI);
323
324                 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);
325
326                 HttpSession session = mockedRequest.getSession();
327                 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
328
329                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
330                 Mockito.doNothing().when(persUserAppService).setPersUserAppValue(user, null, persRequest.getSelect(),
331                                 persRequest.getPending());
332
333                 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);
334
335                 assertEquals(expectedFieldValidator, actualFieldValidator);
336
337         }
338
339 }