Merge "Revert "Update oparent version""
authorManoop Talasila <talasila@research.att.com>
Thu, 9 May 2019 00:29:46 +0000 (00:29 +0000)
committerGerrit Code Review <gerrit@onap.org>
Thu, 9 May 2019 00:29:46 +0000 (00:29 +0000)
.gitignore
ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/ExternalAppsRestfulController.java
ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ApplicationsRestClientServiceImpl.java
ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/LanguageServiceImpl.java
ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AuxApiRequestMapperControllerTest.java
ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/ExternalAppsRestfulControllerTest.java
ecomp-portal-DB-common/PortalDDLMySql_2_1_Common.sql
version.properties

index 44c6935..a237ad3 100644 (file)
@@ -1,4 +1,6 @@
 /.idea/*
+*.iml
+*/*.iml
 /.project
 /.settings
 /dmaapbc
index fb0c269..15ce305 100644 (file)
@@ -4,6 +4,8 @@
  * ===================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ===================================================================
+ *  Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
  *
  * Unless otherwise specified, all software contained herein is licensed
  * under the Apache License, Version 2.0 (the "License");
@@ -112,11 +114,13 @@ public class ExternalAppsRestfulController extends EPRestrictedRESTfulBaseContro
                String appKey = request.getHeader("uebkey");
                EPApp app = findEpApp(appKey);
                List<Long> postRoleIds = new ArrayList<Long>();
-               for (Long roleId : notificationItem.getRoleIds()) {
-                       EPRole role = epRoleService.getRole(app.getId(), roleId);
-                       if (role != null)
-                               postRoleIds.add(role.getId());
-               }
+               if (app != null) {
+        for (Long roleId : notificationItem.getRoleIds()) {
+            EPRole role = epRoleService.getRole(app.getId(), roleId);
+            if (role != null)
+                postRoleIds.add(role.getId());
+        }
+    }
 
                // --- recreate the user notification object with the POrtal Role Ids
                EpNotificationItem postItem = new EpNotificationItem();
@@ -151,10 +155,10 @@ public class ExternalAppsRestfulController extends EPRestrictedRESTfulBaseContro
                try {
                        list = this.getDataAccessService().executeNamedQuery("getMyAppDetailsByUebKey", params, null);
                } catch (Exception e) {
-                       logger.error(EELFLoggerDelegate.errorLogger, "getMyAppDetailsByUebKey failed", e);                      
+                       logger.error(EELFLoggerDelegate.errorLogger, "getMyAppDetailsByUebKey failed", e);
                }
                        
-               return (list == null || list.size() == 0) ? null : (EPApp) list.get(0);
+               return (list == null || list.isEmpty()) ? null : (EPApp) list.get(0);
        }
 
        @ApiOperation(value = "Gets favorite items within the functional menu for the current user.", response = FavoritesFunctionalMenuItemJson.class, responseContainer="List")
index fd6610c..18dabfb 100644 (file)
@@ -4,6 +4,8 @@
  * ===================================================================
  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ===================================================================
+ *  Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
  *
  * Unless otherwise specified, all software contained herein is licensed
  * under the Apache License, Version 2.0 (the "License");
@@ -378,7 +380,7 @@ public class ApplicationsRestClientServiceImpl implements ApplicationsRestClient
                                String str = ((ResponseImpl)response).readEntity(String.class);
                                EcompPortalUtils.logAndSerializeObject(logger, restPath, "POST result =", str);
                                try {
-                                       t = (T) gson.fromJson(str, t.getClass());
+                                       t = (T) gson.fromJson(str, clazz);
 
                                        //t = gson.fromJson(str, clazz);
                                } catch (Exception e) {
index 13d7097..1aa12b2 100644 (file)
@@ -16,6 +16,9 @@
 package org.onap.portalapp.portal.service;
 
 import com.alibaba.fastjson.JSONObject;
+
+import antlr.StringUtils;
+
 import org.onap.portalapp.portal.domain.EPUser;
 import org.onap.portalapp.portal.domain.Language;
 import org.onap.portalsdk.core.service.DataAccessService;
@@ -53,18 +56,31 @@ public class LanguageServiceImpl implements LanguageService {
     public JSONObject getUserLanguage(String loginId) {
         // get language_id from fn_user by loginId
         JSONObject result = new com.alibaba.fastjson.JSONObject();
-        HashMap params = new HashMap();
-        params.put("login_id",loginId);
-        
-        EPUser user = (EPUser) dataAccessService.executeNamedQuery("getEPUserByLoginId",params,new HashMap()).get(0);
-        int languageId = user.getLanguageId();
-        HashMap<String,String> params1 = new HashMap();
-        params1.put("language_id", String.valueOf(languageId));
-        Language language = (Language) dataAccessService.executeNamedQuery("queryLanguageByLanguageId",params1,new HashMap());
-               result.put("languageId",languageId);
-               result.put("languageName",language.getLanguageName());
-               result.put("languageAlias",language.getLanguageAlias());
+        HashMap getUserParams = new HashMap();
+        getUserParams.put("login_id", loginId);
+        List<EPUser> userList= null;
+
+        try {
+            userList = dataAccessService.executeNamedQuery("getEPUserByLoginId", getUserParams, new HashMap());
+            if (userList != null && userList.size() > 0) {
+                EPUser user = userList.get(0);
+                int languageId = user.getLanguageId();
+                result.put("languageId", languageId);
+
+                // get language name and alias from fn_language by languageId
+                HashMap<String,String> getLangParams = new HashMap();
+                getLangParams.put("language_id", String.valueOf(languageId));
+                List<Language> languageList = null;
 
+                languageList = dataAccessService.executeNamedQuery("queryLanguageByLanguageId", getLangParams, new HashMap());
+                if (languageList != null && languageList.size() > 0) {
+                    result.put("languageName", languageList.get(0).getLanguageName());
+                    result.put("languageAlias", languageList.get(0).getLanguageAlias());
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         return result;
     }
 }
index 9d3ac1e..e730331 100644 (file)
@@ -639,7 +639,7 @@ public class AuxApiRequestMapperControllerTest {
                Mockito.when(AopUtils.isAopProxy(Matchers.anyObject())).thenReturn(false);
                Mockito.when(mockedRequest.getMethod()).thenReturn("POST");
                EpNotificationItem notificationItem = new EpNotificationItem();
-               assertNull(auxApiRequestMapperController.publishNotification(mockedRequest, notificationItem, mockedResponse));
+               assertNotNull(auxApiRequestMapperController.publishNotification(mockedRequest, notificationItem, mockedResponse));
        }
 
        @Test
index 73978a3..d8f98bb 100644 (file)
@@ -4,6 +4,8 @@
  * ===================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ===================================================================
+ *  Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
  *
  * Unless otherwise specified, all software contained herein is licensed
  * under the Apache License, Version 2.0 (the "License");
@@ -38,8 +40,9 @@
 package org.onap.portalapp.portal.controller;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
 
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -54,18 +57,15 @@ import javax.servlet.http.HttpServletResponse;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.InjectMocks;
-import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
-import org.onap.portalapp.portal.controller.ExternalAppsRestfulController;
 import org.onap.portalapp.portal.core.MockEPUser;
 import org.onap.portalapp.portal.domain.EPApp;
+import org.onap.portalapp.portal.domain.EPRole;
 import org.onap.portalapp.portal.domain.EPUser;
-import org.onap.portalapp.portal.domain.UserRole;
-import org.onap.portalapp.portal.ecomp.model.PortalRestResponse;
-import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum;
 import org.onap.portalapp.portal.framework.MockitoTestSuite;
 import org.onap.portalapp.portal.service.AdminRolesService;
 import org.onap.portalapp.portal.service.AdminRolesServiceImpl;
@@ -82,7 +82,6 @@ import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItemJson;
 import org.onap.portalapp.portal.transport.FunctionalMenuItem;
 import org.onap.portalapp.portal.utils.EPCommonSystemProperties;
 import org.onap.portalapp.portal.utils.EcompPortalUtils;
-import org.onap.portalsdk.core.menu.MenuBuilder;
 import org.onap.portalsdk.core.onboarding.crossapi.PortalAPIResponse;
 import org.onap.portalsdk.core.service.DataAccessService;
 import org.onap.portalsdk.core.service.DataAccessServiceImpl;
@@ -247,88 +246,124 @@ public class ExternalAppsRestfulControllerTest {
                                .getFavoritesForUser(mockedRequest, mockedResponse);
                assertEquals(actaulFavorites.size(), 1);
        }
-       
-       @Test(expected=NullPointerException.class)
-       public void publishNotificationTest() throws Exception{
-               EPApp appTest=new EPApp();
-               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn("RxH3983AHiyBOQmj");
-               appTest.setUebKey("123456");
-               String appKey="123456";
-               EpNotificationItem notificationItem=new EpNotificationItem();
-               List<Long> roleList = new ArrayList<Long>();
-               Long role1 = (long) 1;
-               roleList.add(role1);
-               notificationItem.setRoleIds(roleList);
-               notificationItem.setIsForAllRoles("N");
-               notificationItem.setIsForOnlineUsers("N");
-               notificationItem.setActiveYn("Y");
-               notificationItem.setPriority(1L);
-               notificationItem.setMsgHeader("testHeader");
-               notificationItem.setMsgDescription("Test Description");
-               Date currentDate = new Date();
-               Calendar c = Calendar.getInstance();
-               c.setTime(currentDate);
-               c.add(Calendar.DATE, 1);
-               Date currentDatePlusOne = c.getTime();
-               notificationItem.setStartTime(currentDate);
-               notificationItem.setEndTime(currentDatePlusOne);
-               notificationItem.setCreatedDate(c.getTime());
-               
-               PortalAPIResponse actualPortalRestResponse = new PortalAPIResponse(true, appKey);
-               PortalAPIResponse expectedPortalRestResponse = new PortalAPIResponse(true, appKey);
-               expectedPortalRestResponse.setMessage("SUCCESS");
-               expectedPortalRestResponse.setStatus("ok");
-               Map<String, String> params = new HashMap<>();
-               params.put("appKey", "1234567");
-               
-               Mockito.when(DataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", params, null)).thenReturn(null);
 
-               Mockito.when(userNotificationService.saveNotification(notificationItem)).thenReturn("Test");
-               actualPortalRestResponse = externalAppsRestfulController.publishNotification(mockedRequest, notificationItem);
-               assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse));
-               
-       }
-       
-       @Test(expected=NullPointerException.class)
-       public void publishNotificationTest1() throws Exception{
-               EpNotificationItem notificationItem=new EpNotificationItem();
-               List<Long> roleList = new ArrayList<Long>();
-               Long role1 = (long) 1;
-               roleList.add(role1);
-               notificationItem.setRoleIds(roleList);
-               notificationItem.setIsForAllRoles("N");
-               notificationItem.setIsForOnlineUsers("N");
-               notificationItem.setActiveYn("Y");
-               notificationItem.setPriority(1L);
-               notificationItem.setMsgHeader("testHeader");
-               notificationItem.setMsgDescription("Test Description");
-               Date currentDate = new Date();
-               Calendar c = Calendar.getInstance();
-               c.setTime(currentDate);
-               c.add(Calendar.DATE, 1);
-               Date currentDatePlusOne = c.getTime();
-               notificationItem.setStartTime(currentDate);
-               notificationItem.setEndTime(currentDatePlusOne);
-               notificationItem.setCreatedDate(c.getTime());
-               
-               //PowerMockito.mockStatic(EPApp.class);
 
-               
-               List<EPApp> appList = new ArrayList<>();
-               EPApp app = mockApp();
-               app.setId((long) 1);
-               appList.add(app);
-               
-               final Map<String, String> appUebkeyParams = new HashMap<>();
-               appUebkeyParams.put("appKey", "test-ueb-key");
-               
-               Mockito.when(DataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null))
-               .thenReturn(appList);
-               //EPApp epApp=new EPApp();
-               
-               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn("RxH3983AHiyBOQmj");
+    @Test
+    public void publishNotificationTest_Success() throws Exception {
+        // input
+        EpNotificationItem notificationItem = new EpNotificationItem();
+        List<Long> roleList = new ArrayList<Long>();
+        Long role1 = 1L;
+        roleList.add(role1);
+        notificationItem.setRoleIds(roleList);
+        notificationItem.setPriority(1L);
+        notificationItem.setMsgHeader("testHeader");
+        notificationItem.setMsgDescription("Test Description");
+        Date currentDate = new Date();
+        Calendar c = Calendar.getInstance();
+        c.setTime(currentDate);
+        c.add(Calendar.DATE, 1);
+        Date currentDatePlusOne = c.getTime();
+        notificationItem.setStartTime(currentDate);
+        notificationItem.setEndTime(currentDatePlusOne);
 
-                externalAppsRestfulController.publishNotification(mockedRequest, notificationItem);
+        // mock calls
+        Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn("RxH3983AHiyBOQmj");
+        Map<String, String> params = new HashMap<>();
+        params.put("appKey", "RxH3983AHiyBOQmj");
+        List<EPApp> apps = new ArrayList<>();
+        EPApp app = new EPApp();
+        app.setId(123L);
+        apps.add(app);
+        Mockito.when(DataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", params, null)).thenReturn(apps);
+        EPRole role = new EPRole();
+        role.setId(543L);
+        Mockito.when(epRoleService.getRole(123L, 1L)).thenReturn(role);
+
+        // run
+        Mockito.when(userNotificationService.saveNotification(notificationItem)).thenReturn("Test");
+        PortalAPIResponse response = externalAppsRestfulController.publishNotification(mockedRequest, notificationItem);
+        // verify answer
+        assertNotNull(response);
+        assertEquals("ok", response.getStatus());
+        assertEquals("success", response.getMessage());
+        ArgumentCaptor<EpNotificationItem> capture = ArgumentCaptor.forClass(EpNotificationItem.class);
+        Mockito.verify(userNotificationService).saveNotification(capture.capture());
+        assertNotNull(capture.getValue());
+        EpNotificationItem createdNofification = capture.getValue();
+        assertNotNull(createdNofification.getRoleIds());
+        assertEquals(1, createdNofification.getRoleIds().size());
+        assertEquals(543L, createdNofification.getRoleIds().get(0).longValue());
+    }
+
+    @Test
+    public void publishNotificationTest_EmptyAppHeader() throws Exception {
+        // input
+        EpNotificationItem notificationItem = new EpNotificationItem();
+        List<Long> roleList = new ArrayList<Long>();
+        Long role1 = 1L;
+        roleList.add(role1);
+        notificationItem.setRoleIds(roleList);
+        notificationItem.setPriority(1L);
+        notificationItem.setMsgHeader("testHeader");
+        notificationItem.setMsgDescription("Test Description");
+        Date currentDate = new Date();
+        Calendar c = Calendar.getInstance();
+        c.setTime(currentDate);
+        c.add(Calendar.DATE, 1);
+        Date currentDatePlusOne = c.getTime();
+        notificationItem.setStartTime(currentDate);
+        notificationItem.setEndTime(currentDatePlusOne);
+
+        Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(null);
+        final Map<String, String> params = new HashMap<>();
+        params.put("appKey", null);
+        Mockito.when(DataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", params, null))
+            .thenThrow(NullPointerException.class);
+
+        PortalAPIResponse response = externalAppsRestfulController.publishNotification(mockedRequest, notificationItem);
+        assertNotNull(response);
+        assertEquals("ok", response.getStatus());
+        assertEquals("success", response.getMessage());
+        ArgumentCaptor<EpNotificationItem> capture = ArgumentCaptor.forClass(EpNotificationItem.class);
+        Mockito.verify(userNotificationService).saveNotification(capture.capture());
+        assertNotNull(capture.getValue());
+        EpNotificationItem createdNofification = capture.getValue();
+        assertNotNull(createdNofification.getRoleIds());
+        assertEquals(0, createdNofification.getRoleIds().size());
+    }
+
+    @Test
+    public void publishNotificationTest_ErrorResponse() throws Exception {
+        // input
+        EpNotificationItem notificationItem = new EpNotificationItem();
+        List<Long> roleList = new ArrayList<Long>();
+        Long role1 = 1L;
+        roleList.add(role1);
+        notificationItem.setRoleIds(roleList);
+        notificationItem.setPriority(1L);
+        notificationItem.setMsgHeader("testHeader");
+        notificationItem.setMsgDescription("Test Description");
+        Date currentDate = new Date();
+        Calendar c = Calendar.getInstance();
+        c.setTime(currentDate);
+        c.add(Calendar.DATE, 1);
+        Date currentDatePlusOne = c.getTime();
+        notificationItem.setStartTime(currentDate);
+        notificationItem.setEndTime(currentDatePlusOne);
+
+        Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(null);
+        final Map<String, String> params = new HashMap<>();
+        params.put("appKey", null);
+        Mockito.when(DataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", params, null))
+            .thenThrow(NullPointerException.class);
+        Mockito.when(userNotificationService.saveNotification(any(EpNotificationItem.class))).
+            thenThrow(new NullPointerException("expected message"));
+
+        PortalAPIResponse response = externalAppsRestfulController.publishNotification(mockedRequest, notificationItem);
+        assertNotNull(response);
+        assertEquals("error", response.getStatus());
+        assertEquals("expected message", response.getMessage());
+    }
 
-       }
 }
index 2cf5b75..7469c60 100644 (file)
@@ -13,6 +13,12 @@ set foreign_key_checks=1;
 
 create database portal;
 
+SET GLOBAL character_set_client     = utf8;
+SET GLOBAL character_set_connection = utf8;
+SET GLOBAL character_set_database   = utf8;
+SET GLOBAL character_set_results    = utf8;
+SET GLOBAL character_set_server     = utf8;
+
 use portal;
 
 -- ------------------ create table section
index ee5d4d0..756f8a3 100644 (file)
@@ -3,7 +3,7 @@
 # because they are used in Jenkins, whose plug-in doesn't support
 
 major=2
-minor=4
+minor=5
 patch=0
 
 base_version=${major}.${minor}.${patch}