2 * ============LICENSE_START==========================================
4 * ===================================================================
5 * Copyright © 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============================================
39 package org.onap.portalapp.controller.core;
41 import static org.junit.Assert.assertEquals;
42 import static org.junit.Assert.assertNull;
44 import java.io.BufferedReader;
45 import java.io.IOException;
46 import java.io.PrintWriter;
47 import java.io.StringReader;
48 import java.io.StringWriter;
49 import java.util.ArrayList;
50 import java.util.List;
53 import javax.servlet.http.HttpServletRequest;
54 import javax.servlet.http.HttpServletResponse;
55 import javax.servlet.http.HttpSession;
57 import org.junit.Assert;
58 import org.junit.Before;
59 import org.junit.Test;
60 import org.junit.runner.RunWith;
61 import org.mockito.InjectMocks;
62 import org.mockito.Mock;
63 import org.mockito.Mockito;
64 import org.mockito.MockitoAnnotations;
65 import org.onap.portalapp.framework.MockitoTestSuite;
66 import org.onap.portalsdk.core.domain.Menu;
67 import org.onap.portalsdk.core.domain.MenuData;
68 import org.onap.portalsdk.core.domain.RoleFunction;
69 import org.onap.portalsdk.core.domain.User;
70 import org.onap.portalsdk.core.menu.MenuBuilder;
71 import org.onap.portalsdk.core.service.AppService;
72 import org.onap.portalsdk.core.service.DataAccessService;
73 import org.onap.portalsdk.core.service.FnMenuService;
74 import org.onap.portalsdk.core.service.FunctionalMenuListService;
75 import org.onap.portalsdk.core.web.support.UserUtils;
76 import org.powermock.api.mockito.PowerMockito;
77 import org.powermock.core.classloader.annotations.PrepareForTest;
78 import org.powermock.modules.junit4.PowerMockRunner;
79 import org.springframework.mock.web.MockHttpServletRequest;
81 import com.fasterxml.jackson.databind.ObjectMapper;
83 @RunWith(PowerMockRunner.class)
84 @PrepareForTest({UserUtils.class})
85 public class FnMenuControllerTest {
88 FnMenuController fnMenuController = new FnMenuController();
91 FnMenuService fnMenuService;
94 FunctionalMenuListService functionalMenuListService;
97 private MenuBuilder menuBuilder;
100 private DataAccessService dataAccessService;
103 private AppService appService;
106 public void setup() {
107 MockitoAnnotations.initMocks(this);
110 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
112 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
113 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
115 NullPointerException nullPointerException = new NullPointerException();
117 User user = new User();
120 UserUtils userUtils = new UserUtils();
123 ObjectMapper mapper = new ObjectMapper();
126 public void getParentListTest() throws Exception{
127 @SuppressWarnings("rawtypes")
128 List<List> list = new ArrayList<>();
129 Mockito.when(fnMenuService.getParentList()).thenReturn(list);
130 StringWriter sw = new StringWriter();
131 PrintWriter writer = new PrintWriter(sw);
132 Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
133 fnMenuController.getParentList(mockedRequest, mockedResponse);
137 public void getParentListExceptionTest() throws Exception{
138 Mockito.when(fnMenuService.getParentList()).thenThrow(nullPointerException);
139 StringWriter sw = new StringWriter();
140 PrintWriter writer = new PrintWriter(sw);
141 Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
142 fnMenuController.getParentList(mockedRequest, mockedResponse);
146 public void getFunctionCDListTest() throws Exception{
147 List<RoleFunction> roleFunctionList = new ArrayList<RoleFunction>();
148 Mockito.when(functionalMenuListService.getFunctionCDList(mockedRequest)).thenReturn(roleFunctionList);
149 StringWriter sw = new StringWriter();
150 PrintWriter writer = new PrintWriter(sw);
151 Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
152 fnMenuController.getFunctionCDList(mockedRequest, mockedResponse);
156 public void getFunctionCDListExceptionTest() throws Exception{
157 Mockito.when(functionalMenuListService.getFunctionCDList(mockedRequest)).thenThrow(nullPointerException);
158 StringWriter sw = new StringWriter();
159 PrintWriter writer = new PrintWriter(sw);
160 Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
161 fnMenuController.getFunctionCDList(mockedRequest, mockedResponse);
165 public void getFnMenuListTest() throws IOException{
166 List<MenuData> menuList = new ArrayList<>();
167 MenuData menudata = new MenuData();
168 menudata.setId((long) 1);
169 menudata.setLabel("test");
170 menudata.setParentMenu(menudata);
171 menuList.add(menudata);
172 Mockito.when(fnMenuService.getFnMenuItems()).thenReturn(menuList);
173 StringWriter sw = new StringWriter();
174 PrintWriter writer = new PrintWriter(sw);
175 Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
176 fnMenuController.getFnMenuList(mockedRequest, mockedResponse);
180 public void getFnMenuListExceptionTest() throws IOException{
181 List<MenuData> menuList = new ArrayList<>();
182 MenuData menudata = new MenuData();
183 menudata.setId((long) 1);
184 menudata.setLabel("test");
185 menudata.setParentMenu(menudata);
186 menuList.add(menudata);
187 Mockito.when(fnMenuService.getFnMenuItems()).thenThrow(nullPointerException);
188 fnMenuController.getFnMenuList(mockedRequest, mockedResponse);
192 public void updateFnMenuTest() throws Exception{
194 String fnMenuItem = "{\"availableFnMenuItem\":{\"id\":9,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\""
195 + ":null,\"auditTrail\":null,\"menuLevel\":null,\"label\":\"Profile\",\"parentId\":1,\"action\":\"userProfile\",\"functionCd\":\"menu_profile\","
196 + "\"sortOrder\":90,\"servlet\":\"N/A\",\"queryString\":\"N/A\",\"externalUrl\":\"test\",\"target\":\"N/A\",\"active\":true,\"menuSetCode\":\"APP\","
197 + "\"separator\":false,\"imageSrc\":\"icon-people-oneperson\",\"parentMenu\":null,\"childMenus\":[],\"activeAsString\":\"true\","
198 + "\"parentIdAsString\":\"1\",\"separatorAsString\":\"false\",\"active_yn\":false,\"$$hashKey\":\"object:99\"}}";
199 Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(fnMenuItem)));
200 StringWriter sw = new StringWriter();
201 PrintWriter writer = new PrintWriter(sw);
202 Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
203 assertNull(fnMenuController.updateFnMenu(mockedRequest, mockedResponse));
207 public void updateFnMenuExceptionTest() throws Exception{
208 Menu fnMenuItemObj = new Menu();
209 fnMenuItemObj.setLabel("test");
210 StringWriter sw = new StringWriter();
211 PrintWriter writer = new PrintWriter(sw);
212 Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
213 assertNull(fnMenuController.updateFnMenu(mockedRequest, mockedResponse));
217 public void removeFnMenuTest() throws Exception{
218 String fnMenuItem = "{\"fnMenuItem\":{\"id\":9,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\""
219 + ":null,\"auditTrail\":null,\"menuLevel\":null,\"label\":\"Profile\",\"parentId\":1,\"action\":\"userProfile\",\"functionCd\":\"menu_profile\","
220 + "\"sortOrder\":90,\"servlet\":\"N/A\",\"queryString\":\"N/A\",\"externalUrl\":\"test\",\"target\":\"N/A\",\"active\":true,\"menuSetCode\":\"APP\","
221 + "\"separator\":false,\"imageSrc\":\"icon-people-oneperson\",\"parentMenu\":null,\"childMenus\":[],\"activeAsString\":\"true\","
222 + "\"parentIdAsString\":\"1\",\"separatorAsString\":\"false\",\"active_yn\":false,\"$$hashKey\":\"object:99\"}}";
223 Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(fnMenuItem)));
224 StringWriter sw = new StringWriter();
225 PrintWriter writer = new PrintWriter(sw);
226 Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
227 assertNull(fnMenuController.removeFnMenu(mockedRequest, mockedResponse));
231 public void removeFnMenuExceptionTest() throws Exception{
232 String fnMenuItem = "{\"availableFnMenuItem\":{\"id\":9,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\""
233 + ":null,\"auditTrail\":null,\"menuLevel\":null,\"label\":\"Profile\",\"parentId\":1,\"action\":\"userProfile\",\"functionCd\":\"menu_profile\","
234 + "\"sortOrder\":90,\"servlet\":\"N/A\",\"queryString\":\"N/A\",\"externalUrl\":\"test\",\"target\":\"N/A\",\"active\":true,\"menuSetCode\":\"APP\","
235 + "\"separator\":false,\"imageSrc\":\"icon-people-oneperson\",\"parentMenu\":null,\"childMenus\":[],\"activeAsString\":\"true\","
236 + "\"parentIdAsString\":\"1\",\"separatorAsString\":\"false\",\"active_yn\":false,\"$$hashKey\":\"object:99\"}}";
237 Mockito.when(mockedRequest.getReader()).thenReturn(new BufferedReader(new StringReader(fnMenuItem)));
238 StringWriter sw = new StringWriter();
239 PrintWriter writer = new PrintWriter(sw);
240 Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
241 assertNull(fnMenuController.removeFnMenu(mockedRequest, mockedResponse));
245 public void getViewNameTest() {
246 String expectedResult = "test";
247 fnMenuController.setViewName(expectedResult);
248 String actualResult = fnMenuController.getViewName();
249 assertEquals(expectedResult, actualResult);
253 public void getMenuTest() {
254 HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
255 PowerMockito.mockStatic(UserUtils.class);
256 HttpSession session = Mockito.mock(HttpSession.class);
257 Mockito.when(request.getSession()).thenReturn(session);
258 Mockito.when(UserUtils.getUserSession(request)).thenReturn(new User());
259 Map<String, Object> model = fnMenuController.getMenu(request);
260 Assert.assertTrue(model.size() > 0 );