2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (C) 2019 Samsung
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file 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.
20 * ============LICENSE_END=========================================================
23 package org.onap.policy.admin;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertFalse;
27 import static org.junit.Assert.assertNotNull;
28 import static org.junit.Assert.assertTrue;
29 import static org.junit.Assert.fail;
31 import java.io.BufferedReader;
33 import java.io.IOException;
34 import java.io.InputStream;
35 import java.io.PrintWriter;
36 import java.io.StringReader;
37 import java.util.ArrayList;
38 import java.util.Collections;
39 import java.util.Date;
40 import java.util.HashSet;
41 import java.util.List;
43 import javax.json.JsonArray;
44 import javax.script.SimpleBindings;
45 import javax.servlet.ServletConfig;
46 import javax.servlet.http.HttpServletRequest;
47 import javax.servlet.http.HttpServletResponse;
48 import javax.servlet.http.HttpSession;
49 import org.apache.commons.fileupload.FileItem;
50 import org.apache.commons.fileupload.servlet.ServletFileUpload;
51 import org.apache.commons.io.IOUtils;
52 import org.json.JSONArray;
53 import org.json.JSONObject;
54 import org.junit.Before;
55 import org.junit.FixMethodOrder;
56 import org.junit.Ignore;
57 import org.junit.Test;
58 import org.junit.runner.RunWith;
59 import org.junit.runners.MethodSorters;
60 import org.mockito.Mockito;
61 import org.onap.policy.common.logging.flexlogger.FlexLogger;
62 import org.onap.policy.common.logging.flexlogger.Logger;
63 import org.onap.policy.controller.CreateDcaeMicroServiceController;
64 import org.onap.policy.controller.PolicyController;
65 import org.onap.policy.model.Roles;
66 import org.onap.policy.rest.dao.CommonClassDao;
67 import org.onap.policy.rest.jpa.ActionBodyEntity;
68 import org.onap.policy.rest.jpa.ConfigurationDataEntity;
69 import org.onap.policy.rest.jpa.GroupPolicyScopeList;
70 import org.onap.policy.rest.jpa.PolicyEditorScopes;
71 import org.onap.policy.rest.jpa.PolicyEntity;
72 import org.onap.policy.rest.jpa.PolicyVersion;
73 import org.onap.policy.rest.jpa.UserInfo;
74 import org.onap.policy.utils.UserUtils.Pair;
75 import org.onap.portalsdk.core.domain.User;
76 import org.onap.portalsdk.core.util.SystemProperties;
77 import org.onap.portalsdk.core.web.support.UserUtils;
78 import org.powermock.api.mockito.PowerMockito;
79 import org.powermock.core.classloader.annotations.PowerMockIgnore;
80 import org.powermock.core.classloader.annotations.PrepareForTest;
81 import org.powermock.modules.junit4.PowerMockRunner;
82 import org.powermock.reflect.Whitebox;
83 import org.springframework.mock.web.MockHttpServletResponse;
85 @RunWith(PowerMockRunner.class)
86 @PowerMockIgnore({"com.sun.org.apache.xerces.*", "jdk.internal.reflect.*", "javax.xml.*", "org.xml.*", "org.w3c.*"})
87 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
88 public class PolicyManagerServletTest extends Mockito {
90 private static Logger logger = FlexLogger.getLogger(PolicyManagerServletTest.class);
91 private List<String> headers = new ArrayList<String>();
93 private static List<Object> rolesdata;
94 private static List<Object> basePolicyData;
95 private static List<Object> policyEditorScopes;
96 private static List<Object> policyVersion;
97 private static CommonClassDao commonClassDao;
98 private ConfigurationDataEntity configurationEntity;
99 private HttpServletRequest request;
100 private MockHttpServletResponse response;
105 * @throws Exception should not get one
108 public void setUp() throws Exception {
109 logger.info("setUp: Entering");
111 request = mock(HttpServletRequest.class);
112 response = new MockHttpServletResponse();
114 PolicyController.setjUnit(true);
115 UserInfo userinfo = new UserInfo();
116 userinfo.setUserLoginId("Test");
117 userinfo.setUserName("Test");
119 rolesdata = new ArrayList<>();
120 Roles roles = new Roles();
121 roles.setLoginId("Test");
122 roles.setRole("super-admin");
123 Roles roles1 = new Roles();
125 roles1.setName("Test");
126 assertTrue("Test".equals(roles1.getName()));
127 roles1.setLoginId("Test");
128 roles1.setRole("admin");
129 roles1.setScope("['com','Test']");
130 rolesdata.add(roles);
131 rolesdata.add(roles1);
134 basePolicyData = new ArrayList<>();
135 String policyContent = "";
137 ClassLoader classLoader = getClass().getClassLoader();
138 policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml"));
139 } catch (Exception e1) {
140 logger.error("Exception Occured" + e1);
142 PolicyEntity entity = new PolicyEntity();
143 entity.setPolicyName("Config_SampleTest.1.xml");
144 entity.setPolicyData(policyContent);
145 entity.setScope("com");
146 configurationEntity = new ConfigurationDataEntity();
147 configurationEntity.setConfigBody("Sample Test");
148 configurationEntity.setConfigType("OTHER");
149 configurationEntity.setConfigurationName("com.Config_SampleTest1206.1.txt");
150 configurationEntity.setDescription("test");
151 entity.setConfigurationData(configurationEntity);
152 basePolicyData.add(entity);
154 // PolicyEditorScopes data
155 policyEditorScopes = new ArrayList<>();
156 PolicyEditorScopes scopes = new PolicyEditorScopes();
157 scopes.setScopeName("com");
158 scopes.setUserCreatedBy(userinfo);
159 scopes.setUserModifiedBy(userinfo);
160 PolicyEditorScopes scopes1 = new PolicyEditorScopes();
161 scopes1.setScopeName("com\\Test");
162 scopes1.setUserCreatedBy(userinfo);
163 scopes1.setUserModifiedBy(userinfo);
164 policyEditorScopes.add(scopes);
165 policyEditorScopes.add(scopes1);
167 // PolicyVersion data
168 policyVersion = new ArrayList<>();
169 PolicyVersion policy = new PolicyVersion();
170 policy.setPolicyName("com\\Config_SampleTest1206");
171 policy.setActiveVersion(1);
172 policy.setHigherVersion(1);
173 policy.setCreatedBy("Test");
174 policy.setModifiedBy("Test");
175 policyVersion.add(policy);
177 HttpSession mockSession = mock(HttpSession.class);
178 User user = new User();
179 user.setOrgUserId("Test");
180 Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))).thenReturn(user);
181 Mockito.when(request.getSession(false)).thenReturn(mockSession);
182 commonClassDao = mock(CommonClassDao.class);
187 public void test01Init() {
188 PolicyManagerServlet servlet = new PolicyManagerServlet();
189 ServletConfig servletConfig = mock(ServletConfig.class);
191 when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers));
192 when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties");
193 System.setProperty("xacml.rest.admin.closedLoopJSON",
194 new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator
195 + "resources" + File.separator + "JSONConfig.json");
196 servlet.init(servletConfig);
198 assertTrue(PolicyManagerServlet.getServiceTypeNamesList().size() > 0);
199 assertTrue(PolicyManagerServlet.getPolicyNames().size() > 0);
201 } catch (Exception e1) {
202 logger.error("Exception Occured" + e1);
208 public void test02BadInitJson() {
209 PolicyManagerServlet servlet = new PolicyManagerServlet();
210 ServletConfig servletConfig = mock(ServletConfig.class);
212 when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers));
213 when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties");
214 System.setProperty("xacml.rest.admin.closedLoopJSON",
215 new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator
216 + "resources" + File.separator + "JSONConfig.foo");
217 servlet.init(servletConfig);
218 } catch (Exception e1) {
219 logger.error("Exception Occured" + e1);
225 public void test03BadInitJsonInvalidFile() {
226 PolicyManagerServlet servlet = new PolicyManagerServlet();
227 ServletConfig servletConfig = mock(ServletConfig.class);
229 when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers));
230 when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties");
231 System.setProperty("xacml.rest.admin.closedLoopJSON",
232 new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator
233 + "resources" + File.separator + "IDonotExist.json");
234 servlet.init(servletConfig);
235 } catch (Exception e1) {
236 logger.error("Exception Occured" + e1);
241 @SuppressWarnings("static-access")
243 public void test04DescribePolicy() {
244 PolicyManagerServlet servlet = new PolicyManagerServlet();
245 PolicyController controller = mock(PolicyController.class);
246 BufferedReader reader = new BufferedReader(
247 new StringReader("{params: { mode: 'DESCRIBEPOLICYFILE', path: 'com.Config_SampleTest1206.1.xml'}}"));
249 when(request.getReader()).thenReturn(reader);
250 String query = "FROM PolicyEntity where policyName = :split_1 and scope = :split_0";
251 when(controller.getDataByQuery(query, null)).thenReturn(basePolicyData);
252 servlet.setPolicyController(controller);
253 servlet.doPost(request, response);
254 } catch (Exception e1) {
255 logger.error("Exception Occured" + e1);
260 @SuppressWarnings("static-access")
262 public void test05PolicyScopeList() {
263 PolicyManagerServlet servlet = new PolicyManagerServlet();
264 PolicyController controller = mock(PolicyController.class);
265 List<String> list = new ArrayList<>();
266 list.add("{params: { mode: 'LIST', path: '/', onlyFolders: false}}");
267 list.add("{params: { mode: 'LIST', path: '/com', onlyFolders: false}}");
268 for (int i = 0; i < list.size(); i++) {
269 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
271 when(request.getReader()).thenReturn(reader);
272 when(controller.getRoles("Test")).thenReturn(rolesdata);
273 when(controller.getDataByQuery("from PolicyEditorScopes", null)).thenReturn(policyEditorScopes);
274 when(controller.getDataByQuery("from PolicyEditorScopes where SCOPENAME like :scopeName", null))
275 .thenReturn(policyEditorScopes);
276 when(controller.getDataByQuery("from PolicyVersion where POLICY_NAME like :scopeName", null))
277 .thenReturn(policyVersion);
278 servlet.setPolicyController(controller);
279 servlet.setTestUserId("Test");
280 servlet.doPost(request, response);
281 } catch (Exception e1) {
282 logger.error("Exception Occured" + e1);
288 @SuppressWarnings("static-access")
290 public void test06editBasePolicyTest() {
291 PolicyManagerServlet servlet = new PolicyManagerServlet();
292 PolicyController controller = mock(PolicyController.class);
293 List<String> list = new ArrayList<>();
294 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_SampleTest1206.1.xml', onlyFolders: false}}");
295 for (int i = 0; i < list.size(); i++) {
296 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
298 when(request.getReader()).thenReturn(reader);
299 when(controller.getRoles("Test")).thenReturn(rolesdata);
300 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
301 null)).thenReturn(basePolicyData);
302 servlet.setPolicyController(controller);
303 servlet.setTestUserId("Test");
304 servlet.doPost(request, response);
305 } catch (Exception e1) {
306 logger.error("Exception Occured" + e1);
312 @SuppressWarnings("static-access")
314 public void test07editBRMSParamPolicyTest() {
315 List<Object> policyData = new ArrayList<>();
316 String policyContent = "";
317 String configData = "";
319 ClassLoader classLoader = getClass().getClassLoader();
321 IOUtils.toString(classLoader.getResourceAsStream("Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml"));
323 .toString(classLoader.getResourceAsStream("com.Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.txt"));
324 } catch (Exception e1) {
325 logger.error("Exception Occured" + e1);
327 PolicyEntity entity = new PolicyEntity();
328 entity.setPolicyName("Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml");
329 entity.setPolicyData(policyContent);
330 entity.setScope("com");
331 ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
332 configurationEntity.setConfigBody(configData);
333 configurationEntity.setConfigType("OTHER");
334 configurationEntity.setConfigurationName("com.Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.txt");
335 configurationEntity.setDescription("test");
336 entity.setConfigurationData(configurationEntity);
337 policyData.add(entity);
338 PolicyManagerServlet servlet = new PolicyManagerServlet();
339 PolicyController controller = mock(PolicyController.class);
340 List<String> list = new ArrayList<>();
341 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml',"
342 + " onlyFolders: false}}");
343 for (int i = 0; i < list.size(); i++) {
344 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
346 when(request.getReader()).thenReturn(reader);
347 when(controller.getRoles("Test")).thenReturn(rolesdata);
348 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
349 null)).thenReturn(policyData);
350 servlet.setPolicyController(controller);
351 servlet.setTestUserId("Test");
352 servlet.doPost(request, response);
353 } catch (Exception e1) {
354 logger.error("Exception Occured" + e1);
360 @SuppressWarnings("static-access")
362 public void test08editBRMSRawPolicyTest() {
363 List<Object> policyData = new ArrayList<>();
364 String policyContent = "";
365 String configData = "";
367 ClassLoader classLoader = getClass().getClassLoader();
369 IOUtils.toString(classLoader.getResourceAsStream("Config_BRMS_Raw_TestBRMSRawPolicy.1.xml"));
371 IOUtils.toString(classLoader.getResourceAsStream("com.Config_BRMS_Raw_TestBRMSRawPolicy.1.txt"));
372 } catch (Exception e1) {
373 logger.error("Exception Occured" + e1);
375 PolicyEntity entity = new PolicyEntity();
376 entity.setPolicyName("Config_BRMS_Raw_TestBRMSRawPolicy.1.xml");
377 entity.setPolicyData(policyContent);
378 entity.setScope("com");
379 ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
380 configurationEntity.setConfigBody(configData);
381 configurationEntity.setConfigType("OTHER");
382 configurationEntity.setConfigurationName("com.Config_BRMS_Raw_TestBRMSRawPolicy.1.txt");
383 configurationEntity.setDescription("test");
384 entity.setConfigurationData(configurationEntity);
385 policyData.add(entity);
386 PolicyManagerServlet servlet = new PolicyManagerServlet();
387 PolicyController controller = mock(PolicyController.class);
388 List<String> list = new ArrayList<>();
389 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_BRMS_Raw_TestBRMSRawPolicy.1.xml',"
390 + " onlyFolders: false}}");
391 for (int i = 0; i < list.size(); i++) {
392 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
394 when(request.getReader()).thenReturn(reader);
395 when(controller.getRoles("Test")).thenReturn(rolesdata);
396 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
397 null)).thenReturn(policyData);
398 servlet.setPolicyController(controller);
399 servlet.setTestUserId("Test");
400 servlet.doPost(request, response);
401 } catch (Exception e1) {
402 logger.error("Exception Occured" + e1);
408 @SuppressWarnings("static-access")
410 public void test09editClosedLoopFaultPolicyTest() {
411 List<Object> policyData = new ArrayList<>();
412 String policyContent = "";
413 String configData = "";
415 ClassLoader classLoader = getClass().getClassLoader();
417 IOUtils.toString(classLoader.getResourceAsStream("Config_Fault_TestClosedLoopPolicy.1.xml"));
419 IOUtils.toString(classLoader.getResourceAsStream("com.Config_Fault_TestClosedLoopPolicy.1.json"));
420 } catch (Exception e1) {
421 logger.error("Exception Occured" + e1);
423 PolicyEntity entity = new PolicyEntity();
424 entity.setPolicyName("Config_Fault_TestClosedLoopPolicy.1.xml");
425 entity.setPolicyData(policyContent);
426 entity.setScope("com");
427 ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
428 configurationEntity.setConfigBody(configData);
429 configurationEntity.setConfigType("JSON");
430 configurationEntity.setConfigurationName("com.Config_Fault_TestClosedLoopPolicy.1.json");
431 configurationEntity.setDescription("test");
432 entity.setConfigurationData(configurationEntity);
433 policyData.add(entity);
434 PolicyManagerServlet servlet = new PolicyManagerServlet();
435 PolicyController controller = mock(PolicyController.class);
436 List<String> list = new ArrayList<>();
437 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_Fault_TestClosedLoopPolicy.1.xml',"
438 + " onlyFolders: false}}");
439 for (int i = 0; i < list.size(); i++) {
440 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
442 when(request.getReader()).thenReturn(reader);
443 when(controller.getRoles("Test")).thenReturn(rolesdata);
444 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
445 null)).thenReturn(policyData);
446 servlet.setPolicyController(controller);
447 servlet.setTestUserId("Test");
448 servlet.doPost(request, response);
449 } catch (Exception e1) {
450 logger.error("Exception Occured" + e1);
456 @SuppressWarnings("static-access")
458 public void test10editClosedLoopPMPolicyTest() {
459 List<Object> policyData = new ArrayList<>();
460 String policyContent = "";
461 String configData = "";
463 ClassLoader classLoader = getClass().getClassLoader();
464 policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_PM_TestClosedLoopPMPolicy.1.xml"));
466 IOUtils.toString(classLoader.getResourceAsStream("com.Config_PM_TestClosedLoopPMPolicy.1.json"));
467 } catch (Exception e1) {
468 logger.error("Exception Occured" + e1);
470 PolicyEntity entity = new PolicyEntity();
471 entity.setPolicyName("Config_PM_TestClosedLoopPMPolicy.1.xml");
472 entity.setPolicyData(policyContent);
473 entity.setScope("com");
474 ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
475 configurationEntity.setConfigBody(configData);
476 configurationEntity.setConfigType("JSON");
477 configurationEntity.setConfigurationName("com.Config_PM_TestClosedLoopPMPolicy.1.json");
478 configurationEntity.setDescription("test");
479 entity.setConfigurationData(configurationEntity);
480 policyData.add(entity);
481 PolicyManagerServlet servlet = new PolicyManagerServlet();
482 PolicyController controller = mock(PolicyController.class);
483 List<String> list = new ArrayList<>();
484 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_PM_TestClosedLoopPMPolicy.1.xml',"
485 + " onlyFolders: false}}");
486 for (int i = 0; i < list.size(); i++) {
487 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
489 when(request.getReader()).thenReturn(reader);
490 when(controller.getRoles("Test")).thenReturn(rolesdata);
491 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
492 null)).thenReturn(policyData);
493 servlet.setPolicyController(controller);
494 servlet.setTestUserId("Test");
495 servlet.doPost(request, response);
496 } catch (Exception e1) {
497 logger.error("Exception Occured" + e1);
503 @SuppressWarnings("static-access")
505 public void test11editMicroServicePolicyTest() {
506 GroupPolicyScopeList groupData = new GroupPolicyScopeList();
507 groupData.setGroupName("Test");
508 groupData.setGroupList("resource=SampleResource,service=SampleService,type=SampleType,"
509 + "closedLoopControlName=SampleClosedLoop");
510 List<Object> groupListData = new ArrayList<>();
511 groupListData.add(groupData);
512 commonClassDao = mock(CommonClassDao.class);
513 CreateDcaeMicroServiceController.setCommonClassDao(commonClassDao);
514 List<Object> policyData = new ArrayList<>();
515 String policyContent = "";
516 String configData = "";
518 ClassLoader classLoader = getClass().getClassLoader();
519 policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_MS_vFirewall.1.xml"));
520 configData = IOUtils.toString(classLoader.getResourceAsStream("com.Config_MS_vFirewall.1.json"));
521 } catch (Exception e1) {
522 logger.error("Exception Occured" + e1);
524 PolicyEntity entity = new PolicyEntity();
525 entity.setPolicyName("Config_MS_vFirewall.1.xml");
526 entity.setPolicyData(policyContent);
527 entity.setScope("com");
528 ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
529 configurationEntity.setConfigBody(configData);
530 configurationEntity.setConfigType("JSON");
531 configurationEntity.setConfigurationName("com.Config_MS_vFirewall.1.json");
532 configurationEntity.setDescription("test");
533 entity.setConfigurationData(configurationEntity);
534 policyData.add(entity);
535 PolicyManagerServlet servlet = new PolicyManagerServlet();
536 PolicyController controller = mock(PolicyController.class);
537 List<String> list = new ArrayList<>();
538 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_MS_vFirewall.1.xml', onlyFolders: false}}");
539 for (int i = 0; i < list.size(); i++) {
540 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
542 when(request.getReader()).thenReturn(reader);
543 when(commonClassDao.getDataById(GroupPolicyScopeList.class, "groupList",
544 "resource=SampleResource,service=SampleService,type=SampleType,"
545 + "closedLoopControlName=SampleClosedLoop")).thenReturn(groupListData);
546 when(controller.getRoles("Test")).thenReturn(rolesdata);
547 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
548 null)).thenReturn(policyData);
549 servlet.setPolicyController(controller);
550 servlet.setTestUserId("Test");
551 servlet.doPost(request, response);
552 } catch (Exception e1) {
553 logger.error("Exception Occured" + e1);
559 @SuppressWarnings("static-access")
561 public void test12editFirewallPolicyTest() {
562 List<Object> policyData = new ArrayList<>();
563 String policyContent = "";
564 String configData = "";
566 ClassLoader classLoader = getClass().getClassLoader();
567 policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_FW_TestFireWallPolicy.1.xml"));
568 configData = IOUtils.toString(classLoader.getResourceAsStream("com.Config_FW_TestFireWallPolicy.1.json"));
569 } catch (Exception e1) {
570 logger.error("Exception Occured" + e1);
572 PolicyEntity entity = new PolicyEntity();
573 entity.setPolicyName("Config_FW_TestFireWallPolicy.1.xml");
574 entity.setPolicyData(policyContent);
575 entity.setScope("com");
576 ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
577 configurationEntity.setConfigBody(configData);
578 configurationEntity.setConfigType("JSON");
579 configurationEntity.setConfigurationName("com.Config_FW_TestFireWallPolicy.1.json");
580 configurationEntity.setDescription("test");
581 entity.setConfigurationData(configurationEntity);
582 policyData.add(entity);
583 PolicyManagerServlet servlet = new PolicyManagerServlet();
584 PolicyController controller = mock(PolicyController.class);
585 List<String> list = new ArrayList<>();
586 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_FW_TestFireWallPolicy.1.xml',"
587 + " onlyFolders: false}}");
588 for (int i = 0; i < list.size(); i++) {
589 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
591 when(request.getReader()).thenReturn(reader);
592 when(controller.getRoles("Test")).thenReturn(rolesdata);
593 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
594 null)).thenReturn(policyData);
595 servlet.setPolicyController(controller);
596 servlet.setTestUserId("Test");
597 servlet.doPost(request, response);
598 } catch (Exception e1) {
599 logger.error("Exception Occured" + e1);
605 @SuppressWarnings("static-access")
607 public void test13editActionPolicyTest() {
608 List<Object> policyData = new ArrayList<>();
609 String policyContent = "";
610 String configData = "";
612 ClassLoader classLoader = getClass().getClassLoader();
613 policyContent = IOUtils.toString(classLoader.getResourceAsStream("Action_TestActionPolicy.1.xml"));
614 configData = IOUtils.toString(classLoader.getResourceAsStream("com.Action_TestActionPolicy.1.json"));
615 } catch (Exception e1) {
616 logger.error("Exception Occured" + e1);
618 PolicyEntity entity = new PolicyEntity();
619 entity.setPolicyName("Action_TestActionPolicy.1.xml");
620 entity.setPolicyData(policyContent);
621 entity.setScope("com");
622 ActionBodyEntity configurationEntity = new ActionBodyEntity();
623 configurationEntity.setActionBody(configData);
624 configurationEntity.setActionBodyName("com.Action_TestActionPolicy.1.json");
625 entity.setActionBodyEntity(configurationEntity);
626 policyData.add(entity);
627 PolicyManagerServlet servlet = new PolicyManagerServlet();
628 PolicyController controller = mock(PolicyController.class);
629 List<String> list = new ArrayList<>();
630 list.add("{params: { mode: 'EDITFILE', path: '/com/Action_TestActionPolicy.1.xml'," + " onlyFolders: false}}");
631 for (int i = 0; i < list.size(); i++) {
632 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
634 when(request.getReader()).thenReturn(reader);
635 when(controller.getRoles("Test")).thenReturn(rolesdata);
636 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
637 null)).thenReturn(policyData);
638 servlet.setPolicyController(controller);
639 servlet.setTestUserId("Test");
640 servlet.doPost(request, response);
641 } catch (Exception e1) {
642 logger.error("Exception Occured" + e1);
648 @SuppressWarnings("static-access")
650 public void test14editDecisionPolicyTest() {
651 List<Object> policyData = new ArrayList<>();
652 String policyContent = "";
654 ClassLoader classLoader = getClass().getClassLoader();
655 policyContent = IOUtils
656 .toString(classLoader.getResourceAsStream("Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml"));
657 } catch (Exception e1) {
658 logger.error("Exception Occured" + e1);
660 PolicyEntity entity = new PolicyEntity();
661 entity.setPolicyName("Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml");
662 entity.setPolicyData(policyContent);
663 entity.setScope("com");
664 policyData.add(entity);
665 PolicyManagerServlet servlet = new PolicyManagerServlet();
666 PolicyController controller = mock(PolicyController.class);
667 List<String> list = new ArrayList<>();
668 list.add("{params: { mode: 'EDITFILE', path: '/com/Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml',"
669 + " onlyFolders: false}}");
670 for (int i = 0; i < list.size(); i++) {
671 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
673 when(request.getReader()).thenReturn(reader);
674 when(controller.getRoles("Test")).thenReturn(rolesdata);
675 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
676 null)).thenReturn(policyData);
677 servlet.setPolicyController(controller);
678 servlet.setTestUserId("Test");
679 servlet.doPost(request, response);
680 } catch (Exception e1) {
681 logger.error("Exception Occured" + e1);
688 public void test15AddScope() {
689 PolicyManagerServlet servlet = new PolicyManagerServlet();
690 PolicyController controller = mock(PolicyController.class);
691 List<BufferedReader> readers = new ArrayList<>();
692 readers.add(new BufferedReader(new StringReader("{params: { mode: 'ADDFOLDER', path: '/', name: 'Test'}}")));
693 readers.add(new BufferedReader(new StringReader("{params: { mode: 'ADDFOLDER', path: '/', name: 'Test*&'}}")));
694 readers.add(new BufferedReader(
695 new StringReader("{params: { mode: 'ADDFOLDER', path: '/Test', subScopename: 'Test1'}}")));
696 for (int i = 0; i < readers.size(); i++) {
698 when(request.getReader()).thenReturn(readers.get(i));
699 PolicyManagerServlet.setPolicyController(controller);
700 servlet.doPost(request, response);
701 assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
702 } catch (Exception e1) {
703 logger.error("Exception Occured" + e1);
710 public void test16Clone() {
711 PolicyManagerServlet servlet = new PolicyManagerServlet();
712 PolicyController controller = mock(PolicyController.class);
713 List<BufferedReader> readers = new ArrayList<>();
714 when(controller.getEntityItem(ConfigurationDataEntity.class, "configurationName",
715 "com.Config_SampleTest1206.1.txt")).thenReturn(configurationEntity);
716 when(controller.getDataByQuery(
717 "FROM PolicyEntity where policyName = :oldPolicySplit_1 and scope = :oldPolicySplit_0", null))
718 .thenReturn(basePolicyData);
719 readers.add(new BufferedReader(new StringReader("{params: { mode: 'COPY', path: 'com.Config_test.1.xml',"
720 + " newPath: 'com.Config_testClone.1.xml'}}")));
721 for (int i = 0; i < readers.size(); i++) {
723 when(request.getReader()).thenReturn(readers.get(i));
724 PolicyManagerServlet.setPolicyController(controller);
725 servlet.doPost(request, response);
726 assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
727 } catch (Exception e1) {
728 logger.error("Exception Occured" + e1);
735 public void test17Rename() {
736 PolicyManagerServlet servlet = new PolicyManagerServlet();
737 PolicyController controller = mock(PolicyController.class);
738 List<BufferedReader> readers = new ArrayList<>();
739 when(controller.getEntityItem(ConfigurationDataEntity.class, "configurationName",
740 "com.Config_SampleTest1206.1.txt")).thenReturn(configurationEntity);
741 when(controller.getDataByQuery(
742 "FROM PolicyEntity where policyName = :oldPolicySplit_1 and scope = :oldPolicySplit_0", null))
743 .thenReturn(basePolicyData);
744 readers.add(new BufferedReader(new StringReader("{params: { mode: 'RENAME', path: 'com.Config_test.1.xml',"
745 + " newPath: 'com.Config_testClone.1.xml'}}")));
746 for (int i = 0; i < readers.size(); i++) {
748 when(request.getReader()).thenReturn(readers.get(i));
749 PolicyManagerServlet.setPolicyController(controller);
750 servlet.doPost(request, response);
751 assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
752 } catch (Exception e1) {
753 logger.error("Exception Occured" + e1);
760 public void test18RenameScope() throws Exception {
761 PolicyManagerServlet servlet = new PolicyManagerServlet();
762 PolicyController controller = mock(PolicyController.class);
763 List<BufferedReader> readers = new ArrayList<>();
764 readers.add(new BufferedReader(new StringReader("{params: { mode: 'RENAME', path: 'com', newPath: 'Test'}}")));
765 for (int i = 0; i < readers.size(); i++) {
767 when(request.getReader()).thenReturn(readers.get(i));
768 PolicyManagerServlet.setPolicyController(controller);
769 servlet.doPost(request, response);
770 assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
771 } catch (Exception e1) {
772 logger.error("Exception Occured" + e1);
777 String inScopeName = "\\\\\\\\inScopeName";
778 String newScopeName = "\\\\\\\\newScopeName";
779 List<Object> scopesList = new ArrayList<Object>();
780 PolicyEditorScopes mockPolicyEditorScope = Mockito.mock(PolicyEditorScopes.class);
781 scopesList.add(mockPolicyEditorScope);
782 when(mockPolicyEditorScope.getScopeName()).thenReturn("inScopeName");
783 Whitebox.invokeMethod(servlet, "renameScope", scopesList, inScopeName, newScopeName, controller);
784 verify(mockPolicyEditorScope, atLeast(1)).getScopeName();
788 public void test19SetPolicyNames() {
789 JsonArray mockJsonArray = Mockito.mock(JsonArray.class);
790 PolicyManagerServlet.setPolicyNames(mockJsonArray);
791 assertEquals(mockJsonArray, PolicyManagerServlet.getPolicyNames());
795 public void test20DoPostSetErrorException() throws IOException {
796 PolicyManagerServlet servlet = new PolicyManagerServlet();
797 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
798 HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
799 doThrow(IOException.class).when(mockRequest).getReader();
800 doThrow(IOException.class).when(mockResponse).sendError(any(Integer.class), any(String.class));
801 servlet.doPost(mockRequest, mockResponse);
802 verify(mockRequest).getReader();
806 public void test21DoPostException() throws IOException {
807 PolicyManagerServlet servlet = new PolicyManagerServlet();
808 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
809 HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
811 doThrow(IOException.class).when(mockRequest).getReader();
812 doThrow(IOException.class).when(mockResponse).sendError(any(Integer.class), any(String.class));
813 doThrow(IOException.class).when(mockResponse).getWriter();
815 servlet.doPost(mockRequest, mockResponse);
816 verify(mockRequest).getReader();
817 verify(mockResponse).getWriter();
821 public void test22DoPostSuccess() throws IOException {
822 PolicyManagerServlet servlet = new PolicyManagerServlet();
823 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
824 HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
825 PrintWriter mockPrintWriter = Mockito.mock(PrintWriter.class);
827 doThrow(IOException.class).when(mockRequest).getReader();
828 when(mockResponse.getWriter()).thenReturn(mockPrintWriter);
830 servlet.doPost(null, mockResponse);
831 verify(mockResponse).getWriter();
834 @PrepareForTest(ServletFileUpload.class)
836 public void test23DoPostUploadFileException() {
837 PolicyManagerServlet servlet = new PolicyManagerServlet();
838 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
839 HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
840 PowerMockito.mockStatic(ServletFileUpload.class);
841 when(ServletFileUpload.isMultipartContent(mockRequest)).thenReturn(true);
842 servlet.doPost(mockRequest, mockResponse);
845 @PrepareForTest({PolicyController.class, IOUtils.class})
847 public void test24ProcessFormFile() throws Exception {
848 PolicyManagerServlet servlet = new PolicyManagerServlet();
849 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
850 FileItem mockFileItem = Mockito.mock(FileItem.class);
851 PowerMockito.mockStatic(PolicyController.class);
852 PowerMockito.mockStatic(IOUtils.class);
853 InputStream mockInputStream = Mockito.mock(InputStream.class);
855 long fileSizeLimit = 10;
856 when(PolicyController.getFileSizeLimit()).thenReturn(fileSizeLimit);
857 when(mockFileItem.getName()).thenReturn("testFileName.xls");
858 when(mockFileItem.getInputStream()).thenReturn(mockInputStream);
859 when(mockFileItem.getSize()).thenReturn(fileSizeLimit + 1);
861 Whitebox.invokeMethod(servlet, "processFormFile", mockRequest, mockFileItem);
862 verify(mockFileItem, atLeast(1)).getName();
863 verify(mockFileItem, atLeast(1)).getSize();
865 when(mockFileItem.getName()).thenReturn("testFileName.txt");
866 Whitebox.invokeMethod(servlet, "processFormFile", mockRequest, mockFileItem);
867 verify(mockFileItem, atLeast(1)).getName();
869 when(mockFileItem.getSize()).thenReturn(fileSizeLimit);
870 when(mockFileItem.getName()).thenReturn("testFileName.xls");
871 when(mockFileItem.getInputStream()).thenThrow(IOException.class);
872 Whitebox.invokeMethod(servlet, "processFormFile", mockRequest, mockFileItem);
873 verify(mockFileItem, atLeast(1)).getName();
874 verify(mockFileItem, atLeast(1)).getInputStream();
875 verify(mockFileItem, atLeast(1)).getSize();
879 public void test25SearchPolicyList() throws Exception {
880 PolicyManagerServlet servlet = new PolicyManagerServlet();
881 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
882 JSONObject mockJSONObject = Mockito.mock(JSONObject.class);
884 mockJSONObject.append("policyList", "sampleValue");
886 Object res = Whitebox.invokeMethod(servlet, "searchPolicyList", mockJSONObject, mockRequest);
887 assert (res instanceof JSONObject);
888 assertNotNull(((JSONObject) res).get("result"));
891 @PrepareForTest({UserUtils.class, org.onap.policy.utils.UserUtils.class})
893 public void test26LookupPolicyData() throws Exception {
894 PowerMockito.mockStatic(UserUtils.class);
895 PowerMockito.mockStatic(org.onap.policy.utils.UserUtils.class);
896 PolicyManagerServlet servlet = new PolicyManagerServlet();
897 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
898 User mockUser = Mockito.mock(User.class);
899 UserInfo mockUserInfo = Mockito.mock(UserInfo.class);
900 PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
901 List<JSONObject> resultList = new ArrayList<>();
902 JSONObject mockJSONObject = Mockito.mock(JSONObject.class);
903 resultList.add(mockJSONObject);
905 Date mockDate = Mockito.mock(Date.class);
906 List<Object> policyDataList = new ArrayList<>();
907 PolicyVersion mockPolicyVersion = Mockito.mock(PolicyVersion.class);
908 policyDataList.add(mockPolicyVersion);
909 JSONArray mockJSONArray = Mockito.mock(JSONArray.class);
911 List<Object> rolesList = new ArrayList<>();
912 Roles adminRole = Mockito.mock(Roles.class);
913 Roles editorRole = Mockito.mock(Roles.class);
914 Roles guestRole = Mockito.mock(Roles.class);
915 adminRole.setRole("admin");
916 editorRole.setRole("editor");
917 guestRole.setRole("guest");
919 List<Object> filterDataList = new ArrayList<>();
920 PolicyVersion mockPolicyVersionFilter = Mockito.mock(PolicyVersion.class);
921 filterDataList.add(mockPolicyVersionFilter);
922 List<String> listOfRoles = new ArrayList<String>();
923 Set<String> setOfScopes = new HashSet<String>();
924 Pair<Set<String>, List<String>> pairList = new Pair<Set<String>, List<String>>(setOfScopes, listOfRoles);
926 PolicyManagerServlet.setPolicyController(mockPolicyController);
927 PowerMockito.when(UserUtils.getUserSession(mockRequest)).thenReturn(mockUser);
928 when(mockPolicyController.getRoles(any(String.class))).thenReturn(rolesList);
929 PowerMockito.when(org.onap.policy.utils.UserUtils.checkRoleAndScope(rolesList)).thenReturn(pairList);
930 when(mockPolicyController.getData(any(Class.class))).thenReturn(filterDataList);
931 when(mockPolicyVersion.getPolicyName()).thenReturn("sampleName");
932 when(mockPolicyVersion.getModifiedDate()).thenReturn(mockDate);
933 when(mockPolicyVersion.getActiveVersion()).thenReturn(1);
934 when(mockPolicyVersion.getCreatedBy()).thenReturn("sampleUserName");
935 when(mockPolicyVersion.getModifiedBy()).thenReturn("sampleUserName");
936 when(mockPolicyController.getEntityItem(UserInfo.class, "userLoginId", "sampleUserName"))
937 .thenReturn(mockUserInfo);
938 when(mockUserInfo.getUserName()).thenReturn("testUserName");
940 Whitebox.invokeMethod(servlet, "getPolicyControllerInstance");
942 boolean result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
943 mockPolicyController, resultList);
946 verify(mockPolicyController, atLeast(1)).getRoles(any());
947 verify(mockPolicyController, atLeast(1)).getRoles(any());
948 verify(mockPolicyController, atLeast(1)).getData(any());
949 verify(mockPolicyController, atLeast(1)).getEntityItem(UserInfo.class, "userLoginId", "sampleUserName");
950 verify(mockPolicyVersion, atLeast(1)).getPolicyName();
951 verify(mockPolicyVersion, atLeast(1)).getModifiedDate();
952 verify(mockPolicyVersion, atLeast(1)).getActiveVersion();
953 verify(mockPolicyVersion, atLeast(1)).getCreatedBy();
954 verify(mockPolicyVersion, atLeast(1)).getModifiedBy();
955 verify(mockUserInfo, atLeast(1)).getUserName();
957 when(mockPolicyVersionFilter.getPolicyName()).thenReturn("testAdminScope" + File.separator);
958 result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
959 mockPolicyController, resultList);
961 verify(mockPolicyVersionFilter, atLeast(1)).getPolicyName();
963 setOfScopes.add("testAdminScope");
964 result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
965 mockPolicyController, resultList);
967 verify(mockPolicyVersionFilter, atLeast(1)).getPolicyName();
969 listOfRoles.add("super-admin");
970 listOfRoles.add("super-editor");
971 listOfRoles.add("super-guest");
972 filterDataList.clear();
974 result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
975 mockPolicyController, resultList);
977 verify(mockPolicyController, atLeast(1)).getData(any(Class.class));
980 listOfRoles.add("admin");
981 listOfRoles.add("editor");
982 listOfRoles.add("guest");
984 result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
985 mockPolicyController, resultList);
988 setOfScopes.add("testScope");
989 result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, mockJSONArray,
990 mockPolicyController, resultList);
995 public void test27DeleteEntityFromEsAndPolicyEntityTable() throws Exception {
996 PolicyManagerServlet servlet = new PolicyManagerServlet();
997 PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
998 PolicyRestController mockPolicyRestController = Mockito.mock(PolicyRestController.class);
999 PolicyEntity mockPolicyEntity = Mockito.mock(PolicyEntity.class);
1000 ConfigurationDataEntity mockConfigDataEntity = Mockito.mock(ConfigurationDataEntity.class);
1001 ActionBodyEntity mockActionBodyEntity = Mockito.mock(ActionBodyEntity.class);
1003 String policyNamewithoutExtension = "Config_";
1004 String configName = "";
1005 String actionBodyName = "";
1007 when(mockPolicyEntity.getScope()).thenReturn("");
1008 when(mockPolicyEntity.getPolicyName()).thenReturn("");
1009 Mockito.doNothing().when(mockPolicyRestController).deleteElasticData(any(String.class));
1010 Mockito.doNothing().when(mockPolicyController).deleteData(mockPolicyEntity);
1011 when(mockPolicyEntity.getConfigurationData()).thenReturn(mockConfigDataEntity);
1012 when(mockPolicyEntity.getActionBodyEntity()).thenReturn(mockActionBodyEntity);
1013 when(mockConfigDataEntity.getConfigurationName()).thenReturn(configName);
1014 when(mockActionBodyEntity.getActionBodyName()).thenReturn(actionBodyName);
1015 when(mockPolicyRestController.notifyOtherPapsToUpdateConfigurations("delete", null, configName)).thenReturn("");
1017 Whitebox.invokeMethod(servlet, "deleteEntityFromEsAndPolicyEntityTable", mockPolicyController,
1018 mockPolicyRestController, mockPolicyEntity, policyNamewithoutExtension);
1020 verify(mockPolicyEntity, atLeast(1)).getScope();
1021 verify(mockPolicyEntity, atLeast(1)).getPolicyName();
1022 verify(mockPolicyEntity, atLeast(1)).getConfigurationData();
1023 verify(mockConfigDataEntity, atLeast(1)).getConfigurationName();
1025 policyNamewithoutExtension = "Action_";
1026 when(mockPolicyRestController.notifyOtherPapsToUpdateConfigurations("delete", null, actionBodyName))
1029 Whitebox.invokeMethod(servlet, "deleteEntityFromEsAndPolicyEntityTable", mockPolicyController,
1030 mockPolicyRestController, mockPolicyEntity, policyNamewithoutExtension);
1032 verify(mockPolicyEntity, atLeast(1)).getScope();
1033 verify(mockPolicyEntity, atLeast(1)).getPolicyName();
1034 verify(mockPolicyEntity, atLeast(1)).getActionBodyEntity();
1035 verify(mockActionBodyEntity, atLeast(1)).getActionBodyName();
1037 policyNamewithoutExtension = "Other_";
1038 Whitebox.invokeMethod(servlet, "deleteEntityFromEsAndPolicyEntityTable", mockPolicyController,
1039 mockPolicyRestController, mockPolicyEntity, policyNamewithoutExtension);
1041 verify(mockPolicyEntity, atLeast(1)).getScope();
1042 verify(mockPolicyEntity, atLeast(1)).getPolicyName();
1043 verify(mockPolicyRestController, atLeast(1)).deleteElasticData(any(String.class));
1044 verify(mockPolicyController, atLeast(1)).deleteData(mockPolicyEntity);
1047 @PrepareForTest(UserUtils.class)
1049 public void test28Delete() throws Exception {
1050 PolicyManagerServlet servlet = new PolicyManagerServlet();
1051 JSONObject mockJSONObject = Mockito.mock(JSONObject.class);
1052 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
1053 User mockUser = Mockito.mock(User.class);
1054 PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
1055 PowerMockito.mockStatic(UserUtils.class);
1056 List<Object> policyEntityList = new ArrayList<Object>();
1057 PolicyEntity mockPolicyEntity = Mockito.mock(PolicyEntity.class);
1058 policyEntityList.add(mockPolicyEntity);
1061 PowerMockito.when(UserUtils.getUserSession(mockRequest)).thenReturn(mockUser);
1062 PolicyManagerServlet.setPolicyController(mockPolicyController);
1063 when(mockUser.getOrgUserId()).thenReturn("sampleUserId");
1064 when(mockJSONObject.getString("path")).thenReturn("/sampleScope:samplePolicyName.1.xml");
1065 when(mockJSONObject.has("deleteVersion")).thenReturn(true);
1066 when(mockJSONObject.getString("deleteVersion")).thenReturn("ALL");
1067 when(mockPolicyController.getDataByQuery(any(String.class), any(SimpleBindings.class)))
1068 .thenReturn(policyEntityList);
1069 when(mockPolicyEntity.getPolicyId()).thenReturn(policyId);
1070 when(mockPolicyEntity.getScope()).thenReturn("sampleScope");
1071 when(mockPolicyEntity.getPolicyName()).thenReturn("samplePolicyName");
1073 JSONObject returnObj = Whitebox.invokeMethod(servlet, "delete", mockJSONObject, mockRequest);
1074 assertTrue(returnObj.has("result"));
1075 verify(mockUser, atLeast(1)).getOrgUserId();
1076 verify(mockJSONObject, atLeast(1)).getString(any(String.class));
1077 verify(mockJSONObject, atLeast(1)).has(any(String.class));
1078 verify(mockPolicyController, atLeast(1)).getDataByQuery(any(String.class), any(SimpleBindings.class));
1079 verify(mockPolicyEntity, atLeast(1)).getPolicyId();
1080 verify(mockPolicyEntity, atLeast(1)).getScope();
1081 verify(mockPolicyEntity, atLeast(1)).getPolicyName();
1083 when(mockJSONObject.getString("path")).thenReturn("/sampleScope\\:samplePolicyName.1.xml");
1084 when(mockJSONObject.getString("deleteVersion")).thenReturn("CURRENT");
1085 returnObj = Whitebox.invokeMethod(servlet, "delete", mockJSONObject, mockRequest);
1086 assertTrue(returnObj.has("result"));
1087 verify(mockJSONObject, atLeast(1)).getString(any(String.class));
1089 when(mockJSONObject.getString("path")).thenReturn("/sampleScope:samplePolicyName.2.txt");
1090 when(mockJSONObject.has("deleteVersion")).thenReturn(false);
1091 returnObj = Whitebox.invokeMethod(servlet, "delete", mockJSONObject, mockRequest);
1092 assertTrue(returnObj.has("result"));
1093 verify(mockJSONObject, atLeast(1)).getString("path");
1094 verify(mockJSONObject, atLeast(1)).has("deleteVersion");
1099 public void test29ParsePolicyList() throws Exception {
1100 PolicyManagerServlet servlet = new PolicyManagerServlet();
1101 List<JSONObject> resultList = new ArrayList<JSONObject>();
1102 PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
1103 String policyName = "sampleName\\";
1104 String policyVersion = "sampleVersion";
1105 List<Object> activeDataList = new ArrayList<Object>();
1106 PolicyVersion mockPolicyVersion = Mockito.mock(PolicyVersion.class);
1107 activeDataList.add(mockPolicyVersion);
1108 Date mockDate = Mockito.mock(Date.class);
1110 when(mockPolicyController.getDataByQuery(any(String.class), any(SimpleBindings.class)))
1111 .thenReturn(activeDataList);
1112 when(mockPolicyVersion.getPolicyName()).thenReturn("testPolicyName");
1113 when(mockPolicyVersion.getModifiedDate()).thenReturn(mockDate);
1114 when(mockPolicyVersion.getActiveVersion()).thenReturn(1);
1115 when(mockPolicyVersion.getCreatedBy()).thenReturn("sampleUserName");
1116 when(mockPolicyVersion.getModifiedBy()).thenReturn("sampleUserName");
1118 // This intermittently throws an NPE, even when fixing the method order
1120 Whitebox.invokeMethod(servlet, "parsePolicyList", resultList, mockPolicyController, policyName, policyVersion);
1121 verify(mockPolicyController, atLeast(1)).getDataByQuery(any(String.class), any(SimpleBindings.class));
1122 verify(mockPolicyVersion, atLeast(1)).getPolicyName();
1123 verify(mockPolicyVersion, atLeast(1)).getModifiedDate();
1124 verify(mockPolicyVersion, atLeast(1)).getActiveVersion();
1125 verify(mockPolicyVersion, atLeast(1)).getCreatedBy();
1126 verify(mockPolicyVersion, atLeast(1)).getModifiedBy();