2 * ================================================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ================================================================================
20 package org.openecomp.portalapp.portal.service;
22 import static org.junit.Assert.assertEquals;
24 import java.util.ArrayList;
25 import java.util.List;
27 import org.junit.Before;
28 import org.junit.Test;
29 import org.junit.runner.RunWith;
30 import org.mockito.InjectMocks;
31 import org.mockito.Mock;
32 import org.mockito.Mockito;
33 import org.mockito.MockitoAnnotations;
34 import org.openecomp.portalapp.portal.domain.FunctionalMenuItemWithAppID;
35 import org.openecomp.portalapp.portal.service.FunctionalMenuService;
36 import org.openecomp.portalapp.portal.service.FunctionalMenuServiceImpl;
37 import org.openecomp.portalapp.portal.transport.FavoritesFunctionalMenuItemJson;
38 import org.openecomp.portalapp.portal.transport.FunctionalMenuItem;
39 import org.openecomp.portalapp.portal.transport.FunctionalMenuRole;
40 import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties;
41 import org.openecomp.portalsdk.core.service.DataAccessService;
42 import org.openecomp.portalsdk.core.util.SystemProperties;
43 import org.powermock.api.mockito.PowerMockito;
44 import org.powermock.core.classloader.annotations.PrepareForTest;
45 import org.powermock.modules.junit4.PowerMockRunner;
47 @RunWith(PowerMockRunner.class)
48 @PrepareForTest({SystemProperties.class, EPCommonSystemProperties.class})
49 public class FunctionalMenuMockServiceImplTest {
52 FunctionalMenuService functionalMenuService;
55 DataAccessService dataAccessService;
59 MockitoAnnotations.initMocks(this);
63 FunctionalMenuServiceImpl functionalMenuServiceImpl= new FunctionalMenuServiceImpl();
66 public void assignHelpURLsTest(){
67 List<FunctionalMenuItem> menuItems = new ArrayList<FunctionalMenuItem>();
68 FunctionalMenuItem functionalMenuItem1 = new FunctionalMenuItem();
69 functionalMenuItem1.text = "Contact Us";
70 FunctionalMenuItem functionalMenuItem2 = new FunctionalMenuItem();
71 functionalMenuItem2.text = "Get Access";
72 FunctionalMenuItem functionalMenuItem3 = new FunctionalMenuItem();
73 functionalMenuItem3.text = "User Guide";
74 menuItems.add(functionalMenuItem1);
75 menuItems.add(functionalMenuItem2);
76 menuItems.add(functionalMenuItem3);
78 PowerMockito.mockStatic(SystemProperties.class);
79 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.USER_GUIDE_URL)).thenReturn("http://todo_enter_user_guide_link");
80 // Mockito.doNothing().when(functionalMenuServiceImpl).assignHelpURLs(menuItems);
81 functionalMenuServiceImpl.assignHelpURLs(menuItems);
85 public void getFunctionalMenuItemsTest(){
86 String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id FROM fn_menu_functional m, "
87 + "fn_menu_functional_roles r WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' "
88 + "UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn,-1 app_id FROM fn_menu_functional m "
89 + "WHERE m.url='' AND UPPER(m.active_yn) = 'Y'";
90 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
91 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
93 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
95 actualResult = functionalMenuServiceImpl.getFunctionalMenuItems(true);
96 assertEquals(actualResult, expectedResult);
100 public void getFunctionalMenuItemsNegativeTest(){
101 String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id FROM fn_menu_functional m, "
102 + "fn_menu_functional_roles r WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' "
103 + "UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn,-1 app_id FROM fn_menu_functional m "
104 + "WHERE m.url='' AND UPPER(m.active_yn) = 'Y'";
105 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
106 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
108 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
110 actualResult = functionalMenuServiceImpl.getFunctionalMenuItems(false);
111 assertEquals(actualResult, expectedResult);
115 public void getFunctionalMenuItemsForNotificationTreeTest(){
116 String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id FROM fn_menu_functional m, fn_menu_functional_roles r "
117 + "WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id,"
118 + " m.url, m.active_yn,-1 app_id FROM fn_menu_functional m WHERE m.url='' AND UPPER(m.active_yn) = 'Y'";
119 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
120 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
122 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
124 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForNotificationTree(true);
125 assertEquals(actualResult, expectedResult);
130 public void getFunctionalMenuItemsForNotificationNegativeTreeTest(){
131 String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn, r.app_id FROM fn_menu_functional m, fn_menu_functional_roles r "
132 + "WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id,"
133 + " m.url, m.active_yn,-1 app_id FROM fn_menu_functional m WHERE m.url='' AND UPPER(m.active_yn) = 'Y'";
134 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
135 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
137 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
139 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForNotificationTree(false);
140 assertEquals(actualResult, expectedResult);
144 public void getFunctionalMenuItemsForAppTest(){
145 String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn "
146 + "FROM fn_menu_functional m, fn_menu_functional m1, fn_menu_functional_ancestors a, fn_menu_functional_roles mr "
147 + "WHERE mr.app_id='1' AND mr.menu_id = m.menu_id AND UPPER(m.active_yn) = 'Y' AND UPPER(m1.active_yn) ='Y' AND a.menu_id = m.menu_id "
148 + "AND a.ancestor_menu_id = m1.menu_id";
150 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
151 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
153 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
155 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForApp(appId);
156 assertEquals(actualResult, expectedResult);
160 public void getFunctionalMenuItemsForUserTest(){
161 String orgUserId = "test";
162 String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn "
163 + "FROM fn_menu_functional m, fn_menu_functional m1, fn_menu_functional_ancestors a, fn_menu_functional_roles mr, fn_user u , fn_user_role ur "
164 + "WHERE u.org_user_id='test' AND u.user_id = ur.user_id AND ur.app_id = mr.app_id AND (ur.role_id = mr.role_id OR ur.role_id = '999') "
165 + "AND m.menu_id = mr.menu_id AND UPPER(m.active_yn) = 'Y' AND UPPER(m1.active_yn) ='Y' AND a.menu_id = m.menu_id "
166 + "AND a.ancestor_menu_id = m1.menu_id UNION select m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m1.active_yn "
167 + "FROM fn_menu_functional m, fn_menu_functional_roles mr, fn_menu_functional m1, fn_menu_functional_ancestors a where a.menu_id = m.menu_id AND a.ancestor_menu_id = m1.menu_id AND m.menu_id != m1.menu_id AND m.menu_id = mr.menu_id AND mr.role_id = '900' AND UPPER(m.active_yn) = 'Y' AND UPPER(m1.active_yn) ='Y' UNION SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn FROM fn_menu_functional m WHERE m.text in ('Favorites','Get Access','Contact Us','Support','User Guide','Help')";
168 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
169 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
171 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
173 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForUser(orgUserId);
174 assertEquals(actualResult, expectedResult);
178 public void getFunctionalMenuItemDetailsTest(){
180 String sql = "SELECT * FROM fn_menu_functional_roles WHERE menu_id = '1'";
181 FunctionalMenuItem actualResult = null;
182 FunctionalMenuItem expectedResult = null;
183 List<FunctionalMenuRole> roleItems = new ArrayList<FunctionalMenuRole>();
184 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(roleItems);
186 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemDetails(menuid);
187 assertEquals(actualResult, expectedResult);
191 public void getFavoriteItemsTest(){
192 Long userId = (long)1;
193 String sql = "SELECT DISTINCT f.user_id,f.menu_id,m.text,m.url "
194 + "FROM fn_menu_favorites f, fn_menu_functional m, fn_menu_functional_roles mr "
195 + "WHERE f.user_id='1' AND f.menu_id = m.menu_id AND f.menu_id = mr.menu_id AND mr.role_id != '900' ";
196 List<FavoritesFunctionalMenuItemJson> actualResult = new ArrayList<FavoritesFunctionalMenuItemJson>();
197 List<FavoritesFunctionalMenuItemJson> expectedResult = new ArrayList<FavoritesFunctionalMenuItemJson>();
199 Mockito.when(dataAccessService.executeSQLQuery(sql, FavoritesFunctionalMenuItemJson.class, null)).thenReturn(expectedResult);
201 actualResult = functionalMenuServiceImpl.getFavoriteItems(userId);
202 assertEquals(actualResult, expectedResult);