Introduce JUNIT Plumbing 57/28057/2
authorHima Elisetty <hbindu@research.att.com>
Fri, 12 Jan 2018 15:36:42 +0000 (10:36 -0500)
committerHima Elisetty <hbindu@research.att.com>
Wed, 17 Jan 2018 17:08:18 +0000 (12:08 -0500)
Issue-ID: PORTAL-161, PORTAL-160, PORTAL-159

Includes Change in encryption and decryption algorithm

Change-Id: I5f379d6d9ac25536744152ac1d61223a52f1ce7f
Signed-off-by: Hima Elisetty <hbindu@research.att.com>
34 files changed:
ecomp-sdk/epsdk-analytics/pom.xml
ecomp-sdk/epsdk-app-common/README.md
ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkDMLMySql_2_1_Common.sql
ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Rollback_2_1_to_1710_Common.sql [new file with mode: 0644]
ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Upgrade_1710_to_2_1_Common.sql [new file with mode: 0644]
ecomp-sdk/epsdk-app-common/pom.xml
ecomp-sdk/epsdk-app-common/src/main/java/org/onap/portalapp/controller/core/FavoritesController.java
ecomp-sdk/epsdk-app-common/src/main/java/org/onap/portalapp/controller/core/FuncMenuController.java
ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/AngularAdminControllerTest.java [moved from ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/service/ProfileServiceTest.java with 55% similarity]
ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/CollaborationControllerTest.java [deleted file]
ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/NetMapTest.java [deleted file]
ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/BootstrapSampleControllerTest.java [moved from ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/SanityTest.java with 73% similarity]
ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/RoleControllerTest.java [new file with mode: 0644]
ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/RoleFunctionListControllerTest.java [new file with mode: 0644]
ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/RoleListControllerTest.java [new file with mode: 0644]
ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/SingleSignOnControllerTest.java [new file with mode: 0644]
ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/framework/MockitoTestSuite.java [moved from ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/workflow/services/WorkflowScheduleServiceTest.java with 57% similarity]
ecomp-sdk/epsdk-app-os/README.md
ecomp-sdk/epsdk-app-os/db-scripts/EcompSdkDMLMySql_2_1_OS.sql
ecomp-sdk/epsdk-app-os/pom.xml
ecomp-sdk/epsdk-app-os/src/main/java/org/onap/portalapp/login/LoginStrategyImpl.java
ecomp-sdk/epsdk-app-os/src/main/webapp/WEB-INF/fusion/jsp/ds2/left-menu.jsp
ecomp-sdk/epsdk-app-overlay/src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_header.jsp
ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/directives/header.js
ecomp-sdk/epsdk-core/pom.xml
ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/conf/AppConfig.java
ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/interceptor/ResourceInterceptor.java
ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/restful/client/PortalRestClientBase.java
ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/RestApiRequestBuilder.java
ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/UrlAccessImpl.java
ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/WebServiceCallServiceImpl.java
ecomp-sdk/epsdk-fw/pom.xml
ecomp-sdk/epsdk-workflow/pom.xml
ecomp-sdk/pom.xml

index 9d43336..57dbdc0 100644 (file)
        <!-- properties are inherited from parent -->
 
        <!-- repositories are inherited from parent -->
-       
+       <build>
+       <plugins>
+               <plugin>
+                       <groupId>org.jacoco</groupId>
+                       <artifactId>jacoco-maven-plugin</artifactId>
+                       <!-- version managed by oparent ${jacocoVersion}</version> -->
+                       <executions>
+                               <execution>
+                                       <id>portal-offline-instrument</id>
+                                       <phase>none</phase>
+                                       <goals>
+                                               <goal>instrument</goal>
+                                       </goals>
+                               </execution>
+                               <execution>
+                                       <id>portal-restore-instrumented-classes</id>
+                                       <phase>none</phase>
+                                       <goals>
+                                               <goal>restore-instrumented-classes</goal>
+                                       </goals>
+                               </execution>
+                       </executions>
+               </plugin>
+       </plugins>
+</build>
        <dependencies>
        
                <!-- sdk-core -->
                                </exclusion>
                        </exclusions>
                </dependency>
+               <!-- Jacoco for offline instrumentation -->
+               <dependency>
+                       <groupId>org.jacoco</groupId>
+                       <artifactId>org.jacoco.agent</artifactId>
+                       <version>${jacoco.version}</version>
+                       <classifier>runtime</classifier>
+               </dependency>
        </dependencies>
 
 </project>
index e72d942..2ba60d3 100644 (file)
@@ -24,6 +24,11 @@ AngularJS version 1.5.0.
 
 ### ONAP Distributions
 
+Version 2.1.0
+- PORTAL 161 Add the JUNIT plumbing for PortalSDK
+- PORTAL 160 Prevent unauthorized access to SamplePages, Report Pages, Role
+- PORTAL 159 Change the encryption algorithm to PKCS5PADDING
+
 Version 1.4.0
 - PORTAL-19 Rename Java package base to org.onap
 - PORTAL-42 Use OParent as parent POM
index 18de88f..7617e4e 100644 (file)
@@ -136,6 +136,36 @@ INSERT INTO fn_restricted_url (restricted_url, function_cd) VALUES ('tab3.htm','
 INSERT INTO fn_restricted_url (restricted_url, function_cd) VALUES ('tab4.htm','menu_tab');
 INSERT INTO fn_restricted_url (restricted_url, function_cd) VALUES ('raptor.htm','view_reports');
 INSERT INTO fn_restricted_url (restricted_url, function_cd) VALUES ('raptor_blob_extract.htm','view_reports');
+INSERT INTO fn_restricted_url VALUES('admin','menu_admin');
+INSERT INTO fn_restricted_url VALUES('get_role','menu_admin');
+INSERT INTO fn_restricted_url VALUES('get_role_functions','menu_admin');
+INSERT INTO fn_restricted_url VALUES('role_list/*','menu_admin');
+INSERT INTO fn_restricted_url VALUES('role_function_list/*','menu_admin');
+INSERT INTO fn_restricted_url VALUES('addRole','menu_admin');
+INSERT INTO fn_restricted_url VALUES('addRoleFunction','menu_admin');
+INSERT INTO fn_restricted_url VALUES('removeRole','menu_admin');
+INSERT INTO fn_restricted_url VALUES('removeRoleFunction','menu_admin');
+INSERT INTO fn_restricted_url VALUES('profile/*','menu_admin');
+INSERT INTO fn_restricted_url VALUES('samplePage','menu_sample');
+INSERT INTO fn_restricted_url VALUES('workflows','menu_admin');
+INSERT INTO fn_restricted_url VALUES('workflows/list','menu_admin');
+INSERT INTO fn_restricted_url VALUES('workflows/addWorkflow','menu_admin');
+INSERT INTO fn_restricted_url VALUES('workflows/saveCronJob','menu_admin');
+INSERT INTO fn_restricted_url VALUES('workflows/editWorkflow','menu_admin');
+INSERT INTO fn_restricted_url VALUES('workflows/removeWorkflow','menu_admin');
+INSERT INTO fn_restricted_url VALUES('workflows/removeAllWorkflows','menu_admin');
+INSERT INTO fn_restricted_url VALUES('role/saveRole.htm','menu_admin');
+INSERT INTO fn_restricted_url VALUES('post_search/process','menu_admin');
+INSERT INTO fn_restricted_url VALUES('post_search/search','menu_admin');
+INSERT INTO fn_restricted_url VALUES('post_search/search','menu_profile');
+INSERT INTO fn_restricted_url VALUES('report/wizard/retrieve_def_tab_wise_data/*','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/wizard/retrieve_form_tab_wise_data/*','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/wizard/retrieve_sql_tab_wise_data/*','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/wizard/security/*','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/wizard/copy_report/*','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/wizard/save_def_tab_data/*','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/wizard/retrieve_data/true','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/security/*','menu_reports');
 
 -- fn_role
 Insert into fn_role (ROLE_ID,ROLE_NAME,ACTIVE_YN,PRIORITY) values (16,'Standard User','Y',5);
diff --git a/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Rollback_2_1_to_1710_Common.sql b/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Rollback_2_1_to_1710_Common.sql
new file mode 100644 (file)
index 0000000..14ef6f1
--- /dev/null
@@ -0,0 +1,10 @@
+use ecomp_sdk;
+
+DELETE FROM fn_restricted_url
+where RESTRICTED_URL in('admin', 'get_role', 'get_role_functions', 'role_list/*', 'role_function_list/*', 'addRole', 'addRoleFunction', 'removeRole',
+                                               'removeRoleFunction', 'profile/*', 'samplePage','workflows', 'workflows/list', 'workflows/addWorkflow', 'workflows/saveCronJob',
+                                               'workflows/editWorkflow', 'workflows/removeWorkflow', 'workflows/removeAllWorkflows','role/saveRole.htm','post_search/process', 'post_search/search', 'report/wizard/retrieve_def_tab_wise_data/*',
+                                               'report/wizard/retrieve_form_tab_wise_data/*', 'report/wizard/retrieve_sql_tab_wise_data/*', 'report/wizard/security/*', 'report/wizard/copy_report/*', 'report/wizard/save_def_tab_data/*', 'report/wizard/retrieve_data/true',
+                                               'report/security/*');
+
+commit;
\ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Upgrade_1710_to_2_1_Common.sql b/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Upgrade_1710_to_2_1_Common.sql
new file mode 100644 (file)
index 0000000..08f0d38
--- /dev/null
@@ -0,0 +1,36 @@
+use ecomp_sdk;
+
+SET FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO fn_restricted_url VALUES('admin','menu_admin');
+INSERT INTO fn_restricted_url VALUES('get_role','menu_admin');
+INSERT INTO fn_restricted_url VALUES('get_role_functions','menu_admin');
+INSERT INTO fn_restricted_url VALUES('role_list/*','menu_admin');
+INSERT INTO fn_restricted_url VALUES('role_function_list/*','menu_admin');
+INSERT INTO fn_restricted_url VALUES('addRole','menu_admin');
+INSERT INTO fn_restricted_url VALUES('addRoleFunction','menu_admin');
+INSERT INTO fn_restricted_url VALUES('removeRole','menu_admin');
+INSERT INTO fn_restricted_url VALUES('removeRoleFunction','menu_admin');
+INSERT INTO fn_restricted_url VALUES('profile/*','menu_admin');
+INSERT INTO fn_restricted_url VALUES('samplePage','menu_sample');
+INSERT INTO fn_restricted_url VALUES('workflows','menu_admin');
+INSERT INTO fn_restricted_url VALUES('workflows/list','menu_admin');
+INSERT INTO fn_restricted_url VALUES('workflows/addWorkflow','menu_admin');
+INSERT INTO fn_restricted_url VALUES('workflows/saveCronJob','menu_admin');
+INSERT INTO fn_restricted_url VALUES('workflows/editWorkflow','menu_admin');
+INSERT INTO fn_restricted_url VALUES('workflows/removeWorkflow','menu_admin');
+INSERT INTO fn_restricted_url VALUES('workflows/removeAllWorkflows','menu_admin');
+INSERT INTO fn_restricted_url VALUES('role/saveRole.htm','menu_admin');
+INSERT INTO fn_restricted_url VALUES('post_search/process','menu_admin');
+INSERT INTO fn_restricted_url VALUES('post_search/search','menu_admin');
+INSERT INTO fn_restricted_url VALUES('post_search/search','menu_profile');
+INSERT INTO fn_restricted_url VALUES('report/wizard/retrieve_def_tab_wise_data/*','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/wizard/retrieve_form_tab_wise_data/*','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/wizard/retrieve_sql_tab_wise_data/*','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/wizard/security/*','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/wizard/copy_report/*','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/wizard/save_def_tab_data/*','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/wizard/retrieve_data/true','menu_reports');
+INSERT INTO fn_restricted_url VALUES('report/security/*','menu_reports');
+
+commit;
\ No newline at end of file
index cb14aec..a017ea0 100644 (file)
                <artifactId>esapi</artifactId>
                <version>2.1.0</version>
        </dependency>
+       <!-- Jacoco for offline instrumentation -->
+               <dependency>
+                       <groupId>org.jacoco</groupId>
+                       <artifactId>org.jacoco.agent</artifactId>
+                       <version>${jacoco.version}</version>
+                       <classifier>runtime</classifier>
+               </dependency>
        </dependencies>
 </project>
index da26fe6..82c13f1 100644 (file)
@@ -109,7 +109,7 @@ public class FavoritesController extends RestrictedBaseController {
                                        appName = app.getName();
                                        appUserName = app.getUsername();
                                        try {
-                                               decryptedPwd = CipherUtil.decrypt(app.getAppPassword(),
+                                               decryptedPwd = CipherUtil.decryptPKC(app.getAppPassword(),
                                                                SystemProperties.getProperty(SystemProperties.Decryption_Key));
                                        } catch (Exception e) {
                                                logger.error(EELFLoggerDelegate.errorLogger,
index 3ad4986..716f8e0 100644 (file)
@@ -172,7 +172,7 @@ public class FuncMenuController extends RestrictedBaseController {
                        appName = app.getName();
                        appUserName = app.getUsername();
                        try {
-                               decryptedPwd = CipherUtil.decrypt(app.getAppPassword(),
+                               decryptedPwd = CipherUtil.decryptPKC(app.getAppPassword(),
                                                SystemProperties.getProperty(SystemProperties.Decryption_Key));
                        } catch (Exception e) {
                                logger.error(EELFLoggerDelegate.errorLogger,
  *
  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  */
-package org.onap.portalapp.service;
+package org.onap.portalapp.controller.core;
 
-import java.util.List;
+import static org.junit.Assert.*;
 
-import org.junit.Assert;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.junit.Before;
 import org.junit.Test;
-import org.onap.portalapp.core.MockApplicationContextTestSuite;
-import org.onap.portalsdk.core.domain.Profile;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.onap.portalapp.framework.MockitoTestSuite;
 import org.onap.portalsdk.core.domain.User;
-import org.onap.portalsdk.core.service.ProfileService;
-import org.onap.portalsdk.core.service.UserProfileService;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.onap.portalsdk.core.web.support.UserUtils;
+import org.springframework.web.servlet.ModelAndView;
 
-public class ProfileServiceTest extends MockApplicationContextTestSuite {
+public class AngularAdminControllerTest {
 
-       @Autowired
-       ProfileService service;
-
-       @Autowired
-       UserProfileService userProfileService;
+       @InjectMocks
+       AngularAdminController angularAdminController = new AngularAdminController();
 
+       @Before
+       public void setup() {
+               MockitoAnnotations.initMocks(this);
+       }
+       
+       MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
+       
+       HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
+       HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
+       
+       NullPointerException nullPointerException = new NullPointerException();
+       
+       User user = new User();
+       
+       @Mock
+       UserUtils userUtils = new UserUtils();
+       
        @Test
-       public void testFindAll() throws Exception {
-
-               List<Profile> profiles = service.findAll();
-               Assert.assertTrue(profiles.size() > 0);
+       public void viewTest() {
+               ModelAndView modelandView = new ModelAndView("user_profile_list");      
+               ModelAndView expectedModelandView =     angularAdminController.view();
+               assertEquals(expectedModelandView.getViewName(), modelandView.getViewName());
        }
-
+       
        @Test
-       public void testFindAllActive() {
-
-               List<User> users = userProfileService.findAllActive();
-               List<User> activeUsers = userProfileService.findAllActive();
-               Assert.assertTrue(users.size() - activeUsers.size() >= 0);
+       public void adminViewTest() {   
+               ModelAndView expectedModelandView =     angularAdminController.adminView();
+               assertNull(expectedModelandView.getViewName());
        }
 }
+
diff --git a/ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/CollaborationControllerTest.java b/ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/CollaborationControllerTest.java
deleted file mode 100644 (file)
index e6e604c..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * ============LICENSE_START==========================================
- * ONAP Portal SDK
- * ===================================================================
- * 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============================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.portalapp.controller;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.onap.portalapp.core.MockApplicationContextTestSuite;
-import org.onap.portalsdk.core.domain.User;
-import org.onap.portalsdk.core.util.SystemProperties;
-import org.springframework.test.web.servlet.ResultActions;
-import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
-
-public class CollaborationControllerTest extends MockApplicationContextTestSuite {
-
-       @Test
-       public void testGetAvailableRoles() throws Exception {
-               MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/collaborate_list");
-               User user = new User();
-               user.setId(1l);
-               // user.setOrgUserId("abc");
-               requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
-
-               ResultActions ra = getMockMvc().perform(requestBuilder);
-               Assert.assertEquals(2, ra.andReturn().getModelAndView().getModelMap().size());
-       }
-
-}
diff --git a/ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/NetMapTest.java b/ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/NetMapTest.java
deleted file mode 100644 (file)
index 61973f6..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * ============LICENSE_START==========================================
- * ONAP Portal SDK
- * ===================================================================
- * 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============================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.portalapp.controller;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.onap.portalapp.core.MockApplicationContextTestSuite;
-import org.springframework.test.web.servlet.ResultActions;
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
-
-public class NetMapTest extends MockApplicationContextTestSuite {
-       
-       @Test
-       public void testGetNetMap() throws Exception {
-               ResultActions ra =getMockMvc().perform(MockMvcRequestBuilders.get("/net_map"));
-               //Assert.assertEquals(UrlAccessRestrictedException.class,ra.andReturn().getResolvedException().getClass());
-               Assert.assertEquals("net_map_int",ra.andReturn().getModelAndView().getModel().get("frame_int"));
-       }
-       
-
-}
  *
  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  */
-package org.onap.portalapp;
+package org.onap.portalapp.controller.core;
 
-import org.junit.Assert;
+import static org.junit.Assert.assertNull;
+
+import org.junit.Before;
 import org.junit.Test;
-import org.onap.portalapp.core.MockApplicationContextTestSuite;
-import org.springframework.test.web.servlet.ResultActions;
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
+import org.mockito.InjectMocks;
+import org.mockito.MockitoAnnotations;
+import org.springframework.web.servlet.ModelAndView;
+
+public class BootstrapSampleControllerTest {
+
+       @InjectMocks
+       BootstrapSampleController bootstrapSampleController = new BootstrapSampleController();
+
+       @Before
+       public void setup() {
+               MockitoAnnotations.initMocks(this);
+       }
 
-public class SanityTest extends MockApplicationContextTestSuite {      
-       
        @Test
-       public void testGetAvailableRoles() throws Exception {
-               
-               ResultActions ra =getMockMvc().perform(MockMvcRequestBuilders.get("/api/roles"));
-               //Assert.assertEquals(UrlAccessRestrictedException.class,ra.andReturn().getResolvedException().getClass());
-               Assert.assertEquals("application/json",ra.andReturn().getResponse().getContentType());
+       public void welcomeTest() {
+               ModelAndView expectedResluts = bootstrapSampleController.welcome();
+               assertNull(expectedResluts.getViewName());
        }
-       
 
 }
diff --git a/ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/RoleControllerTest.java b/ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/RoleControllerTest.java
new file mode 100644 (file)
index 0000000..81bbaee
--- /dev/null
@@ -0,0 +1,311 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * 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============================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+package org.onap.portalapp.controller.core;
+
+import static org.junit.Assert.*;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringReader;
+import java.io.StringWriter;
+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.Matchers;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.portalapp.framework.MockitoTestSuite;
+import org.onap.portalsdk.core.domain.Role;
+import org.onap.portalsdk.core.domain.RoleFunction;
+import org.onap.portalsdk.core.domain.User;
+import org.onap.portalsdk.core.service.RoleService;
+import org.onap.portalsdk.core.web.support.UserUtils;
+import org.springframework.web.bind.ServletRequestUtils;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class RoleControllerTest {
+
+       @InjectMocks
+       RoleController roleController = new RoleController();
+
+       @Mock
+       RoleService roleService;
+
+       @Before
+       public void setup() {
+               MockitoAnnotations.initMocks(this);
+       }
+
+       MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
+
+       HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
+       HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
+       NullPointerException nullPointerException = new NullPointerException();
+
+       @Mock
+       UserUtils userUtils = new UserUtils();
+
+       @Mock
+       ServletRequestUtils servletRequestUtils;
+
+       @Mock
+       ObjectMapper mapper = new ObjectMapper();
+
+       @Test
+       public void roleTest() throws IOException {
+               roleController.setViewName("Test");
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Role expectedRole = new Role();
+               expectedRole.setId((long) 1);
+               Mockito.when(roleService.getRole(Matchers.anyString(), Matchers.anyLong())).thenReturn(expectedRole);
+               List<RoleFunction> roleFunctionList = new ArrayList<RoleFunction>();
+               List<Role> roleList = new ArrayList<Role>();
+               Mockito.when(roleService.getRoleFunctions(user.getOrgUserId())).thenReturn(roleFunctionList);
+               Mockito.when(roleService.getAvailableChildRoles(Matchers.anyString(), Matchers.anyLong())).thenReturn(roleList);
+               ModelAndView expectedResult = roleController.role(mockedRequest);
+               assertEquals(expectedResult.getViewName(), "Test");
+       }
+
+       @Test
+       public void roleExceptionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Role expectedRole = new Role();
+               expectedRole.setId((long) 1);
+               Mockito.when(roleService.getRole(Matchers.anyString(), Matchers.anyLong())).thenReturn(expectedRole);
+               Mockito.when(roleService.getRoleFunctions(user.getOrgUserId())).thenThrow(nullPointerException);
+               ModelAndView expectedResult = roleController.role(mockedRequest);
+               assertNull(expectedResult.getViewName(), null);
+       }
+
+       @Test
+       public void getRoleTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Role expectedRole = new Role();
+               expectedRole.setId((long) 1);
+               Mockito.when(roleService.getRole(Matchers.anyString(), Matchers.anyLong())).thenReturn(expectedRole);
+               List<RoleFunction> roleFunctionList = new ArrayList<RoleFunction>();
+               List<Role> roleList = new ArrayList<Role>();
+               Mockito.when(roleService.getRoleFunctions(user.getOrgUserId())).thenReturn(roleFunctionList);
+               Mockito.when(roleService.getAvailableChildRoles(Matchers.anyString(), Matchers.anyLong())).thenReturn(roleList);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               roleController.getRole(mockedRequest, mockedResponse);
+       }
+
+       @Test
+       public void getRoleExceptionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Role expectedRole = new Role();
+               expectedRole.setId((long) 1);
+               Mockito.when(roleService.getRole(Matchers.anyString(), Matchers.anyLong())).thenReturn(expectedRole);
+               List<RoleFunction> roleFunctionList = new ArrayList<RoleFunction>();
+               List<Role> roleList = new ArrayList<Role>();
+               Mockito.when(roleService.getRoleFunctions(user.getOrgUserId())).thenReturn(roleFunctionList);
+               Mockito.when(roleService.getAvailableChildRoles(Matchers.anyString(), Matchers.anyLong())).thenReturn(roleList);
+               roleController.getRole(mockedRequest, mockedResponse);
+       }
+
+       @Test
+       public void saveRoleTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String json = "{\"role\":{\"id\":1,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"name\":\"test1\",\"active\":false,\"priority\":\"1\",\"roleFunctions\":[],\"childRoles\":[],\"editUrl\":\"/role.htm?role_id=1\",\"toggleActiveImage\":\"/static/fusion/images/inactive.png\",\"toggleActiveAltText\":\"Click to Activate Role\"},\"childRoles\":[],\"roleFunctions\":[]}";
+               Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(json)));
+               Role role = new Role();
+               role.setId((long) 1);
+               Mockito.when(roleService.getRole(user.getOrgUserId(), role.getId())).thenReturn(role);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               assertNull(roleController.saveRole(mockedRequest, mockedResponse));
+
+       }
+
+       @Test
+       public void saveRoleWithRoleFunctionsTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String json = "{\"role\":{\"id\":1,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"name\":\"test role modified test\",\"active\":true,\"priority\":null,\"roleFunctions\":[{\"id\":1,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"code\":\"menu_test\",\"name\":\"Test Menu\",\"editUrl\":\"/role_function.htm?role_function_id=menu_test\",\"$$hashKey\":\"object:1476\"}],\"childRoles\":[],\"editUrl\":\"/role.htm?role_id=9356\",\"toggleActiveImage\":\"/static/fusion/images/active.png\",\"toggleActiveAltText\":\"Click to Deactivate Role\"},\"childRoles\":[],\"roleFunctions\":[{\"id\":9356,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"code\":\"menu_test\",\"name\":\"Test Menu\",\"editUrl\":\"/role_function.htm?role_function_id=menu_test\",\"$$hashKey\":\"object:1476\"}]}";
+               Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(json)));
+               Role role = new Role();
+               role.setId((long) 1);
+               Mockito.when(roleService.getRole(user.getOrgUserId(), role.getId())).thenReturn(role);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               assertNull(roleController.saveRole(mockedRequest, mockedResponse));
+       }
+
+       @Test
+       public void saveNewRoleTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String json = "{\"role\":{\"id\":null,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"name\":\"test1\",\"active\":false,\"priority\":\"1\",\"roleFunctions\":[],\"childRoles\":[],\"editUrl\":\"/role.htm?role_id=1\",\"toggleActiveImage\":\"/static/fusion/images/inactive.png\",\"toggleActiveAltText\":\"Click to Activate Role\"},\"childRoles\":[],\"roleFunctions\":[]}";
+               Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(json)));
+               Role role = new Role();
+               role.setId((long) 1);
+               Mockito.when(roleService.getRole(user.getOrgUserId(), role.getId())).thenReturn(role);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               List<Role> roleList = new ArrayList<Role>();
+               Role role1 = new Role();
+               role1.setName("TestRole1");
+               Role role2 = new Role();
+               role2.setName("TestRole2");
+               roleList.add(role1);
+               roleList.add(role2);
+               Mockito.when(roleService.getAvailableRoles(user.getOrgUserId())).thenReturn(roleList);
+               assertNull(roleController.saveRole(mockedRequest, mockedResponse));
+       }
+
+       @Test
+       public void saveNewRoleExceptionTestIfRoleNameExistsTest() throws IOException {
+
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String json = "{\"role\":{\"id\":null,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"name\":\"TestRole1\",\"active\":false,\"priority\":\"1\",\"roleFunctions\":[],\"childRoles\":[],\"editUrl\":\"/role.htm?role_id=1\",\"toggleActiveImage\":\"/static/fusion/images/inactive.png\",\"toggleActiveAltText\":\"Click to Activate Role\"},\"childRoles\":[],\"roleFunctions\":[]}";
+               Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(json)));
+               Role role = new Role();
+               role.setId((long) 1);
+               Mockito.when(roleService.getRole(user.getOrgUserId(), role.getId())).thenReturn(role);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               List<Role> roleList = new ArrayList<Role>();
+               Role role1 = new Role();
+               role1.setName("TestRole1");
+               Role role2 = new Role();
+               role2.setName("TestRole2");
+               roleList.add(role1);
+               roleList.add(role2);
+               Mockito.when(roleService.getAvailableRoles(user.getOrgUserId())).thenReturn(roleList);
+               assertNull(roleController.saveRole(mockedRequest, mockedResponse));
+       }
+       
+       @Test
+       public void removeRoleFunctionTest() throws IOException
+       {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String json = "{\"roleFunction\":{\"id\":1,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"code\":\"menu_test\",\"name\":\"Test Menu\",\"editUrl\":\"/role_function.htm?role_function_id=menu_test\",\"$$hashKey\":\"object:1476\"}}";
+               Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(json)));
+               Role expectedRole = new Role();
+               expectedRole.setId((long) 1);
+               Mockito.when(roleService.getRole(Matchers.anyString(), Matchers.anyLong())).thenReturn(expectedRole);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               assertNull(roleController.removeRoleFunction(mockedRequest, mockedResponse));
+       }
+
+       @Test
+       public void removeRoleFunctionExceptionTest() throws IOException
+       {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String json = "{\"roleFunction\":{\"id\":1,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"code\":\"menu_test\",\"name\":\"Test Menu\",\"editUrl\":\"/role_function.htm?role_function_id=menu_test\",\"$$hashKey\":\"object:1476\"}}";
+               Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(json)));
+               Role expectedRole = new Role();
+               expectedRole.setId((long) 1);
+               Mockito.when(roleService.getRole(Matchers.anyString(), Matchers.anyLong())).thenThrow(nullPointerException);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               assertNull(roleController.removeRoleFunction(mockedRequest, mockedResponse));
+       }
+       
+       @Test
+       public void saveRoleFunctionTest() throws IOException
+       {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String json = "{\"roleFunction\":{\"id\":1,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"code\":\"menu_test\",\"name\":\"Test Menu\",\"editUrl\":\"/role_function.htm?role_function_id=menu_test\",\"$$hashKey\":\"object:1476\"}}";
+               Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(json)));
+               Role expectedRole = new Role();
+               expectedRole.setId((long) 1);
+               Mockito.when(roleService.getRole(Matchers.anyString(), Matchers.anyLong())).thenReturn(expectedRole);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               assertNull(roleController.addRoleFunction(mockedRequest, mockedResponse));
+       }
+       
+       @Test
+       public void saveRoleFunctionExceptionTest() throws IOException
+       {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String json = "{\"roleFunction\":{\"id\":1,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"code\":\"menu_test\",\"name\":\"Test Menu\",\"editUrl\":\"/role_function.htm?role_function_id=menu_test\",\"$$hashKey\":\"object:1476\"}}";
+               Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(json)));
+               Role expectedRole = new Role();
+               expectedRole.setId((long) 1);
+               Mockito.when(roleService.getRole(Matchers.anyString(), Matchers.anyLong())).thenThrow(nullPointerException);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               assertNull(roleController.addRoleFunction(mockedRequest, mockedResponse));
+       }
+}
diff --git a/ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/RoleFunctionListControllerTest.java b/ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/RoleFunctionListControllerTest.java
new file mode 100644 (file)
index 0000000..d30dc1d
--- /dev/null
@@ -0,0 +1,249 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * 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============================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+package org.onap.portalapp.controller.core;
+
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+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.onap.portalapp.framework.MockitoTestSuite;
+import org.onap.portalsdk.core.domain.RoleFunction;
+import org.onap.portalsdk.core.domain.User;
+import org.onap.portalsdk.core.service.RoleService;
+import org.onap.portalsdk.core.web.support.UserUtils;
+import org.springframework.web.bind.ServletRequestUtils;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class RoleFunctionListControllerTest {
+
+       @InjectMocks
+       RoleFunctionListController roleFunctionListController = new RoleFunctionListController();
+
+       @Mock
+       RoleService roleService;
+
+       @Before
+       public void setup() {
+               MockitoAnnotations.initMocks(this);
+       }
+
+       MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
+
+       HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
+       HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
+       NullPointerException nullPointerException = new NullPointerException();
+
+       @Mock
+       UserUtils userUtils = new UserUtils();
+
+       @Mock
+       ServletRequestUtils servletRequestUtils;
+
+       @Mock
+       ObjectMapper mapper = new ObjectMapper();
+
+       @Test
+       public void welcomeTest() throws IOException {
+               roleFunctionListController.setViewName("Test");
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               List<RoleFunction> roleFunctionList = new ArrayList<RoleFunction>();
+               Mockito.when(roleService.getRoleFunctions(user.getOrgUserId())).thenReturn(roleFunctionList);
+               ModelAndView expectedResult = roleFunctionListController.welcome(mockedRequest);
+               assertEquals(expectedResult.getViewName(), "Test");
+       }
+
+       @Test
+       public void welcomeExceptionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(roleService.getRoleFunctions(user.getOrgUserId())).thenThrow(nullPointerException);
+               ModelAndView expectedResult = roleFunctionListController.welcome(mockedRequest);
+               assertNull(expectedResult.getViewName());
+       }
+
+       @Test
+       public void getRoleFunctionListTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               List<RoleFunction> roleFunctionList = new ArrayList<RoleFunction>();
+               Mockito.when(roleService.getRoleFunctions(user.getOrgUserId())).thenReturn(roleFunctionList);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               roleFunctionListController.getRoleFunctionList(mockedRequest, mockedResponse);
+       }
+
+       @Test
+       public void getRoleFunctionListExceptionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(roleService.getRoleFunctions(user.getOrgUserId())).thenThrow(nullPointerException);
+               roleFunctionListController.getRoleFunctionList(mockedRequest, mockedResponse);
+       }
+
+       @Test
+       public void saveRoleFunctionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String roleFun = "{\"name\":\"Test\",\"code\":\"Test\"}";
+               RoleFunction roleFunction = new RoleFunction();
+               Mockito.when(roleService.getRoleFunction(user.getOrgUserId(), "Test")).thenReturn(roleFunction);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               roleFunctionListController.saveRoleFunction(mockedRequest, mockedResponse, roleFun);
+       }
+
+       @Test(expected = java.io.IOException.class)
+       public void saveRoleFunctionExceptionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String roleFun = "{\"name\":\"Test\",\"code\":\"Test\"}";
+               Mockito.when(roleService.getRoleFunction(user.getOrgUserId(), "Test")).thenThrow(nullPointerException);
+               roleFunctionListController.saveRoleFunction(mockedRequest, mockedResponse, roleFun);
+       }
+
+       @Test
+       public void addRoleFunctionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String roleFun = "{\"name\":\"Test\",\"code\":\"Test\"}";
+               List<RoleFunction> roleFunList = new ArrayList<>();
+               RoleFunction roleFun1 = new RoleFunction();
+               roleFun1.setName("TestRoleFun1");
+               roleFun1.setCode("TestRoleFunCode1");
+               roleFunList.add(roleFun1);
+               Mockito.when(roleService.getRoleFunctions(user.getOrgUserId())).thenReturn(roleFunList);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               roleFunctionListController.addRoleFunction(mockedRequest, mockedResponse, roleFun);
+       }
+
+       @Test
+       public void addRoleFunctionExsistsTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String roleFun = "{\"name\":\"Test\",\"code\":\"Test\"}";
+               List<RoleFunction> roleFunList = new ArrayList<>();
+               RoleFunction roleFun1 = new RoleFunction();
+               roleFun1.setName("Test");
+               roleFun1.setCode("Test");
+               roleFunList.add(roleFun1);
+               Mockito.when(roleService.getRoleFunctions(user.getOrgUserId())).thenReturn(roleFunList);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               roleFunctionListController.addRoleFunction(mockedRequest, mockedResponse, roleFun);
+       }
+
+       @Test(expected = java.io.IOException.class)
+       public void addRoleFunctionExceptionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String roleFun = "{\"name\":\"Test\",\"code\":\"Test\"}";
+               List<RoleFunction> roleFunList = new ArrayList<>();
+               RoleFunction roleFun1 = new RoleFunction();
+               roleFun1.setName("Test");
+               roleFun1.setCode("Test");
+               roleFunList.add(roleFun1);
+               Mockito.when(roleService.getRoleFunctions(user.getOrgUserId())).thenThrow(nullPointerException);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               roleFunctionListController.addRoleFunction(mockedRequest, mockedResponse, roleFun);
+       }
+
+       @Test
+       public void removeRoleFunctionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String roleFun = "{\"name\":\"Test\",\"code\":\"Test\"}";
+               RoleFunction roleFun1 = new RoleFunction();
+               roleFun1.setName("Test");
+               roleFun1.setCode("Test");
+               Mockito.when((roleService.getRoleFunction(user.getOrgUserId(), "Test"))).thenReturn(roleFun1);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               roleFunctionListController.removeRoleFunction(mockedRequest, mockedResponse, roleFun);
+
+       }
+
+       @Test(expected = java.io.IOException.class)
+       public void removeRoleFunctionExceptionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String roleFun = "{\"name\":\"Test\",\"code\":\"Test\"}";
+               RoleFunction roleFun1 = new RoleFunction();
+               roleFun1.setName("Test");
+               roleFun1.setCode("Test");
+               Mockito.when((roleService.getRoleFunction(user.getOrgUserId(), "Test"))).thenThrow(nullPointerException);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               roleFunctionListController.removeRoleFunction(mockedRequest, mockedResponse, roleFun);
+       }
+}
diff --git a/ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/RoleListControllerTest.java b/ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/RoleListControllerTest.java
new file mode 100644 (file)
index 0000000..9a57676
--- /dev/null
@@ -0,0 +1,209 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * 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============================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.portalapp.controller.core;
+
+import static org.junit.Assert.*;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringReader;
+import java.io.StringWriter;
+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.onap.portalapp.framework.MockitoTestSuite;
+import org.onap.portalsdk.core.domain.Role;
+import org.onap.portalsdk.core.domain.User;
+import org.onap.portalsdk.core.service.RoleService;
+import org.onap.portalsdk.core.web.support.UserUtils;
+import org.springframework.web.bind.ServletRequestUtils;
+import org.springframework.web.servlet.ModelAndView;
+import org.onap.portalapp.controller.core.RoleListController;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class RoleListControllerTest {
+
+       @InjectMocks
+       RoleListController roleListController = new RoleListController();
+
+       @Mock
+       RoleService roleService;
+
+       @Before
+       public void setup() {
+               MockitoAnnotations.initMocks(this);
+       }
+
+       MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
+       HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
+       HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
+       NullPointerException nullPointerException = new NullPointerException();
+
+       @Mock
+       UserUtils userUtils = new UserUtils();
+
+       @Mock
+       ServletRequestUtils servletRequestUtils;
+
+       @Mock
+       ObjectMapper mapper = new ObjectMapper();
+
+       @Test
+       public void getRoleListTest() throws IOException {
+               roleListController.setViewName("Test");
+               User user = new User();
+               user.setOrgUserId("test12");
+               List<Role> roleList = new ArrayList<>();
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(roleService.getAvailableRoles(user.getOrgUserId())).thenReturn(roleList);
+               ModelAndView expectedResult = roleListController.getRoleList(mockedRequest);
+               assertEquals(expectedResult.getViewName(), "Test");
+       }
+
+       @Test
+       public void getRoleListExceptionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(roleService.getAvailableRoles(user.getOrgUserId())).thenThrow(nullPointerException);
+               ModelAndView expectedResult = roleListController.getRoleList(mockedRequest);
+               assertNull(expectedResult.getViewName());
+       }
+
+       @Test
+       public void getRolesTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               List<Role> roleList = new ArrayList<>();
+               Role role = new Role();
+               role.setId((long) 1);
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(roleService.getAvailableRoles(user.getOrgUserId())).thenReturn(roleList);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               roleListController.getRoles(mockedRequest, mockedResponse);
+
+       }
+
+       @Test
+       public void getRolesExceptionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(roleService.getAvailableRoles(user.getOrgUserId())).thenThrow(nullPointerException);
+               roleListController.getRoles(mockedRequest, mockedResponse);
+       }
+
+       @Test
+       public void toggleRoleTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String json = "{\"role\":{\"id\":1,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"name\":\"test1\",\"active\":false,\"priority\":\"1\",\"roleFunctions\":[],\"childRoles\":[],\"editUrl\":\"/role.htm?role_id=1\",\"toggleActiveImage\":\"/static/fusion/images/inactive.png\",\"toggleActiveAltText\":\"Click to Activate Role\"},\"childRoles\":[],\"roleFunctions\":[]}";
+               Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(json)));
+               Role role = new Role();
+               role.setActive(true);
+               Mockito.when(roleService.getRole(user.getOrgUserId(), (long) 1)).thenReturn(role);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               assertNull(roleListController.toggleRole(mockedRequest, mockedResponse));
+       }
+
+       @Test
+       public void toggleRoleExceptionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String json = "{\"role\":{\"id\":1,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"name\":\"test1\",\"active\":false,\"priority\":\"1\",\"roleFunctions\":[],\"childRoles\":[],\"editUrl\":\"/role.htm?role_id=1\",\"toggleActiveImage\":\"/static/fusion/images/inactive.png\",\"toggleActiveAltText\":\"Click to Activate Role\"},\"childRoles\":[],\"roleFunctions\":[]}";
+               Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(json)));
+               Role role = new Role();
+               role.setActive(true);
+               Mockito.when(roleService.getRole(user.getOrgUserId(), (long) 1)).thenThrow(nullPointerException);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               assertNull(roleListController.toggleRole(mockedRequest, mockedResponse));
+       }
+
+       @Test
+       public void removeRoleTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String json = "{\"role\":{\"id\":1,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"name\":\"test1\",\"active\":false,\"priority\":\"1\",\"roleFunctions\":[],\"childRoles\":[],\"editUrl\":\"/role.htm?role_id=1\",\"toggleActiveImage\":\"/static/fusion/images/inactive.png\",\"toggleActiveAltText\":\"Click to Activate Role\"},\"childRoles\":[],\"roleFunctions\":[]}";
+               Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(json)));
+               Role role = new Role();
+               role.setActive(true);
+               Mockito.when(roleService.getRole(user.getOrgUserId(), (long) 1)).thenReturn(role);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               List<Role> roleList = new ArrayList<>();
+               Mockito.when(roleService.getAvailableRoles(user.getOrgUserId())).thenReturn(roleList);
+               assertNull(roleListController.removeRole(mockedRequest, mockedResponse));
+       }
+
+       @Test
+       public void removeRoleExceptionTest() throws IOException {
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               String json = "{\"role\":{\"id\":1,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"name\":\"test1\",\"active\":false,\"priority\":\"1\",\"roleFunctions\":[],\"childRoles\":[],\"editUrl\":\"/role.htm?role_id=1\",\"toggleActiveImage\":\"/static/fusion/images/inactive.png\",\"toggleActiveAltText\":\"Click to Activate Role\"},\"childRoles\":[],\"roleFunctions\":[]}";
+               Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(json)));
+               Role role = new Role();
+               role.setActive(true);
+               Mockito.when(roleService.getRole(user.getOrgUserId(), (long) 1)).thenThrow(nullPointerException);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               assertNull(roleListController.removeRole(mockedRequest, mockedResponse));
+       }
+}
diff --git a/ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/SingleSignOnControllerTest.java b/ecomp-sdk/epsdk-app-common/src/test/java/org/onap/portalapp/controller/core/SingleSignOnControllerTest.java
new file mode 100644 (file)
index 0000000..f1d4aa0
--- /dev/null
@@ -0,0 +1,297 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * 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============================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+package org.onap.portalapp.controller.core;
+
+import static org.junit.Assert.assertEquals;
+
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Matchers;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.portalapp.framework.MockitoTestSuite;
+import org.onap.portalsdk.core.auth.LoginStrategy;
+import org.onap.portalsdk.core.command.LoginBean;
+import org.onap.portalsdk.core.domain.RoleFunction;
+import org.onap.portalsdk.core.domain.User;
+import org.onap.portalsdk.core.menu.MenuProperties;
+import org.onap.portalsdk.core.onboarding.util.PortalApiConstants;
+import org.onap.portalsdk.core.onboarding.util.PortalApiProperties;
+import org.onap.portalsdk.core.service.LoginService;
+import org.onap.portalsdk.core.service.RoleService;
+import org.onap.portalsdk.core.util.SystemProperties;
+import org.onap.portalsdk.core.web.support.UserUtils;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.util.WebUtils;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({ URLDecoder.class, SystemProperties.class, URLEncoder.class, PortalApiProperties.class, WebUtils.class,
+               UserUtils.class })
+public class SingleSignOnControllerTest {
+
+       @InjectMocks
+       SingleSignOnController singleSignOnController = new SingleSignOnController();
+
+       @Mock
+       RoleService roleService;
+
+       @Mock
+       LoginService loginService;
+
+       @Mock
+       LoginStrategy loginStrategy;
+
+       @Mock
+       URLDecoder uRLDecoder;
+
+       @Before
+       public void setup() {
+               MockitoAnnotations.initMocks(this);
+       }
+
+       MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
+
+       HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
+       HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
+       NullPointerException nullPointerException = new NullPointerException();
+
+       @Test(expected = java.lang.SecurityException.class)
+       public void singleSignOnLoginExceptionTest() throws Exception {
+               Mockito.when(mockedRequest.getParameter("forwardURL")).thenReturn("Test");
+               PowerMockito.mockStatic(URLDecoder.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               Mockito.when(URLDecoder.decode(null, "UTF-8")).thenReturn("Test");
+               Mockito.when(SystemProperties.containsProperty(SystemProperties.APP_BASE_URL)).thenReturn(true);
+               Mockito.when(SystemProperties.getProperty(SystemProperties.APP_BASE_URL)).thenReturn("http://TestUrl");
+               Mockito.when(SystemProperties.getProperty(SystemProperties.COOKIE_DOMAIN)).thenReturn("te");
+               singleSignOnController.singleSignOnLogin(mockedRequest);
+
+       }
+
+       @Test
+       public void singleSignOnLoginTest() throws Exception {
+               Mockito.when(mockedRequest.getParameter("forwardURL")).thenReturn("Test");
+               PowerMockito.mockStatic(URLDecoder.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(URLEncoder.class);
+               PowerMockito.mockStatic(PortalApiProperties.class);
+               Mockito.when(URLDecoder.decode(null, "UTF-8")).thenReturn("Test");
+               Mockito.when(SystemProperties.containsProperty(SystemProperties.APP_BASE_URL)).thenReturn(true);
+               Mockito.when(SystemProperties.getProperty(SystemProperties.APP_BASE_URL)).thenReturn("http://TestUrl");
+               Mockito.when(SystemProperties.getProperty(SystemProperties.COOKIE_DOMAIN)).thenReturn("TestUrl");
+               Mockito.when(URLEncoder.encode("http://TestUrl/Test", "UTF-8")).thenReturn("encodeTestUrl");
+               Mockito.when(PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY)).thenReturn("uebkey");
+               Mockito.when(PortalApiProperties.getProperty(PortalApiConstants.ECOMP_REDIRECT_URL))
+                               .thenReturn("http://test.com/roles");
+               ModelAndView expectedResults = singleSignOnController.singleSignOnLogin(mockedRequest);
+               assertEquals(expectedResults.getViewName(),
+                               "redirect:http://test.com/process_csp?uebAppKey=uebkey&redirectUrl=http%3A%2F%2FTestUrl%2FTest");
+       }
+
+       @Test
+       public void singleSignOnLoginIfUrlIsNotAppBasedTest() throws Exception {
+               Mockito.when(mockedRequest.getParameter("forwardURL")).thenReturn("Test");
+               PowerMockito.mockStatic(URLDecoder.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(URLEncoder.class);
+               PowerMockito.mockStatic(PortalApiProperties.class);
+               Mockito.when(URLDecoder.decode(null, "UTF-8")).thenReturn("Test");
+               Mockito.when(SystemProperties.containsProperty(SystemProperties.APP_BASE_URL)).thenReturn(false);
+               Mockito.when(SystemProperties.getProperty(SystemProperties.COOKIE_DOMAIN)).thenReturn("test.com");
+               Mockito.when(PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY)).thenReturn("uebkey");
+               Mockito.when(PortalApiProperties.getProperty(PortalApiConstants.ECOMP_REDIRECT_URL))
+                               .thenReturn("http://test.com/roles");
+               StringBuffer stringBuffer = new StringBuffer("http://test.com/testSDK");
+               Mockito.when(mockedRequest.getRequestURL()).thenReturn(stringBuffer);
+               ModelAndView expectedResults = singleSignOnController.singleSignOnLogin(mockedRequest);
+               assertEquals(expectedResults.getViewName(),
+                               "redirect:http://test.com/process_csp?uebAppKey=uebkey&redirectUrl=http%3A%2F%2Ftest.com%2FtestSDK");
+       }
+
+       @Test
+       public void singleSignOnTest() throws Exception {
+               Mockito.when(mockedRequest.getParameter("forwardURL")).thenReturn("http://Test.com");
+               PowerMockito.mockStatic(URLDecoder.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(WebUtils.class);
+               Mockito.when(URLDecoder.decode(null, "UTF-8")).thenReturn("http://Test.com");
+               Mockito.when(mockedRequest.getParameter("redirectToPortal")).thenReturn(null);
+               Mockito.when(SystemProperties.containsProperty(SystemProperties.APP_BASE_URL)).thenReturn(true);
+               Mockito.when(SystemProperties.getProperty(SystemProperties.APP_BASE_URL)).thenReturn("http://TestUrl");
+               Mockito.when(SystemProperties.getProperty(SystemProperties.COOKIE_DOMAIN)).thenReturn("Test.com");
+               Mockito.when(WebUtils.getCookie(mockedRequest, "EPService")).thenReturn(new Cookie("test", "test"));
+               User user = new User();
+               user.setOrgUserId("test12");
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               ModelAndView expectedResults = singleSignOnController.singleSignOnLogin(mockedRequest);
+               assertEquals(expectedResults.getViewName(), "redirect:http://Test.com");
+
+       }
+
+       @Test
+       public void singleSignOnIfUserNullTest() throws Exception {
+               User user = null;
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(mockedRequest.getParameter("forwardURL")).thenReturn("http://Test.com");
+               PowerMockito.mockStatic(URLDecoder.class);
+               PowerMockito.mockStatic(WebUtils.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+
+               Mockito.when(URLDecoder.decode(null, "UTF-8")).thenReturn("http://Test.com");
+               Mockito.when(WebUtils.getCookie(mockedRequest, "EPService")).thenReturn(new Cookie("test", "test"));
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM)).thenReturn("testauth");
+               Mockito.when(loginStrategy.getUserId(mockedRequest)).thenReturn("test1234");
+               Mockito.when(mockedRequest.getAttribute(MenuProperties.MENU_PROPERTIES_FILENAME_KEY)).thenReturn("test");
+               LoginBean commandBean = new LoginBean();
+               commandBean.setUserid("test1234");
+               commandBean.setUser(null);
+               Mockito.when(loginService.findUser(Matchers.any(), Matchers.anyString(), Matchers.anyMap()))
+                               .thenReturn(commandBean);
+               List<RoleFunction> roleFunctionList = new ArrayList<>();
+               Mockito.when(roleService.getRoleFunctions("test1234")).thenReturn(roleFunctionList);
+               ModelAndView expectedResults = singleSignOnController.singleSignOnLogin(mockedRequest);
+               assertEquals(expectedResults.getViewName(), "redirect:null?noUserError=Yes");
+       }
+
+       @Test
+       public void singleSignOnIfUserNotNullTest() throws Exception {
+               User user = null;
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(mockedRequest.getParameter("forwardURL")).thenReturn("http://Test.com");
+               PowerMockito.mockStatic(URLDecoder.class);
+               PowerMockito.mockStatic(WebUtils.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(UserUtils.class);
+
+               Mockito.when(URLDecoder.decode(null, "UTF-8")).thenReturn("http://Test.com");
+               Mockito.when(WebUtils.getCookie(mockedRequest, "EPService")).thenReturn(new Cookie("test", "test"));
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM)).thenReturn("testauth");
+               Mockito.when(loginStrategy.getUserId(mockedRequest)).thenReturn("test1234");
+               Mockito.when(mockedRequest.getAttribute(MenuProperties.MENU_PROPERTIES_FILENAME_KEY)).thenReturn("test");
+               LoginBean commandBean = new LoginBean();
+               commandBean.setUserid("test1234");
+               User user1 = new User();
+               user1.setId((long) 1);
+               commandBean.setUser(user1);
+               Mockito.when(loginService.findUser(Matchers.any(), Matchers.anyString(), Matchers.anyMap()))
+                               .thenReturn(commandBean);
+               List<RoleFunction> roleFunctionList = new ArrayList<>();
+               Mockito.when(roleService.getRoleFunctions("test1234")).thenReturn(roleFunctionList);
+               ModelAndView expectedResults = singleSignOnController.singleSignOnLogin(mockedRequest);
+               assertEquals(expectedResults.getViewName(), "redirect:http://Test.com");
+       }
+
+       @Test
+       public void singleSignOnIfUserNotNullAndAuthNullTest() throws Exception {
+               User user = null;
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(mockedRequest.getParameter("forwardURL")).thenReturn("http://Test.com");
+               PowerMockito.mockStatic(URLDecoder.class);
+               PowerMockito.mockStatic(WebUtils.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(UserUtils.class);
+
+               Mockito.when(URLDecoder.decode(null, "UTF-8")).thenReturn("http://Test.com");
+               Mockito.when(WebUtils.getCookie(mockedRequest, "EPService")).thenReturn(new Cookie("test", "test"));
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM)).thenReturn(null);
+               Mockito.when(loginStrategy.getUserId(mockedRequest)).thenReturn("test1234");
+               Mockito.when(mockedRequest.getAttribute(MenuProperties.MENU_PROPERTIES_FILENAME_KEY)).thenReturn("test");
+               LoginBean commandBean = new LoginBean();
+               commandBean.setUserid("test1234");
+               User user1 = new User();
+               user1.setId((long) 1);
+               commandBean.setUser(user1);
+               Mockito.when(loginService.findUser(Matchers.any(), Matchers.anyString(), Matchers.anyMap()))
+                               .thenReturn(commandBean);
+               List<RoleFunction> roleFunctionList = new ArrayList<>();
+               Mockito.when(roleService.getRoleFunctions("test1234")).thenReturn(roleFunctionList);
+               ModelAndView expectedResults = singleSignOnController.singleSignOnLogin(mockedRequest);
+               assertEquals(expectedResults.getViewName(), "redirect:http://Test.com");
+       }
+
+       @Test
+       public void singleSignOnIfUserNotNullAndAuthCSPTest() throws Exception {
+               singleSignOnController.setViewName("test");
+               singleSignOnController.setWelcomeView("welcome");
+               assertEquals(singleSignOnController.getViewName(), "test");
+               assertEquals(singleSignOnController.getWelcomeView(), "welcome");
+               User user = null;
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(mockedRequest.getParameter("forwardURL")).thenReturn("http://Test.com");
+               PowerMockito.mockStatic(URLDecoder.class);
+               PowerMockito.mockStatic(WebUtils.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(UserUtils.class);
+               Mockito.when(URLDecoder.decode(null, "UTF-8")).thenReturn("http://Test.com");
+               Mockito.when(WebUtils.getCookie(mockedRequest, "EPService")).thenReturn(new Cookie("test", "test"));
+               Mockito.when(UserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               Mockito.when(SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM)).thenReturn("CSP");
+               Mockito.when(loginStrategy.getUserId(mockedRequest)).thenReturn("test1234");
+               Mockito.when(mockedRequest.getAttribute(MenuProperties.MENU_PROPERTIES_FILENAME_KEY)).thenReturn("test");
+               LoginBean commandBean = new LoginBean();
+               commandBean.setUserid("test1234");
+               User user1 = new User();
+               user1.setId((long) 1);
+               commandBean.setUser(user1);
+               Mockito.when(loginService.findUser(Matchers.any(), Matchers.anyString(), Matchers.anyMap()))
+                               .thenReturn(commandBean);
+               List<RoleFunction> roleFunctionList = new ArrayList<>();
+               Mockito.when(roleService.getRoleFunctions("test1234")).thenReturn(roleFunctionList);
+               ModelAndView expectedResults = singleSignOnController.singleSignOnLogin(mockedRequest);
+               assertEquals(expectedResults.getViewName(), "redirect:http://Test.com");
+       }
+
+}
@@ -1,8 +1,8 @@
-/*
+/*-
  * ============LICENSE_START==========================================
- * ONAP Portal SDK
+ * ONAP Portal
  * ===================================================================
- * Copyright Â© 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ===================================================================
  *
  * Unless otherwise specified, all software contained herein is licensed
  *
  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  */
-package org.onap.portalapp.workflow.services;
+package org.onap.portalapp.framework;
 
-import java.util.Calendar;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
 
-import org.junit.Assert;
 import org.junit.Test;
-import org.onap.portalapp.core.MockApplicationContextTestSuite;
-import org.onap.portalsdk.workflow.domain.WorkflowSchedule;
-import org.onap.portalsdk.workflow.services.WorkflowScheduleService;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class WorkflowScheduleServiceTest extends MockApplicationContextTestSuite {
-
-       @Autowired
-       WorkflowScheduleService service;
-
-       @Test
-       public void testFire() {
-
-               final WorkflowSchedule ws = new WorkflowSchedule();
-               ws.setId(999L);
-               ws.setWorkflowKey("test");
-               ws.setCronDetails("0 38 13 3 5 ? 2016");
-               final Calendar instance = Calendar.getInstance();
-               instance.add(Calendar.YEAR, 3);
-               ws.setEndDateTime(instance.getTime());
-
-               ws.setStartDateTime(Calendar.getInstance().getTime());
-               try {
-                       service.saveWorkflowSchedule(ws);
-                       Assert.assertTrue(true);
-               } catch (Exception e) {
-                       Assert.fail(e.getMessage());
-               }
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+public class MockitoTestSuite {
+
 
+       public MockHttpServletRequestWrapper mockedRequest = new MockHttpServletRequestWrapper(
+                       Mockito.mock(HttpServletRequest.class));
+       public HttpServletResponse mockedResponse = Mockito.mock(HttpServletResponse.class);
+
+       public MockHttpServletRequestWrapper getMockedRequest() {
+               return mockedRequest;
        }
 
+       public HttpServletResponse getMockedResponse() {
+               return mockedResponse;
+       }
+
+       public class MockHttpServletRequestWrapper extends HttpServletRequestWrapper {
+
+               HttpSession session = Mockito.mock(HttpSession.class);
+
+               public MockHttpServletRequestWrapper(HttpServletRequest request) {
+                       super(request);
+
+               }
+
+               @Override
+               public HttpSession getSession() {
+
+                       return session;
+               }
+
+               @Override
+               public HttpSession getSession(boolean create) {
+
+                       return session;
+               }
+
+       }
+   
 }
index daf0323..f74d043 100644 (file)
@@ -13,7 +13,13 @@ https://www.eclipse.org/m2e-wtp/
 
 ## Release Notes
 
-Version 1.4.0, <?day> <?month> 2017
+Version 2.1.0
+- PORTAL 161 Refer epsdk-app-common
+- PORTAL 160 Refer epsdk-app-common
+- PORTAL 159 Refer epsdk-app-common
+- PORTAL 136 Junits for SDK
+
+Version 1.4.0
 - PORTAL-19 Rename Java package base to org.onap
 - PORTAL-42 Use OParent as parent POM
 - PORTAL-72 Address Sonar Scan code issues
index 91402fb..cb4a308 100644 (file)
@@ -36,16 +36,4 @@ Insert into fn_app (APP_ID,APP_NAME,APP_IMAGE_URL,APP_DESCRIPTION,APP_NOTES,APP_
 -- fn_user_role
 Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (1,1,null,1);
 
--- fn_restricted_url
-insert into fn_restricted_url values('admin','menu_admin');
-insert into fn_restricted_url values('get_role','menu_admin');
-insert into fn_restricted_url values('get_role_functions','menu_admin');
-insert into fn_restricted_url values('role_list/*','menu_admin');
-insert into fn_restricted_url values('role_function_list/*','menu_admin');
-insert into fn_restricted_url values('addRole','menu_admin');
-insert into fn_restricted_url values('addRoleFunction','menu_admin');
-insert into fn_restricted_url values('removeRole','menu_admin');
-insert into fn_restricted_url values('removeRoleFunction','menu_admin');
-insert into fn_restricted_url values('profile/*','menu_admin');
-
 commit;
index db0a455..de941b3 100644 (file)
@@ -26,7 +26,8 @@
                <!-- Skip assembling the zip; assemble via mvn -Dskipassembly=false .. -->
                <skipassembly>true</skipassembly>
                <!-- Tests usually require some setup that maven cannot do, so skip. -->
-               <skiptests>true</skiptests>
+               <skiptests>false</skiptests>
+               <jacoco.version>0.7.9</jacoco.version>
                <!-- Version number gets stored only here -->
                <tomcat.download.path>http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.37/bin</tomcat.download.path>
                <tomcat.download.name>apache-tomcat-8.0.37</tomcat.download.name>
                                        </systemPropertyVariables>
                                </configuration>
                        </plugin>
-
+                       
+                       <plugin>
+                               <groupId>org.jacoco</groupId>
+                               <artifactId>jacoco-maven-plugin</artifactId>
+                               <!-- version managed by oparent ${jacocoVersion}</version> -->
+                               <executions>
+                                       <!-- disable jacoco executions from oparent -->
+                                       <execution>
+                                               <id>pre-unit-test</id>
+                                               <phase>none</phase>
+                                       </execution>
+                                       <execution>
+                                               <id>post-unit-test</id>
+                                               <phase>none</phase>
+                                       </execution>
+                                       <execution>
+                                               <id>pre-integration-test</id>
+                                               <phase>none</phase>
+                                       </execution>
+                                       <execution>
+                                               <id>post-integration-test</id>
+                                               <phase>none</phase>
+                                       </execution>
+                                       <!-- Order matters -->
+                                       <execution>
+                                               <id>portal-prepare-agent</id>
+                                               <goals>
+                                                       <goal>prepare-agent</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <destFile>${sonar.jacoco.reportPath}</destFile>
+                                               </configuration>
+                                       </execution>
+                                       <!-- offline instrumentation for PowerMock -->
+                                       <execution>
+                                               <id>portal-offline-instrument</id>
+                                               <goals>
+                                                       <goal>instrument</goal>
+                                               </goals>
+                                       </execution>
+                                       <execution>
+                                               <id>portal-restore-instrumented-classes</id>
+                                               <phase>test</phase>
+                                               <goals>
+                                                       <goal>restore-instrumented-classes</goal>
+                                               </goals>
+                                       </execution>
+                                       <execution>
+                                               <id>portal-post-unit-test</id>
+                                               <phase>test</phase>
+                                               <goals>
+                                                       <goal>report</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <dataFile>${sonar.jacoco.reportPath}</dataFile>
+                                                       <outputDirectory>${project.basedir}/target/site/jacoco</outputDirectory>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+                       
+                       
                        <!-- add version number to manifest -->
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>spring-webmvc</artifactId>
                        <version>${springframework.version}</version>
                </dependency>
+               <!-- Jacoco for offline instrumentation -->
+               <dependency>
+                       <groupId>org.jacoco</groupId>
+                       <artifactId>org.jacoco.agent</artifactId>
+                       <version>${jacoco.version}</version>
+                       <classifier>runtime</classifier>
+               </dependency>
        </dependencies>
 </project>
index 729cfd1..b0826f6 100644 (file)
@@ -103,7 +103,7 @@ public class LoginStrategyImpl extends LoginStrategy {
                        if (!SystemProperties.containsProperty(SystemProperties.Decryption_Key))
                                throw new IllegalStateException("Failed to find property " + SystemProperties.Decryption_Key);
                        final String decryptionKey = SystemProperties.getProperty(SystemProperties.Decryption_Key);
-                       userId = CipherUtil.decrypt(cookieValue, decryptionKey);
+                       userId = CipherUtil.decryptPKC(cookieValue, decryptionKey);
                        logger.debug(EELFLoggerDelegate.debugLogger, "getUserIdFromCookie: decrypted as {}", userId);
                }
                return userId;
index c0e1b6e..5cafe15 100644 (file)
        $scope.getUserNameFromSession = function(){
                UserInfoService.getFunctionalMenuStaticDetailSession()
                .then(function (res) {
-                               $scope.userProfile.firstName = res.firstName;
-                               $scope.redirectUrl = res.portalUrl;
+                       $scope.userProfile.firstName = res.firstName;
+                       $scope.userProfile.lastName = res.lastName;
+                       $scope.userProfile.email = res.email;
+                               $scope.userProfile.fullName     = res.userName;                         
+                               $scope.redirectUrl = res.portalUrl;     
                });
         }
        $scope.getTopMenuStaticInfo=function() {
                        console.log('getAppName failed', error);
                });
                
-           $scope.getTopMenuStaticInfo();      
+           $scope.getUserNameFromSession();      
        $scope.getMenu=function() {
                
                 $http({
index a1128ed..0b98655 100644 (file)
                UserInfoService.getFunctionalMenuStaticDetailSession()
                .then(function (res) {
                                $scope.userProfile.firstName = res.firstName;
-                               $scope.redirectUrl = res.portalUrl;
+                       $scope.userProfile.lastName = res.lastName;
+                       $scope.userProfile.email = res.email;
+                               $scope.userProfile.fullName     = res.userName;                         
+                               $scope.redirectUrl = res.portalUrl;     
                });
         }
        $scope.getTopMenuStaticInfo=function() {
                        console.log('getAppName failed', error);
                });
                
-           $scope.getTopMenuStaticInfo();      
+           $scope.getUserNameFromSession();
        $scope.getMenu=function() {
                
                 $http({
index ef0a8fd..32024aa 100644 (file)
@@ -74,19 +74,17 @@ app.directive('qHeader', function () {
                        });
                }
                $scope.getTopMenuStaticInfo=function() {
-                       var promise = UserInfoService.getFunctionalMenuStaticDetailShareContext();
+                       var promise = UserInfoService.getFunctionalMenuStaticDetailSession();
                        promise.then(
-                               function(res) {                                         
-                                       if(res==null || res==''){
-                                               $log.error('failed to get static User information');     
-                                               $scope.getUserNameFromSession();
-                                       }else{
-                                               // $log.info('Received static User information');                                               
-                                               var resData = res;
-                                               // console.log(resData);
-                                               $scope.inputUserInfo(resData);
-                                               $scope.userName = $scope.firstName+ ' '+ $scope.lastName;
-                                       }
+                               function(res) {                                                                                         
+                                               $scope.contactUsUrl=res.contactUsLink;
+                                                       $scope.userName = res.userName;
+                                                       $scope.userId = res.userid;
+                                                       $scope.userEmail = res.email;
+                                                       $scope.userFirstName = res.firstName;
+                                                       $scope.redirectUrl = res.portalUrl;
+                                                       $scope.getAccessUrl = res.getAccessUrl;
+                                                       $scope.isAppCentralized = res.isAppCentralized; 
                                },
                                function(err) {
                                                $log.error('getFunctionalMenuStaticDetailShareContext failed', err);
@@ -114,7 +112,7 @@ app.directive('qHeader', function () {
                }
                
                $scope.getMenu=function() {
-                       $scope.getTopMenuStaticInfo();
+                       $scope.getUserNameFromSession();
                        $http({
                                method: "GET",
                                url: 'get_functional_menu',
index 49b8f90..1032c70 100644 (file)
                                </exclusion>
                        </exclusions>
                </dependency>
+               <!-- Jacoco for offline instrumentation -->
+               <dependency>
+                       <groupId>org.jacoco</groupId>
+                       <artifactId>org.jacoco.agent</artifactId>
+                       <version>${jacoco.version}</version>
+                       <classifier>runtime</classifier>
+               </dependency>
        </dependencies>
        
 </project>
index 60888b6..0620945 100644 (file)
@@ -211,7 +211,7 @@ public class AppConfig extends WebMvcConfigurerAdapter implements Configurable,
                        if (SystemProperties.containsProperty(SystemProperties.DB_ENCRYPT_FLAG)) {
                                String encryptFlag = SystemProperties.getProperty(SystemProperties.DB_ENCRYPT_FLAG);
                                if (encryptFlag != null && "true".equalsIgnoreCase(encryptFlag)) {
-                                       password = CipherUtil.decrypt(password);
+                                       password = CipherUtil.decryptPKC(password);
                                }
                        }
                        dataSource.setPassword(password);
index 4b4d721..de65775 100644 (file)
@@ -144,7 +144,7 @@ public class ResourceInterceptor extends HandlerInterceptorAdapter {
                String ecompRestURL = PortalApiProperties.getProperty(PortalApiConstants.ECOMP_REST_URL);
                String decreptedPwd = null;
                try {
-                       decreptedPwd = CipherUtil.decrypt(app.getAppPassword(),
+                       decreptedPwd = CipherUtil.decryptPKC(app.getAppPassword(),
                                        SystemProperties.getProperty(SystemProperties.Decryption_Key));
                } catch (Exception e) {
                        logger.error(EELFLoggerDelegate.errorLogger, "handleSessionUpdates failed to decrypt password", e);
index 2c4da43..5f9cbdc 100644 (file)
@@ -98,7 +98,7 @@ public class PortalRestClientBase {
                if (uebKey == null || app == null || app.getUsername() == null || app.getAppPassword() == null)
                        throw new IllegalArgumentException(
                                        "getRestWithCredentials: Missing one or more required properties and/or database entries");
-               String decryptedPassword = CipherUtil.decrypt(app.getAppPassword());
+               String decryptedPassword = CipherUtil.decryptPKC(app.getAppPassword());
                CloseableHttpClient httpClient = HttpClients.createDefault();
                HttpGet httpGet = new HttpGet(uri);
                httpGet.setHeader("uebkey", uebKey);
@@ -150,7 +150,7 @@ public class PortalRestClientBase {
                if (uebKey == null || app == null || app.getUsername() == null || app.getAppPassword() == null)
                        throw new IllegalArgumentException(
                                        "postRestWithCredentials: missing one or more required properties and/or database entries");
-               String decryptedPassword = CipherUtil.decrypt(app.getAppPassword());
+               String decryptedPassword = CipherUtil.decryptPKC(app.getAppPassword());
                CloseableHttpClient httpClient = HttpClients.createDefault();
                HttpPost httpPost = new HttpPost(uri);
                httpPost.setHeader("uebkey", uebKey);
index c6c40b7..1b3e82c 100644 (file)
@@ -77,7 +77,7 @@ public class RestApiRequestBuilder {
                        appName = app.getName();
                        appUserName = app.getUsername();
                        try {
-                               decryptedPwd = CipherUtil.decrypt(app.getAppPassword(),
+                               decryptedPwd = CipherUtil.decryptPKC(app.getAppPassword(),
                                                SystemProperties.getProperty(SystemProperties.Decryption_Key));
                        } catch (CipherUtilException e) {
                                logger.error(EELFLoggerDelegate.errorLogger, "getViaREST failed", e);
@@ -115,7 +115,7 @@ public class RestApiRequestBuilder {
                        appName = app.getName();
                        appUserName = app.getUsername();
                        try {
-                               decryptedPwd = CipherUtil.decrypt(app.getAppPassword(),
+                               decryptedPwd = CipherUtil.decryptPKC(app.getAppPassword(),
                                                SystemProperties.getProperty(SystemProperties.Decryption_Key));
                        } catch (CipherUtilException e) {
                                logger.error(EELFLoggerDelegate.errorLogger, "postViaREST failed", e);
@@ -152,7 +152,7 @@ public class RestApiRequestBuilder {
                        appName = app.getName();
                        appUserName = app.getUsername();
                        try {
-                               decryptedPwd = CipherUtil.decrypt(app.getAppPassword(),
+                               decryptedPwd = CipherUtil.decryptPKC(app.getAppPassword(),
                                                SystemProperties.getProperty(SystemProperties.Decryption_Key));
                        } catch (CipherUtilException e) {
                                logger.error(EELFLoggerDelegate.errorLogger, "deleteViaRest failed", e);
index ddadc10..06073be 100644 (file)
@@ -127,7 +127,7 @@ public class UrlAccessImpl implements UrlAccessService {
                                for (int i = 0; i < roleFunctionArray.length; i++) {
                                        if (match) {
                                                if (!roleFunctionArray[i].equals("*")) {
-                                                       Pattern p = Pattern.compile(path[i], Pattern.CASE_INSENSITIVE);
+                                                       Pattern p = Pattern.compile(Pattern.quote(path[i]), Pattern.CASE_INSENSITIVE);
                                                        Matcher m = p.matcher(roleFunctionArray[i]);
                                                        match = m.matches();
 
index 7147982..f0a1791 100644 (file)
@@ -69,7 +69,7 @@ public class WebServiceCallServiceImpl implements WebServiceCallService {
                if (app != null) {
                        String encriptedPwdDB = app.getAppPassword();
                        String appUserName = app.getUsername();
-                       String decreptedPwd = CipherUtil.decrypt(encriptedPwdDB,
+                       String decreptedPwd = CipherUtil.decryptPKC(encriptedPwdDB,
                                        secretKey == null ? SystemProperties.getProperty(SystemProperties.Decryption_Key) : secretKey);
                        if (decreptedPwd.equals(requestPassword) && appUserName.equals(requestAppName)) {
                                return true;
index 73283ee..a61209e 100644 (file)
             <version>1.10.19</version>
             <scope>test</scope>
         </dependency>
-
+               <dependency>
+                   <groupId>org.jacoco</groupId>
+                   <artifactId>org.jacoco.agent</artifactId>
+                   <classifier>runtime</classifier>
+                   <scope>test</scope>
+                   <version>${jacoco.version}</version>
+               </dependency>
        </dependencies>
 
 </project>
index 077aa32..99420d3 100644 (file)
                        <artifactId>spring-webmvc</artifactId>
                        <version>${springframework.version}</version>
                </dependency>
+               <!-- Jacoco for offline instrumentation -->
+               <dependency>
+                       <groupId>org.jacoco</groupId>
+                       <artifactId>org.jacoco.agent</artifactId>
+                       <version>${jacoco.version}</version>
+                       <classifier>runtime</classifier>
+               </dependency>
        </dependencies>
 
 </project>
index 788f63e..e58f129 100644 (file)
                <encoding>UTF-8</encoding>
                <springframework.version>4.2.0.RELEASE</springframework.version>
                <hibernate.version>4.3.11.Final</hibernate.version>
-               <skiptests>true</skiptests>
+               <skiptests>false</skiptests>
                <nexusproxy>https://nexus.onap.org</nexusproxy>
                <snapshotNexusPath>content/repositories/snapshots/</snapshotNexusPath>
                <stagingNexusPath>content/repositories/staging/</stagingNexusPath>
                <releaseNexusPath>content/repositories/releases/</releaseNexusPath>
+               <jacoco.version>0.7.7.201606060606</jacoco.version>
+               <sonar.exclusions>**/scripts/**/*,**.js</sonar.exclusions>
+               <sonar.test.exclusions>**/test/**/*,**/tests/**/*</sonar.test.exclusions>
+               <sonar.language>java</sonar.language>
+               <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
+               <sonar.skipDesign>true</sonar.skipDesign>
+               <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
+               <sonar.jacoco.reportPath>${project.basedir}/jacoco.exec</sonar.jacoco.reportPath>
+               <sonar.jacoco.itReportPath>${project.basedir}/target/it-jacoco.exec</sonar.jacoco.itReportPath>
+               <sonar.jacoco.reportMissing.force.zero>true</sonar.jacoco.reportMissing.force.zero>
+               <sonar.projectVersion>${project.version}</sonar.projectVersion>
+               <sonar.skipDesign>true</sonar.skipDesign>
+               <sonar.projectBaseDir>${project.basedir}</sonar.projectBaseDir>
        </properties>
 
        <!-- Specify the repositories here to avoid coordination of ~/.m2/settings.xml 
                                                </dependency>
                                        </dependencies>
                                </plugin>
+                               <plugin>
+                               <groupId>org.jacoco</groupId>
+                               <artifactId>jacoco-maven-plugin</artifactId>
+                               <!-- version managed by oparent ${jacocoVersion}</version> -->
+                               <executions>
+                                       <!-- disable jacoco executions from oparent -->
+                                       <execution>
+                                               <id>pre-unit-test</id>
+                                               <phase>none</phase>
+                                       </execution>
+                                       <execution>
+                                               <id>post-unit-test</id>
+                                               <phase>none</phase>
+                                       </execution>
+                                       <execution>
+                                               <id>pre-integration-test</id>
+                                               <phase>none</phase>
+                                       </execution>
+                                       <execution>
+                                               <id>post-integration-test</id>
+                                               <phase>none</phase>
+                                       </execution>
+                                       <!-- Order matters -->
+                                       <execution>
+                                               <id>portal-prepare-agent</id>
+                                               <goals>
+                                                       <goal>prepare-agent</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <destFile>${sonar.jacoco.reportPath}</destFile>
+                                               </configuration>
+                                       </execution>
+                                       <!-- offline instrumentation for PowerMock -->
+                                       <execution>
+                                               <id>portal-offline-instrument</id>
+                                               <goals>
+                                                       <goal>instrument</goal>
+                                               </goals>
+                                       </execution>
+                                       <execution>
+                                               <id>portal-restore-instrumented-classes</id>
+                                               <phase>test</phase>
+                                               <goals>
+                                                       <goal>restore-instrumented-classes</goal>
+                                               </goals>
+                                       </execution>
+                                       <execution>
+                                               <id>portal-post-unit-test</id>
+                                               <phase>test</phase>
+                                               <goals>
+                                                       <goal>report</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <dataFile>${sonar.jacoco.reportPath}</dataFile>
+                                                       <outputDirectory>${project.basedir}/target/site/jacoco</outputDirectory>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+                               
                        </plugins>
                </pluginManagement>