2 * ================================================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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 * ================================================================================
20 package org.openecomp.portalapp.portal.test.controller;
22 import static org.junit.Assert.assertEquals;
23 import static org.junit.Assert.assertNull;
24 import static org.junit.Assert.assertTrue;
26 import java.io.IOException;
27 import java.util.ArrayList;
28 import java.util.List;
30 import javax.servlet.http.HttpServletRequest;
31 import javax.servlet.http.HttpServletResponse;
32 import javax.servlet.http.HttpSession;
34 import org.junit.Before;
35 import org.junit.Test;
36 import org.mockito.InjectMocks;
37 import org.mockito.Mock;
38 import org.mockito.Mockito;
39 import org.mockito.MockitoAnnotations;
40 import org.openecomp.portalapp.portal.controller.AppCatalogController;
41 import org.openecomp.portalapp.portal.domain.EPApp;
42 import org.openecomp.portalapp.portal.domain.EPUser;
43 import org.openecomp.portalapp.portal.ecomp.model.AppCatalogItem;
44 import org.openecomp.portalapp.portal.service.AdminRolesService;
45 import org.openecomp.portalapp.portal.service.AdminRolesServiceImpl;
46 import org.openecomp.portalapp.portal.service.EPAppCommonServiceImpl;
47 import org.openecomp.portalapp.portal.service.EPAppService;
48 import org.openecomp.portalapp.portal.service.PersUserAppService;
49 import org.openecomp.portalapp.portal.service.PersUserAppServiceImpl;
50 import org.openecomp.portalapp.portal.test.core.MockEPUser;
51 import org.openecomp.portalapp.portal.transport.AppCatalogPersonalization;
52 import org.openecomp.portalapp.portal.transport.FieldsValidator;
53 import org.openecomp.portalapp.portal.transport.FieldsValidator.FieldName;
54 import org.openecomp.portalapp.test.framework.MockitoTestSuite;
55 import org.openecomp.portalapp.util.EPUserUtils;
56 import org.openecomp.portalsdk.core.util.SystemProperties;
58 public class AppCatalogControllerTest extends MockitoTestSuite {
61 AdminRolesService adminRolesService = new AdminRolesServiceImpl();
64 EPAppService appService = new EPAppCommonServiceImpl();
67 AppCatalogController appCatalogController = new AppCatalogController();
69 PersUserAppService persUserAppService = Mockito.spy(new PersUserAppServiceImpl());
73 MockitoAnnotations.initMocks(this);
76 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
78 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
79 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
82 EPUserUtils ePUserUtils = new EPUserUtils();
87 NullPointerException nullPointerException = new NullPointerException();
89 MockEPUser mockUser = new MockEPUser();
91 public AppCatalogItem mockAppCatalogItem() {
92 AppCatalogItem appCatalogItem = new AppCatalogItem();
93 appCatalogItem.setId((long) 1);
94 appCatalogItem.setName("Ecomp Portal");
95 appCatalogItem.setImageUrl("Test_URL");
96 appCatalogItem.setDescription("Testing");
97 appCatalogItem.setNotes("Test");
98 appCatalogItem.setUrl("test");
99 appCatalogItem.setAlternateUrl("test");
100 appCatalogItem.setRestricted(false);
101 appCatalogItem.setOpen(false);
102 appCatalogItem.setAccess(true);
103 appCatalogItem.setSelect(true);
104 appCatalogItem.setPending(false);
106 return appCatalogItem;
110 public void getAppCatalogTestIfUserNotAdmin() throws IOException {
111 EPUser user = mockUser.mockEPUser();
112 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
113 List<AppCatalogItem> actualAppCatalogList = null;
115 List<AppCatalogItem> expectedAppCatalog = new ArrayList<>();
117 AppCatalogItem appCatalogItem = mockAppCatalogItem();
118 expectedAppCatalog.add(appCatalogItem);
119 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
120 Mockito.when(appService.getUserAppCatalog(user)).thenReturn(expectedAppCatalog);
121 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
123 assertTrue(actualAppCatalogList.contains(appCatalogItem));
128 public void getAppCatalogTestIfUserIsAdmin() throws IOException {
129 EPUser user = mockUser.mockEPUser();
130 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
131 List<AppCatalogItem> actualAppCatalogList = null;
133 List<AppCatalogItem> expectedAppCatalog = new ArrayList<>();
135 AppCatalogItem appCatalogItem = mockAppCatalogItem();
137 expectedAppCatalog.add(appCatalogItem);
138 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
139 Mockito.when(appService.getAdminAppCatalog(user)).thenReturn(expectedAppCatalog);
140 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
142 assertTrue(actualAppCatalogList.contains(appCatalogItem));
147 public void getAppCatalogTestIfUserisNull() throws IOException {
148 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(null);
149 List<AppCatalogItem> actualAppCatalogList = new ArrayList<>();
151 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
152 assertNull(actualAppCatalogList);
157 public void getAppCatalogTestIfUserThrowsExceptionTest() throws IOException {
158 EPUser user = new EPUser();
159 user.setFirstName("test");
160 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
161 List<AppCatalogItem> actualAppCatalogList = new ArrayList<>();
164 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
166 Mockito.when(appCatalogController.getAppCatalog(mockedRequest, mockedResponse)).thenThrow(nullPointerException);
168 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
169 assertNull(actualAppCatalogList);
174 public void putAppCatalogSelectionTestWhenAppIsNull() throws IOException {
176 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();
177 persRequest.setAppId((long) 1);
178 persRequest.setPending(false);
179 persRequest.setSelect(false);
181 EPUser user = mockUser.mockEPUser();
183 FieldsValidator expectedFieldValidator = new FieldsValidator();
185 FieldsValidator actualFieldValidator = new FieldsValidator();
186 List<FieldName> fields = new ArrayList<>();
189 expectedFieldValidator.setHttpStatusCode((long) 200);
190 expectedFieldValidator.setFields(fields);
191 expectedFieldValidator.setErrorCode(null);
195 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);
197 HttpSession session = mockedRequest.getSession();
198 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
200 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
201 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);
202 assertEquals(expectedFieldValidator, actualFieldValidator);
207 public void putAppCatalogSelectionTest() throws IOException {
209 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();
210 persRequest.setAppId((long) 1);
211 persRequest.setPending(false);
212 persRequest.setSelect(false);
214 EPUser user = mockUser.mockEPUser();
216 FieldsValidator expectedFieldValidator = new FieldsValidator();
218 FieldsValidator actualFieldValidator = new FieldsValidator();
219 List<FieldName> fields = new ArrayList<>();
222 expectedFieldValidator.setHttpStatusCode((long) 200);
223 expectedFieldValidator.setFields(fields);
224 expectedFieldValidator.setErrorCode(null);
226 EPApp app = new EPApp();
229 app.setImageUrl("test");
230 app.setDescription("test");
231 app.setNotes("test");
234 app.setAppRestEndpoint("test");
235 app.setAlternateUrl("test");
237 app.setMlAppName("test");
238 app.setMlAppAdminId("test");
239 app.setUsername("test");
240 app.setAppPassword("test");
242 app.setEnabled(false);
243 app.setUebKey("test");
244 app.setUebSecret("test");
245 app.setUebTopicName("test");
248 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);
250 HttpSession session = mockedRequest.getSession();
251 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
253 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
254 Mockito.doNothing().when(persUserAppService).setPersUserAppValue(user, app, persRequest.getSelect(),
255 persRequest.getPending());
257 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);
259 assertEquals(expectedFieldValidator, actualFieldValidator);