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.test.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.portalapp.test.framework.ApplicationCommonContextTestSuite;
42 import org.openecomp.portalsdk.core.service.DataAccessService;
43 import org.openecomp.portalsdk.core.util.SystemProperties;
44 import org.powermock.api.mockito.PowerMockito;
45 import org.powermock.core.classloader.annotations.PrepareForTest;
46 import org.powermock.modules.junit4.PowerMockRunner;
48 @RunWith(PowerMockRunner.class)
49 @PrepareForTest({SystemProperties.class, EPCommonSystemProperties.class})
50 public class FunctionalMenuMockServiceImplTest extends ApplicationCommonContextTestSuite {
53 FunctionalMenuService functionalMenuService;
56 DataAccessService dataAccessService;
60 MockitoAnnotations.initMocks(this);
64 FunctionalMenuServiceImpl functionalMenuServiceImpl= new FunctionalMenuServiceImpl();
67 public void assignHelpURLsTest(){
68 List<FunctionalMenuItem> menuItems = new ArrayList<FunctionalMenuItem>();
69 FunctionalMenuItem functionalMenuItem1 = new FunctionalMenuItem();
70 functionalMenuItem1.text = "Contact Us";
71 FunctionalMenuItem functionalMenuItem2 = new FunctionalMenuItem();
72 functionalMenuItem2.text = "Get Access";
73 FunctionalMenuItem functionalMenuItem3 = new FunctionalMenuItem();
74 functionalMenuItem3.text = "User Guide";
75 menuItems.add(functionalMenuItem1);
76 menuItems.add(functionalMenuItem2);
77 menuItems.add(functionalMenuItem3);
79 PowerMockito.mockStatic(SystemProperties.class);
80 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.USER_GUIDE_URL)).thenReturn("http://todo_enter_user_guide_link");
81 // Mockito.doNothing().when(functionalMenuServiceImpl).assignHelpURLs(menuItems);
82 functionalMenuServiceImpl.assignHelpURLs(menuItems);
86 public void getFunctionalMenuItemsTest(){
87 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, "
88 + "fn_menu_functional_roles r WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' "
89 + "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 "
90 + "WHERE m.url='' AND UPPER(m.active_yn) = 'Y'";
91 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
92 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
94 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
96 actualResult = functionalMenuServiceImpl.getFunctionalMenuItems(true);
97 assertEquals(actualResult, expectedResult);
101 public void getFunctionalMenuItemsNegativeTest(){
102 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, "
103 + "fn_menu_functional_roles r WHERE m.menu_id = r.menu_id AND UPPER(m.active_yn) = 'Y' AND r.role_id != '900' "
104 + "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 "
105 + "WHERE m.url='' AND UPPER(m.active_yn) = 'Y'";
106 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
107 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
109 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
111 actualResult = functionalMenuServiceImpl.getFunctionalMenuItems(false);
112 assertEquals(actualResult, expectedResult);
116 public void getFunctionalMenuItemsForNotificationTreeTest(){
117 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 "
118 + "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,"
119 + " m.url, m.active_yn,-1 app_id FROM fn_menu_functional m WHERE m.url='' AND UPPER(m.active_yn) = 'Y'";
120 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
121 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
123 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
125 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForNotificationTree(true);
126 assertEquals(actualResult, expectedResult);
131 public void getFunctionalMenuItemsForNotificationNegativeTreeTest(){
132 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 "
133 + "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,"
134 + " m.url, m.active_yn,-1 app_id FROM fn_menu_functional m WHERE m.url='' AND UPPER(m.active_yn) = 'Y'";
135 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
136 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
138 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
140 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForNotificationTree(false);
141 assertEquals(actualResult, expectedResult);
145 public void getFunctionalMenuItemsForAppTest(){
146 String sql = "SELECT DISTINCT m1.menu_id, m1.column_num, m1.text, m1.parent_menu_id, m1.url, m.active_yn "
147 + "FROM fn_menu_functional m, fn_menu_functional m1, fn_menu_functional_ancestors a, fn_menu_functional_roles mr "
148 + "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 "
149 + "AND a.ancestor_menu_id = m1.menu_id";
151 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
152 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
154 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
156 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForApp(appId);
157 assertEquals(actualResult, expectedResult);
161 public void getFunctionalMenuItemsForUserTest(){
162 String orgUserId = "test";
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, fn_user u , fn_user_role ur "
165 + "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') "
166 + "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 "
167 + "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 "
168 + "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')";
169 List<FunctionalMenuItem> actualResult = new ArrayList<FunctionalMenuItem>();
170 List<FunctionalMenuItem> expectedResult = new ArrayList<FunctionalMenuItem>();
172 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(expectedResult);
174 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemsForUser(orgUserId);
175 assertEquals(actualResult, expectedResult);
179 public void getFunctionalMenuItemDetailsTest(){
181 String sql = "SELECT * FROM fn_menu_functional_roles WHERE menu_id = '1'";
182 FunctionalMenuItem actualResult = null;
183 FunctionalMenuItem expectedResult = null;
184 List<FunctionalMenuRole> roleItems = new ArrayList<FunctionalMenuRole>();
185 Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItemWithAppID.class, null)).thenReturn(roleItems);
187 actualResult = functionalMenuServiceImpl.getFunctionalMenuItemDetails(menuid);
188 assertEquals(actualResult, expectedResult);
192 public void getFavoriteItemsTest(){
193 Long userId = (long)1;
194 String sql = "SELECT DISTINCT f.user_id,f.menu_id,m.text,m.url "
195 + "FROM fn_menu_favorites f, fn_menu_functional m, fn_menu_functional_roles mr "
196 + "WHERE f.user_id='1' AND f.menu_id = m.menu_id AND f.menu_id = mr.menu_id AND mr.role_id != '900' ";
197 List<FavoritesFunctionalMenuItemJson> actualResult = new ArrayList<FavoritesFunctionalMenuItemJson>();
198 List<FavoritesFunctionalMenuItemJson> expectedResult = new ArrayList<FavoritesFunctionalMenuItemJson>();
200 Mockito.when(dataAccessService.executeSQLQuery(sql, FavoritesFunctionalMenuItemJson.class, null)).thenReturn(expectedResult);
202 actualResult = functionalMenuServiceImpl.getFavoriteItems(userId);
203 assertEquals(actualResult, expectedResult);