/*- * ============LICENSE_START========================================== * ONAP Portal * =================================================================== * Copyright © 2017 AT&T Intellectual Property. All rights reserved. * =================================================================== * * Unless otherwise specified, all software contained herein is licensed * under the Apache License, Version 2.0 (the "License"); * you may not use this software except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Unless otherwise specified, all documentation contained herein is licensed * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); * you may not use this documentation except in compliance with the License. * You may obtain a copy of the License at * * https://creativecommons.org/licenses/by/4.0/ * * Unless required by applicable law or agreed to in writing, documentation * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * ============LICENSE_END============================================ * * */ package org.onap.portalapp.portal.controller; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.stubbing.Answer; import org.onap.portalapp.portal.core.MockEPUser; import org.onap.portalapp.portal.domain.EPUser; import org.onap.portalapp.portal.framework.MockitoTestSuite; import org.onap.portalapp.portal.service.AdminRolesService; import org.onap.portalapp.portal.service.PersUserWidgetService; import org.onap.portalapp.portal.service.WidgetService; import org.onap.portalapp.portal.transport.FieldsValidator; import org.onap.portalapp.portal.transport.FieldsValidator.FieldName; import org.onap.portalapp.portal.transport.OnboardingWidget; import org.onap.portalapp.portal.transport.WidgetCatalogPersonalization; import org.onap.portalapp.util.EPUserUtils; import org.springframework.web.client.RestClientException; public class WidgetsControllerTest extends MockitoTestSuite{ @InjectMocks WidgetsController widgetsController; @Mock private AdminRolesService rolesService; @Mock private WidgetService widgetService ; @Mock private PersUserWidgetService persUserWidgetService; @Mock EPUser epuser; MockEPUser mockUser = new MockEPUser(); @Before public void setup() { MockitoAnnotations.initMocks(this); } MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); @Test public void getOnboardingWidgetsTest() throws RestClientException, Exception{ EPUser user = mockUser.mockEPUser(); String getType="test"; List actualResult = null; String expectedResult = null; Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); List onboardingWidgets = null; //Mockito.when(StringUtils.isEmpty("")).thenReturn(true); Mockito.when(widgetService.getOnboardingWidgets(user, getType.equals("managed"))).thenReturn(onboardingWidgets); actualResult = widgetsController.getOnboardingWidgets(mockedRequest, mockedResponse); assertEquals(expectedResult, actualResult); } @Test public void getOnboardingWidgetsTest1(){ EPUser user = mockUser.mockEPUser(); Mockito.when(mockedRequest.getHeader("X-Widgets-Type")).thenReturn("managed"); //String getType=Matchers.any(String.class); List actualResult = null; String expectedResult = null; Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); List onboardingWidgets = new ArrayList<>(); OnboardingWidget widget = new OnboardingWidget(); onboardingWidgets.add(widget); //Mockito.when(StringUtils.isEmpty("")).thenReturn(true); Mockito.when(widgetService.getOnboardingWidgets(user, true)).thenReturn(onboardingWidgets); actualResult = widgetsController.getOnboardingWidgets(mockedRequest, mockedResponse); // assertEquals(expectedResult, actualResult); } @Test public void getOnboardingWidgetswithUserNullTest(){ EPUser user = null; Mockito.when(mockedRequest.getHeader("X-Widgets-Type")).thenReturn("managed"); //String getType=Matchers.any(String.class); List actualResult = null; String expectedResult = null; Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); List onboardingWidgets = new ArrayList<>(); OnboardingWidget widget = new OnboardingWidget(); onboardingWidgets.add(widget); //Mockito.when(StringUtils.isEmpty("")).thenReturn(true); Mockito.when(widgetService.getOnboardingWidgets(user, true)).thenReturn(onboardingWidgets); actualResult = widgetsController.getOnboardingWidgets(mockedRequest, mockedResponse); } @Test public void putOnboardingWidgetTest() { FieldsValidator actualFieldsValidator = null; EPUser user = mockUser.mockEPUser(); Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); OnboardingWidget onboardingWidget=new OnboardingWidget(); onboardingWidget.id=12L; onboardingWidget.normalize(); //Mockito.doNothing().when(onboardingWidget).normalize(); FieldsValidator expectedFieldValidator = new FieldsValidator(); List fields = new ArrayList<>(); expectedFieldValidator.setHttpStatusCode((long) 200); expectedFieldValidator.setFields(fields); expectedFieldValidator.setErrorCode(null); Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator); actualFieldsValidator = widgetsController.putOnboardingWidget(mockedRequest, 12L, onboardingWidget, mockedResponse); } @Test public void putOnboardingWidgetXSSTest() { FieldsValidator actualFieldsValidator = null; EPUser user = mockUser.mockEPUser(); Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); OnboardingWidget onboardingWidget=new OnboardingWidget(); onboardingWidget.id=12L; onboardingWidget.name = ""; onboardingWidget.normalize(); FieldsValidator expectedFieldValidator = new FieldsValidator(); expectedFieldValidator.setHttpStatusCode((long) HttpServletResponse.SC_NOT_ACCEPTABLE); Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator); actualFieldsValidator = widgetsController.putOnboardingWidget(mockedRequest, 12L, onboardingWidget, mockedResponse); assertEquals(expectedFieldValidator, actualFieldsValidator); } @Test public void putOnboardingWidgetWithUserPermissionTest() { FieldsValidator actualFieldsValidator = null; EPUser user = mockUser.mockEPUser(); Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true); Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true); OnboardingWidget onboardingWidget=new OnboardingWidget(); onboardingWidget.id=12L; onboardingWidget.normalize(); //Mockito.doNothing().when(onboardingWidget).normalize(); FieldsValidator expectedFieldValidator = new FieldsValidator(); List fields = new ArrayList<>(); expectedFieldValidator.setHttpStatusCode((long) 200); expectedFieldValidator.setFields(fields); expectedFieldValidator.setErrorCode(null); Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator); actualFieldsValidator = widgetsController.putOnboardingWidget(mockedRequest, 12L, onboardingWidget, mockedResponse); assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode()); assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode()); assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields()); } @Test public void postOnboardingWidgetTest(){ EPUser user=mockUser.mockEPUser(); Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); FieldsValidator actualFieldsValidator = null; Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true); Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true); OnboardingWidget onboardingWidget=new OnboardingWidget(); onboardingWidget.id=12L; onboardingWidget.normalize(); FieldsValidator expectedFieldValidator = new FieldsValidator(); List fields = new ArrayList<>(); expectedFieldValidator.setHttpStatusCode((long) 200); expectedFieldValidator.setFields(fields); expectedFieldValidator.setErrorCode(null); Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator); actualFieldsValidator = widgetsController.postOnboardingWidget(mockedRequest, onboardingWidget, mockedResponse); assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode()); assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode()); assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields()); } @Test public void postOnboardingWidgetXSSTest(){ EPUser user=mockUser.mockEPUser(); Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); FieldsValidator actualFieldsValidator = null; Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true); Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true); OnboardingWidget onboardingWidget=new OnboardingWidget(); onboardingWidget.id=12L; onboardingWidget.appName=""; onboardingWidget.normalize(); FieldsValidator expectedFieldValidator = new FieldsValidator(); List fields = new ArrayList<>(); expectedFieldValidator.setHttpStatusCode((long) HttpServletResponse.SC_NOT_ACCEPTABLE); expectedFieldValidator.setFields(fields); expectedFieldValidator.setErrorCode(null); Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator); actualFieldsValidator = widgetsController.postOnboardingWidget(mockedRequest, onboardingWidget, mockedResponse); assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode()); assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode()); assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields()); } @Test public void postOnboardingWidgetTestwiThoutUserPermission() { FieldsValidator actualFieldsValidator = null; EPUser user = mockUser.mockEPUser(); Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); OnboardingWidget onboardingWidget=new OnboardingWidget(); onboardingWidget.id=12L; onboardingWidget.normalize(); //Mockito.doNothing().when(onboardingWidget).normalize(); FieldsValidator expectedFieldValidator = new FieldsValidator(); List fields = new ArrayList<>(); expectedFieldValidator.setHttpStatusCode((long) 200); expectedFieldValidator.setFields(fields); expectedFieldValidator.setErrorCode(null); Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator); actualFieldsValidator = widgetsController.postOnboardingWidget(mockedRequest, onboardingWidget, mockedResponse); } @Test public void deleteOnboardingWidgetTest(){ FieldsValidator actualFieldsValidator = null; EPUser user=mockUser.mockEPUser(); Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); FieldsValidator expectedFieldValidator = new FieldsValidator(); List fields = new ArrayList<>(); Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true); Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true); expectedFieldValidator.setHttpStatusCode((long) 200); expectedFieldValidator.setFields(fields); expectedFieldValidator.setErrorCode(null); Mockito.when(widgetService.deleteOnboardingWidget(user, 12L)).thenReturn(expectedFieldValidator); actualFieldsValidator = widgetsController.deleteOnboardingWidget(mockedRequest, 12L, mockedResponse); assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode()); assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode()); assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields()); } @Test public void deleteOnboardingWidgetWithOutUserPermissionsTest(){ FieldsValidator actualFieldsValidator = null; EPUser user=mockUser.mockEPUser(); Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); FieldsValidator expectedFieldValidator = new FieldsValidator(); List fields = new ArrayList<>(); Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(false); Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(false); expectedFieldValidator.setHttpStatusCode((long) 200); expectedFieldValidator.setFields(fields); expectedFieldValidator.setErrorCode(null); Mockito.when(widgetService.deleteOnboardingWidget(user, 12L)).thenReturn(expectedFieldValidator); actualFieldsValidator = widgetsController.deleteOnboardingWidget(mockedRequest, 12L, mockedResponse); } @Test public void putWidgetCatalogSelectionTest1() throws Exception { FieldsValidator actualFieldsValidator = new FieldsValidator(); EPUser user=mockUser.mockEPUser(); Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); FieldsValidator expectedFieldValidator = new FieldsValidator(); List fields = new ArrayList<>(); Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true); Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true); expectedFieldValidator.setHttpStatusCode((long) 200); expectedFieldValidator.setFields(fields); expectedFieldValidator.setErrorCode(null); WidgetCatalogPersonalization widgetCatalogPersonalization=new WidgetCatalogPersonalization(); widgetCatalogPersonalization.widgetId=12L; //Mockito.doThrow(new Exception()).doNothing().when(persUserWidgetService).setPersUserAppValue(user, 12L, true); //Mockito.doNothing().thenReturn(); actualFieldsValidator = widgetsController.putWidgetCatalogSelection(mockedRequest, widgetCatalogPersonalization, mockedResponse); assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode()); assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode()); assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields()); } @Test(expected=ClassCastException.class) public void putWidgetCatalogSelectionTest() throws Exception { FieldsValidator actualFieldsValidator = new FieldsValidator(); EPUser user=null; Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user); FieldsValidator expectedFieldValidator = new FieldsValidator(); List fields = new ArrayList<>(); Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true); Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true); expectedFieldValidator.setHttpStatusCode((long) 200); expectedFieldValidator.setFields(fields); expectedFieldValidator.setErrorCode(null); WidgetCatalogPersonalization widgetCatalogPersonalization=new WidgetCatalogPersonalization(); Mockito.doAnswer((Answer) new Exception()).doNothing().when(persUserWidgetService).setPersUserAppValue(user, 12L, true); //Mockito.doNothing().thenReturn(); actualFieldsValidator = widgetsController.putWidgetCatalogSelection(mockedRequest, widgetCatalogPersonalization, mockedResponse); assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode()); assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode()); assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields()); } }