2 * ================================================================================
\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
11 * http://www.apache.org/licenses/LICENSE-2.0
\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
20 package org.openecomp.portalapp.portal.test.controller;
\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
26 import java.io.IOException;
\r
27 import java.util.ArrayList;
\r
28 import java.util.Date;
\r
29 import java.util.List;
\r
31 import javax.servlet.http.HttpServletRequest;
\r
32 import javax.servlet.http.HttpServletResponse;
\r
33 import javax.servlet.http.HttpSession;
\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
59 public class AppCatalogControllerTest extends MockitoTestSuite {
\r
62 AdminRolesService adminRolesService = new AdminRolesServiceImpl();
\r
65 EPAppService appService = new EPAppCommonServiceImpl();
\r
68 AppCatalogController appCatalogController = new AppCatalogController();
\r
70 PersUserAppService persUserAppService = Mockito.spy(new PersUserAppServiceImpl());
\r
73 public void setup() {
\r
74 MockitoAnnotations.initMocks(this);
\r
77 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
\r
79 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
\r
80 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
\r
83 EPUserUtils ePUserUtils = new EPUserUtils();
\r
88 NullPointerException nullPointerException = new NullPointerException();
\r
90 MockEPUser mockUser = new MockEPUser();
\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
107 return appCatalogItem;
\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
116 List<AppCatalogItem> expectedAppCatalog = new ArrayList<>();
\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
124 assertTrue(actualAppCatalogList.contains(appCatalogItem));
\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
134 List<AppCatalogItem> expectedAppCatalog = new ArrayList<>();
\r
136 AppCatalogItem appCatalogItem = mockAppCatalogItem();
\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
143 assertTrue(actualAppCatalogList.contains(appCatalogItem));
\r
148 public void getAppCatalogTestIfUserisNull() throws IOException {
\r
149 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(null);
\r
150 List<AppCatalogItem> actualAppCatalogList = new ArrayList<>();
\r
152 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
\r
153 assertNull(actualAppCatalogList);
\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
165 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
\r
167 Mockito.when(appCatalogController.getAppCatalog(mockedRequest, mockedResponse)).thenThrow(nullPointerException);
\r
169 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
\r
170 assertNull(actualAppCatalogList);
\r
175 public void putAppCatalogSelectionTestWhenAppIsNull() throws IOException {
\r
177 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();
\r
178 persRequest.setAppId((long) 1);
\r
179 persRequest.setPending(false);
\r
180 persRequest.setSelect(false);
\r
182 EPUser user = mockUser.mockEPUser();
\r
184 FieldsValidator expectedFieldValidator = new FieldsValidator();
\r
186 FieldsValidator actualFieldValidator = new FieldsValidator();
\r
187 List<FieldName> fields = new ArrayList<>();
\r
190 expectedFieldValidator.setHttpStatusCode((long) 200);
\r
191 expectedFieldValidator.setFields(fields);
\r
192 expectedFieldValidator.setErrorCode(null);
\r
196 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);
\r
198 HttpSession session = mockedRequest.getSession();
\r
199 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r
201 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
\r
202 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);
\r
203 assertEquals(expectedFieldValidator, actualFieldValidator);
\r
208 public void putAppCatalogSelectionTest() throws IOException {
\r
210 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();
\r
211 persRequest.setAppId((long) 1);
\r
212 persRequest.setPending(false);
\r
213 persRequest.setSelect(false);
\r
215 EPUser user = mockUser.mockEPUser();
\r
217 FieldsValidator expectedFieldValidator = new FieldsValidator();
\r
219 FieldsValidator actualFieldValidator = new FieldsValidator();
\r
220 List<FieldName> fields = new ArrayList<>();
\r
223 expectedFieldValidator.setHttpStatusCode((long) 200);
\r
224 expectedFieldValidator.setFields(fields);
\r
225 expectedFieldValidator.setErrorCode(null);
\r
227 EPApp app = new EPApp();
\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
249 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);
\r
251 HttpSession session = mockedRequest.getSession();
\r
252 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\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
258 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);
\r
260 assertEquals(expectedFieldValidator, actualFieldValidator);
\r