From b04077a2f16ed497a8b4720f388eff1096afe62e Mon Sep 17 00:00:00 2001 From: Hari Om Verma Date: Wed, 7 Mar 2018 13:36:33 +0530 Subject: [PATCH] Unit Test Case for EPLeftMenuServiceImpl.java Added JUnit test cases for EPLeftMenuServiceImpl.java Change-Id: Ieea37f1723566f8135b9d7a17d227e66b45aa110 Issue-ID: PORTAL-208 Signed-off-by: Hari Om Verma --- .../service/BasicAuthAccountServiceImplTest.java | 178 +++++++++++++++++++++ .../portal/service/EPLeftMenuServiceImplTest.java | 150 ++++++++--------- 2 files changed, 249 insertions(+), 79 deletions(-) create mode 100644 ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/BasicAuthAccountServiceImplTest.java diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/BasicAuthAccountServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/BasicAuthAccountServiceImplTest.java new file mode 100644 index 00000000..54347495 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/BasicAuthAccountServiceImplTest.java @@ -0,0 +1,178 @@ +/* +* ============LICENSE_START======================================================= +* ONAP PORTAL +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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. +* ============LICENSE_END========================================================= +*/ +package org.onap.portalapp.portal.service; + + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.BasicAuthCredentials; +import org.onap.portalapp.portal.domain.EPEndpoint; +import org.onap.portalapp.portal.domain.EPEndpointAccount; +import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.service.DataAccessServiceImpl; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ CipherUtil.class , SystemProperties.class}) +public class BasicAuthAccountServiceImplTest { + @Mock + DataAccessService dataAccessService = new DataAccessServiceImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @InjectMocks + BasicAuthAccountServiceImpl basicAuthAccountServiceImpl = new BasicAuthAccountServiceImpl(); + + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + NullPointerException nullPointerException = new NullPointerException(); + MockEPUser mockUser = new MockEPUser(); + + @Test + public void saveBasicAuthAccountTest() throws Exception { + BasicAuthCredentials basicAuthCredentials = new BasicAuthCredentials(); + basicAuthCredentials.setPassword(null); + Mockito.doNothing().when(dataAccessService).saveDomainObject(basicAuthCredentials, null); + basicAuthAccountServiceImpl.saveBasicAuthAccount(basicAuthCredentials); + + } + + @Test + public void saveBasicAuthAccountTest_password() throws Exception{ + PowerMockito.mockStatic(CipherUtil.class); + PowerMockito.mockStatic(SystemProperties.class); + BasicAuthCredentials credentials = new BasicAuthCredentials(); + credentials.setPassword("password"); + String result = null; + Mockito.when(CipherUtil.encryptPKC("password", SystemProperties.getProperty(SystemProperties.Decryption_Key))).thenReturn(result); + basicAuthAccountServiceImpl.saveBasicAuthAccount(credentials); + } + + @Test + public void saveEndpointsTest() throws Exception { + List restrictionsList = new ArrayList(); + Criterion NameCrit = Restrictions.eq("name", "test"); + restrictionsList.add(NameCrit); + List tempList = new ArrayList<>(); + EPEndpoint endpoint = new EPEndpoint(); + endpoint.setId(1l); + endpoint.setName("name"); + tempList.add(endpoint); + Mockito.when((List) dataAccessService.getList(EPEndpoint.class, null, restrictionsList, null)) + .thenReturn(tempList); + EPEndpoint epEndpoint= new EPEndpoint(); + Mockito.doNothing().when(dataAccessService).saveDomainObject(epEndpoint, null); + basicAuthAccountServiceImpl.saveEndpoints(epEndpoint); + } + + @Test(expected= NullPointerException.class) + public void saveEndpointAccountTest() throws Exception { + EPEndpointAccount record = new EPEndpointAccount(); + record.setAccount_id(1l); + record.setEp_id(2l); + Mockito.doNothing().when(dataAccessService).saveDomainObject(record, null); + basicAuthAccountServiceImpl.saveEndpointAccount(1l, 2l); + } + + @Test + public void updateBasicAuthAccountTest() throws Exception { + BasicAuthCredentials basicAuthCredentials = new BasicAuthCredentials(); + Mockito.doNothing().when(dataAccessService).saveDomainObject(basicAuthCredentials, null); + List endpoints = new ArrayList<>(); + EPEndpoint epEndpoint = new EPEndpoint(); + epEndpoint.setId(1l); + epEndpoint.setName("name"); + endpoints.add(epEndpoint); + basicAuthCredentials.setEndpoints(endpoints); + List list = null; + Map params = new HashMap<>(); + params.put("account_id", 1l); + Mockito.when(dataAccessService.executeNamedQuery("getEPEndpointAccountByAccountId", null, null)).thenReturn(list); + EPEndpoint temp_ep = new EPEndpoint(); + temp_ep.setId(1l); + boolean flag = false; + Map params1 = new HashMap(); + params1.put("accountId", Long.toString(1l)); + params1.put("epId", Long.toString(1l)); + Mockito.when(dataAccessService.executeNamedQuery("deleteAccountEndpointRecord", params1, null)).thenReturn(null); + basicAuthAccountServiceImpl.updateBasicAuthAccount(1l, basicAuthCredentials); + } + + + @Test + public void getAccountDataTest() throws Exception { + List list = new ArrayList<>(); + BasicAuthCredentials basicAuthCredentials = new BasicAuthCredentials(); + Mockito.when((List) dataAccessService.getList(BasicAuthCredentials.class, null)) + .thenReturn(list); + basicAuthAccountServiceImpl.getAccountData(); + } + + @Test + public void getAccountDataTest_password() throws Exception { + PowerMockito.mockStatic(CipherUtil.class); + PowerMockito.mockStatic(SystemProperties.class); + List list = new ArrayList<>(); + BasicAuthCredentials basicAuthCredentials = new BasicAuthCredentials(); + basicAuthCredentials.setPassword("password"); + list.add(basicAuthCredentials); + Mockito.when((List) dataAccessService.getList(BasicAuthCredentials.class, null)) + .thenReturn(list); + String result = null; + Mockito.when(CipherUtil.decryptPKC("password", SystemProperties.getProperty(SystemProperties.Decryption_Key))).thenReturn(result); + + } + + @Test + public void deleteEndpointAccoutTest() throws Exception { + Map params = new HashMap(); + params.put("accountId", Long.toString(1l)); + Mockito.when(dataAccessService.executeNamedQuery("deleteAccountEndpoint", params, null)).thenReturn(null); + Mockito.when(dataAccessService.executeNamedQuery("deleteBasicAuthAccount", params, null)).thenReturn(null); + basicAuthAccountServiceImpl.deleteEndpointAccout(1l); + + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImplTest.java index 3cc6762f..9a2568d8 100644 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImplTest.java +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImplTest.java @@ -1,60 +1,40 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright (C) 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ +/* +* ============LICENSE_START======================================================= +* ONAP PORTAL +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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. +* ============LICENSE_END========================================================= +*/ package org.onap.portalapp.portal.service; -import static org.junit.Assert.assertNotEquals; - import java.util.ArrayList; -import java.util.HashMap; +import java.util.Collection; +import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.TreeSet; +import org.json.JSONArray; import org.json.JSONObject; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; -import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.onap.portalapp.portal.core.MockEPUser; import org.onap.portalapp.portal.domain.CentralizedApp; import org.onap.portalapp.portal.domain.EPUser; import org.onap.portalsdk.core.domain.MenuData; @@ -65,10 +45,9 @@ public class EPLeftMenuServiceImplTest { @Mock DataAccessService dataAccessService = new DataAccessServiceImpl(); - @Mock - ExternalAccessRolesServiceImpl externalAccessRolesServiceImpl = new ExternalAccessRolesServiceImpl(); - + ExternalAccessRolesService externalAccessRolesService; + @Before public void setup() { MockitoAnnotations.initMocks(this); @@ -77,41 +56,54 @@ public class EPLeftMenuServiceImplTest { @InjectMocks EPLeftMenuServiceImpl epLeftMenuServiceImpl = new EPLeftMenuServiceImpl(); - - MockEPUser mockUser = new MockEPUser(); - @Test public void getLeftMenuItemsTest() { - EPUser user = mockUser.mockEPUser(); - Set fullMenuSet = new TreeSet<>(); - MenuData menuData = new MenuData(); - menuData.setAction("test"); - menuData.setFunctionCd("test_1"); - menuData.setActive(true); - menuData.setExternalUrl("test"); - menuData.setId(1l); - menuData.setMenuSetCode("test"); - menuData.setSortOrder((short) 1); - menuData.setSeparator(true); - fullMenuSet.add(menuData); - Set roleFunctionSet = new TreeSet<>(); - roleFunctionSet.add("test"); - roleFunctionSet.add("test2"); - Map params = new HashMap<>(); - params.put("userId", user.getOrgUserId()); - List applicationsList = new ArrayList<>(); - List applicationsList2 = new ArrayList<>(); - CentralizedApp centralizedApp = new CentralizedApp(); - centralizedApp.setAppId(1); - centralizedApp.setAppName("test"); - applicationsList.add(centralizedApp); - applicationsList2.add(centralizedApp); - Mockito.when(dataAccessService.executeNamedQuery(Matchers.anyString(), Matchers.anyMap(), Matchers.anyMap())).thenReturn(applicationsList); - Mockito.when(externalAccessRolesServiceImpl.getCentralizedAppsOfUser(Matchers.anyString())).thenReturn(applicationsList2); - String actual = epLeftMenuServiceImpl.getLeftMenuItems(user, fullMenuSet, roleFunctionSet); - JSONObject notExpected = new JSONObject(); - assertNotEquals(notExpected.toString(), actual); - } + Map defaultNavMap = new LinkedHashMap(); + Set fullMenuSet = new HashSet<>(); + Set roleFunctionSet = new HashSet<>(); + defaultNavMap.clear(); + JSONObject navItemsDetails1 = new JSONObject(); + navItemsDetails1.put("name", "test"); + navItemsDetails1.put("state", "demo"); + navItemsDetails1.put("imageSrc", "img"); + defaultNavMap.put("root.applicationsHome", navItemsDetails1); + JSONObject navItemsDetails2 = new JSONObject(); + navItemsDetails2.put("name", "test1"); + navItemsDetails2.put("state", "demo1"); + navItemsDetails2.put("imageSrc", "img1"); + defaultNavMap.put("root.appCatalog", navItemsDetails2); + JSONObject navItemsDetails3 = new JSONObject(); + navItemsDetails3.put("name", "test2"); + navItemsDetails3.put("state", "demo2"); + navItemsDetails3.put("imageSrc", "img2"); + defaultNavMap.put("root.widgetCatalog", navItemsDetails3); + + List applicationsList = new ArrayList<>(); + EPUser epUser = new EPUser(); + epUser.setOrgUserId("userId"); + Mockito.when((List)externalAccessRolesService.getCentralizedAppsOfUser("userId")).thenReturn(applicationsList); + + MenuData data = new MenuData(); + data.setLabel("labelTest"); + data.setImageSrc("imgTest"); + data.setAction("actionTest"); + JSONObject navItemsDetails = new JSONObject(); + navItemsDetails.put("name", "labelTest"); + navItemsDetails.put("state", "actionTest"); + navItemsDetails.put("imageSrc", "imgTest"); + defaultNavMap.put("actionTest", navItemsDetails); + + JSONObject sidebarModel = new JSONObject(); + JSONArray navItems = new JSONArray(); + Collection jsonObjs = defaultNavMap.values(); + navItems.put(navItemsDetails3); + sidebarModel.put("label", "ECOMP portal"); + sidebarModel.put("navItems", navItems); + + epLeftMenuServiceImpl.getLeftMenuItems(epUser, fullMenuSet, roleFunctionSet); + + + } } -- 2.16.6