2 * ============LICENSE_START==========================================
4 * ===================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ===================================================================
8 * Unless otherwise specified, all software contained herein is licensed
9 * under the Apache License, Version 2.0 (the "License");
10 * you may not use this software except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
21 * Unless otherwise specified, all documentation contained herein is licensed
22 * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23 * you may not use this documentation except in compliance with the License.
24 * You may obtain a copy of the License at
26 * https://creativecommons.org/licenses/by/4.0/
28 * Unless required by applicable law or agreed to in writing, documentation
29 * distributed under the License is distributed on an "AS IS" BASIS,
30 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31 * See the License for the specific language governing permissions and
32 * limitations under the License.
34 * ============LICENSE_END============================================
38 package org.onap.portalapp.portal.service;
40 import static org.junit.Assert.assertEquals;
42 import java.util.ArrayList;
43 import java.util.List;
45 import org.junit.Before;
46 import org.junit.Test;
47 import org.junit.runner.RunWith;
48 import org.mockito.InjectMocks;
49 import org.mockito.Mock;
50 import org.mockito.Mockito;
51 import org.mockito.MockitoAnnotations;
52 import org.onap.portalapp.portal.domain.FunctionalMenuItemWithAppID;
53 import org.onap.portalapp.portal.service.FunctionalMenuService;
54 import org.onap.portalapp.portal.service.FunctionalMenuServiceImpl;
55 import org.onap.portalapp.portal.transport.FavoritesFunctionalMenuItemJson;
56 import org.onap.portalapp.portal.transport.FunctionalMenuItem;
57 import org.onap.portalapp.portal.transport.FunctionalMenuRole;
58 import org.onap.portalapp.portal.utils.EPCommonSystemProperties;
59 import org.onap.portalsdk.core.service.DataAccessService;
60 import org.onap.portalsdk.core.util.SystemProperties;
61 import org.powermock.api.mockito.PowerMockito;
62 import org.powermock.core.classloader.annotations.PrepareForTest;
63 import org.powermock.modules.junit4.PowerMockRunner;
65 @RunWith(PowerMockRunner.class)
66 @PrepareForTest({SystemProperties.class, EPCommonSystemProperties.class})
67 public class FunctionalMenuMockServiceImplTest {
70 FunctionalMenuService functionalMenuService;
73 DataAccessService dataAccessService;
77 MockitoAnnotations.initMocks(this);
81 FunctionalMenuServiceImpl functionalMenuServiceImpl= new FunctionalMenuServiceImpl();
84 public void assignHelpURLsTest(){
85 List<FunctionalMenuItem> menuItems = new ArrayList<FunctionalMenuItem>();
86 FunctionalMenuItem functionalMenuItem1 = new FunctionalMenuItem();
87 functionalMenuItem1.text = "Contact Us";
88 FunctionalMenuItem functionalMenuItem2 = new FunctionalMenuItem();
89 functionalMenuItem2.text = "Get Access";
90 FunctionalMenuItem functionalMenuItem3 = new FunctionalMenuItem();
91 functionalMenuItem3.text = "User Guide";
92 menuItems.add(functionalMenuItem1);
93 menuItems.add(functionalMenuItem2);
94 menuItems.add(functionalMenuItem3);
96 PowerMockito.mockStatic(SystemProperties.class);
97 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.USER_GUIDE_URL)).thenReturn("http://todo_enter_user_guide_link");
98 // Mockito.doNothing().when(functionalMenuServiceImpl).assignHelpURLs(menuItems);
99 functionalMenuServiceImpl.assignHelpURLs(menuItems);
103 public void getFunctionalMenuItemsTest(){
104 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, "
105 + "fn_menu_functional_roles r WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' "
106 + "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 "
107 + "WHERE m.url='' AND UPPER(m.active_yn) = 'Y'";
108 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
109 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
111 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
113 actualResult = functionalMenuServiceImpl.getFunctionalMenuItems(true);
114 assertEquals(actualResult, expectedResult);
118 public void getFunctionalMenuItemsNegativeTest(){
119 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, "
120 + "fn_menu_functional_roles r WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' "
121 + "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 "
122 + "WHERE m.url='' AND UPPER(m.active_yn) = 'Y'";
123 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
124 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
126 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
128 actualResult = functionalMenuServiceImpl.getFunctionalMenuItems(false);
129 assertEquals(actualResult, expectedResult);
133 public void getFunctionalMenuItemsForNotificationTreeTest(){
134 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 "
135 + "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,"
136 + " m.url, m.active_yn,-1 app_id FROM fn_menu_functional m WHERE m.url='' AND UPPER(m.active_yn) = 'Y'";
137 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
138 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
140 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
142 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForNotificationTree(true);
143 assertEquals(actualResult, expectedResult);
148 public void getFunctionalMenuItemsForNotificationNegativeTreeTest(){
149 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 "
150 + "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,"
151 + " m.url, m.active_yn,-1 app_id FROM fn_menu_functional m WHERE m.url='' AND UPPER(m.active_yn) = 'Y'";
152 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
153 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
155 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
157 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForNotificationTree(false);
158 assertEquals(actualResult, expectedResult);
162 public void getFunctionalMenuItemsForAppTest(){
163 String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn "
164 + "FROM fn_menu_functional m, fn_menu_functional m1, fn_menu_functional_ancestors a, fn_menu_functional_roles mr "
165 + "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 "
166 + "AND a.ancestor_menu_id = m1.menu_id";
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.getFunctionalMenuItemsForApp(appId);
174 assertEquals(actualResult, expectedResult);
178 public void getFunctionalMenuItemsForUserTest(){
179 String orgUserId = "test";
180 String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn "
181 + "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 "
182 + "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') "
183 + "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 "
184 + "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 "
185 + "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')";
186 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
187 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
189 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
191 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForUser(orgUserId);
192 assertEquals(actualResult, expectedResult);
196 public void getFunctionalMenuItemDetailsTest(){
198 String sql = "SELECT * FROM fn_menu_functional_roles WHERE menu_id = '1'";
199 FunctionalMenuItem actualResult = null;
200 FunctionalMenuItem expectedResult = null;
201 List<FunctionalMenuRole> roleItems = new ArrayList<FunctionalMenuRole>();
202 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(roleItems);
204 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemDetails(menuid);
205 assertEquals(actualResult, expectedResult);
209 public void getFavoriteItemsTest(){
210 Long userId = (long)1;
211 String sql = "SELECT DISTINCT f.user_id,f.menu_id,m.text,m.url "
212 + "FROM fn_menu_favorites f, fn_menu_functional m, fn_menu_functional_roles mr "
213 + "WHERE f.user_id='1' AND f.menu_id = m.menu_id AND f.menu_id = mr.menu_id AND mr.role_id != '900' ";
214 List<FavoritesFunctionalMenuItemJson> actualResult = new ArrayList<FavoritesFunctionalMenuItemJson>();
215 List<FavoritesFunctionalMenuItemJson> expectedResult = new ArrayList<FavoritesFunctionalMenuItemJson>();
217 Mockito.when(dataAccessService.executeSQLQuery(sql, FavoritesFunctionalMenuItemJson.class, null)).thenReturn(expectedResult);
219 actualResult = functionalMenuServiceImpl.getFavoriteItems(userId);
220 assertEquals(actualResult, expectedResult);