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.Test;
57 import org.junit.runner.RunWith;
58 import org.junit.runners.MethodSorters;
59 import org.mockito.Mockito;
60 import org.onap.policy.common.logging.flexlogger.FlexLogger;
61 import org.onap.policy.common.logging.flexlogger.Logger;
62 import org.onap.policy.controller.CreateDcaeMicroServiceController;
63 import org.onap.policy.controller.PolicyController;
64 import org.onap.policy.model.Roles;
65 import org.onap.policy.rest.dao.CommonClassDao;
66 import org.onap.policy.rest.jpa.ActionBodyEntity;
67 import org.onap.policy.rest.jpa.ConfigurationDataEntity;
68 import org.onap.policy.rest.jpa.GroupPolicyScopeList;
69 import org.onap.policy.rest.jpa.PolicyEditorScopes;
70 import org.onap.policy.rest.jpa.PolicyEntity;
71 import org.onap.policy.rest.jpa.PolicyVersion;
72 import org.onap.policy.rest.jpa.UserInfo;
73 import org.onap.policy.utils.UserUtils.Pair;
74 import org.onap.portalsdk.core.domain.User;
75 import org.onap.portalsdk.core.util.SystemProperties;
76 import org.onap.portalsdk.core.web.support.UserUtils;
77 import org.powermock.api.mockito.PowerMockito;
78 import org.powermock.core.classloader.annotations.PowerMockIgnore;
79 import org.powermock.core.classloader.annotations.PrepareForTest;
80 import org.powermock.modules.junit4.PowerMockRunner;
81 import org.powermock.reflect.Whitebox;
82 import org.springframework.mock.web.MockHttpServletResponse;
84 @RunWith(PowerMockRunner.class)
85 @PowerMockIgnore({"com.sun.org.apache.xerces.*", "jdk.internal.reflect.*", "javax.xml.*", "org.xml.*", "org.w3c.*"})
86 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
87 public class PolicyManagerServletTest extends Mockito {
89 private static Logger logger = FlexLogger.getLogger(PolicyManagerServletTest.class);
90 private List<String> headers = new ArrayList<String>();
92 private static List<Object> rolesdata;
93 private static List<Object> basePolicyData;
94 private static List<Object> policyEditorScopes;
95 private static List<Object> policyVersion;
96 private static CommonClassDao commonClassDao;
97 private ConfigurationDataEntity configurationEntity;
98 private HttpServletRequest request;
99 private MockHttpServletResponse response;
104 * @throws Exception should not get one
107 public void setUp() throws Exception {
108 logger.info("setUp: Entering");
110 request = mock(HttpServletRequest.class);
111 response = new MockHttpServletResponse();
113 PolicyController.setjUnit(true);
114 UserInfo userinfo = new UserInfo();
115 userinfo.setUserLoginId("Test");
116 userinfo.setUserName("Test");
118 rolesdata = new ArrayList<>();
119 Roles roles = new Roles();
120 roles.setLoginId("Test");
121 roles.setRole("super-admin");
122 Roles roles1 = new Roles();
124 roles1.setName("Test");
125 assertTrue("Test".equals(roles1.getName()));
126 roles1.setLoginId("Test");
127 roles1.setRole("admin");
128 roles1.setScope("['com','Test']");
129 rolesdata.add(roles);
130 rolesdata.add(roles1);
133 basePolicyData = new ArrayList<>();
134 String policyContent = "";
136 ClassLoader classLoader = getClass().getClassLoader();
137 policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml"));
138 } catch (Exception e1) {
139 logger.error("Exception Occured" + e1);
141 PolicyEntity entity = new PolicyEntity();
142 entity.setPolicyName("Config_SampleTest.1.xml");
143 entity.setPolicyData(policyContent);
144 entity.setScope("com");
145 configurationEntity = new ConfigurationDataEntity();
146 configurationEntity.setConfigBody("Sample Test");
147 configurationEntity.setConfigType("OTHER");
148 configurationEntity.setConfigurationName("com.Config_SampleTest1206.1.txt");
149 configurationEntity.setDescription("test");
150 entity.setConfigurationData(configurationEntity);
151 basePolicyData.add(entity);
153 // PolicyEditorScopes data
154 policyEditorScopes = new ArrayList<>();
155 PolicyEditorScopes scopes = new PolicyEditorScopes();
156 scopes.setScopeName("com");
157 scopes.setUserCreatedBy(userinfo);
158 scopes.setUserModifiedBy(userinfo);
159 PolicyEditorScopes scopes1 = new PolicyEditorScopes();
160 scopes1.setScopeName("com\\Test");
161 scopes1.setUserCreatedBy(userinfo);
162 scopes1.setUserModifiedBy(userinfo);
163 policyEditorScopes.add(scopes);
164 policyEditorScopes.add(scopes1);
166 // PolicyVersion data
167 policyVersion = new ArrayList<>();
168 PolicyVersion policy = new PolicyVersion();
169 policy.setPolicyName("com\\Config_SampleTest1206");
170 policy.setActiveVersion(1);
171 policy.setHigherVersion(1);
172 policy.setCreatedBy("Test");
173 policy.setModifiedBy("Test");
174 policyVersion.add(policy);
176 HttpSession mockSession = mock(HttpSession.class);
177 User user = new User();
178 user.setOrgUserId("Test");
179 Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))).thenReturn(user);
180 Mockito.when(request.getSession(false)).thenReturn(mockSession);
181 commonClassDao = mock(CommonClassDao.class);
186 public void test01Init() {
187 PolicyManagerServlet servlet = new PolicyManagerServlet();
188 ServletConfig servletConfig = mock(ServletConfig.class);
190 when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers));
191 when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties");
192 System.setProperty("xacml.rest.admin.closedLoopJSON",
193 new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator
194 + "resources" + File.separator + "JSONConfig.json");
195 servlet.init(servletConfig);
197 assertTrue(PolicyManagerServlet.getServiceTypeNamesList().size() > 0);
198 assertTrue(PolicyManagerServlet.getPolicyNames().size() > 0);
200 } catch (Exception e1) {
201 logger.error("Exception Occured" + e1);
207 public void test02BadInitJson() {
208 PolicyManagerServlet servlet = new PolicyManagerServlet();
209 ServletConfig servletConfig = mock(ServletConfig.class);
211 when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers));
212 when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties");
213 System.setProperty("xacml.rest.admin.closedLoopJSON",
214 new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator
215 + "resources" + File.separator + "JSONConfig.foo");
216 servlet.init(servletConfig);
217 } catch (Exception e1) {
218 logger.error("Exception Occured" + e1);
224 public void test03BadInitJsonInvalidFile() {
225 PolicyManagerServlet servlet = new PolicyManagerServlet();
226 ServletConfig servletConfig = mock(ServletConfig.class);
228 when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers));
229 when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties");
230 System.setProperty("xacml.rest.admin.closedLoopJSON",
231 new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator
232 + "resources" + File.separator + "IDonotExist.json");
233 servlet.init(servletConfig);
234 } catch (Exception e1) {
235 logger.error("Exception Occured" + e1);
240 @SuppressWarnings("static-access")
242 public void test04DescribePolicy() {
243 PolicyManagerServlet servlet = new PolicyManagerServlet();
244 PolicyController controller = mock(PolicyController.class);
245 BufferedReader reader = new BufferedReader(
246 new StringReader("{params: { mode: 'DESCRIBEPOLICYFILE', path: 'com.Config_SampleTest1206.1.xml'}}"));
248 when(request.getReader()).thenReturn(reader);
249 String query = "FROM PolicyEntity where policyName = :split_1 and scope = :split_0";
250 when(controller.getDataByQuery(query, null)).thenReturn(basePolicyData);
251 servlet.setPolicyController(controller);
252 servlet.doPost(request, response);
253 } catch (Exception e1) {
254 logger.error("Exception Occured" + e1);
259 @SuppressWarnings("static-access")
261 public void test05PolicyScopeList() {
262 PolicyManagerServlet servlet = new PolicyManagerServlet();
263 PolicyController controller = mock(PolicyController.class);
264 List<String> list = new ArrayList<>();
265 list.add("{params: { mode: 'LIST', path: '/', onlyFolders: false}}");
266 list.add("{params: { mode: 'LIST', path: '/com', onlyFolders: false}}");
267 for (int i = 0; i < list.size(); i++) {
268 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
270 when(request.getReader()).thenReturn(reader);
271 when(controller.getRoles("Test")).thenReturn(rolesdata);
272 when(controller.getDataByQuery("from PolicyEditorScopes", null)).thenReturn(policyEditorScopes);
273 when(controller.getDataByQuery("from PolicyEditorScopes where SCOPENAME like :scopeName", null))
274 .thenReturn(policyEditorScopes);
275 when(controller.getDataByQuery("from PolicyVersion where POLICY_NAME like :scopeName", null))
276 .thenReturn(policyVersion);
277 servlet.setPolicyController(controller);
278 servlet.setTestUserId("Test");
279 servlet.doPost(request, response);
280 } catch (Exception e1) {
281 logger.error("Exception Occured" + e1);
287 @SuppressWarnings("static-access")
289 public void test06editBasePolicyTest() {
290 PolicyManagerServlet servlet = new PolicyManagerServlet();
291 PolicyController controller = mock(PolicyController.class);
292 List<String> list = new ArrayList<>();
293 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_SampleTest1206.1.xml', onlyFolders: false}}");
294 for (int i = 0; i < list.size(); i++) {
295 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
297 when(request.getReader()).thenReturn(reader);
298 when(controller.getRoles("Test")).thenReturn(rolesdata);
299 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
300 null)).thenReturn(basePolicyData);
301 servlet.setPolicyController(controller);
302 servlet.setTestUserId("Test");
303 servlet.doPost(request, response);
304 } catch (Exception e1) {
305 logger.error("Exception Occured" + e1);
311 @SuppressWarnings("static-access")
313 public void test07editBRMSParamPolicyTest() {
314 List<Object> policyData = new ArrayList<>();
315 String policyContent = "";
316 String configData = "";
318 ClassLoader classLoader = getClass().getClassLoader();
320 IOUtils.toString(classLoader.getResourceAsStream("Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml"));
322 .toString(classLoader.getResourceAsStream("com.Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.txt"));
323 } catch (Exception e1) {
324 logger.error("Exception Occured" + e1);
326 PolicyEntity entity = new PolicyEntity();
327 entity.setPolicyName("Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml");
328 entity.setPolicyData(policyContent);
329 entity.setScope("com");
330 ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
331 configurationEntity.setConfigBody(configData);
332 configurationEntity.setConfigType("OTHER");
333 configurationEntity.setConfigurationName("com.Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.txt");
334 configurationEntity.setDescription("test");
335 entity.setConfigurationData(configurationEntity);
336 policyData.add(entity);
337 PolicyManagerServlet servlet = new PolicyManagerServlet();
338 PolicyController controller = mock(PolicyController.class);
339 List<String> list = new ArrayList<>();
340 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml',"
341 + " onlyFolders: false}}");
342 for (int i = 0; i < list.size(); i++) {
343 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
345 when(request.getReader()).thenReturn(reader);
346 when(controller.getRoles("Test")).thenReturn(rolesdata);
347 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
348 null)).thenReturn(policyData);
349 servlet.setPolicyController(controller);
350 servlet.setTestUserId("Test");
351 servlet.doPost(request, response);
352 } catch (Exception e1) {
353 logger.error("Exception Occured" + e1);
359 @SuppressWarnings("static-access")
361 public void test08editBRMSRawPolicyTest() {
362 List<Object> policyData = new ArrayList<>();
363 String policyContent = "";
364 String configData = "";
366 ClassLoader classLoader = getClass().getClassLoader();
368 IOUtils.toString(classLoader.getResourceAsStream("Config_BRMS_Raw_TestBRMSRawPolicy.1.xml"));
370 IOUtils.toString(classLoader.getResourceAsStream("com.Config_BRMS_Raw_TestBRMSRawPolicy.1.txt"));
371 } catch (Exception e1) {
372 logger.error("Exception Occured" + e1);
374 PolicyEntity entity = new PolicyEntity();
375 entity.setPolicyName("Config_BRMS_Raw_TestBRMSRawPolicy.1.xml");
376 entity.setPolicyData(policyContent);
377 entity.setScope("com");
378 ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
379 configurationEntity.setConfigBody(configData);
380 configurationEntity.setConfigType("OTHER");
381 configurationEntity.setConfigurationName("com.Config_BRMS_Raw_TestBRMSRawPolicy.1.txt");
382 configurationEntity.setDescription("test");
383 entity.setConfigurationData(configurationEntity);
384 policyData.add(entity);
385 PolicyManagerServlet servlet = new PolicyManagerServlet();
386 PolicyController controller = mock(PolicyController.class);
387 List<String> list = new ArrayList<>();
388 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_BRMS_Raw_TestBRMSRawPolicy.1.xml',"
389 + " onlyFolders: false}}");
390 for (int i = 0; i < list.size(); i++) {
391 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
393 when(request.getReader()).thenReturn(reader);
394 when(controller.getRoles("Test")).thenReturn(rolesdata);
395 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
396 null)).thenReturn(policyData);
397 servlet.setPolicyController(controller);
398 servlet.setTestUserId("Test");
399 servlet.doPost(request, response);
400 } catch (Exception e1) {
401 logger.error("Exception Occured" + e1);
407 @SuppressWarnings("static-access")
409 public void test09editClosedLoopFaultPolicyTest() {
410 List<Object> policyData = new ArrayList<>();
411 String policyContent = "";
412 String configData = "";
414 ClassLoader classLoader = getClass().getClassLoader();
416 IOUtils.toString(classLoader.getResourceAsStream("Config_Fault_TestClosedLoopPolicy.1.xml"));
418 IOUtils.toString(classLoader.getResourceAsStream("com.Config_Fault_TestClosedLoopPolicy.1.json"));
419 } catch (Exception e1) {
420 logger.error("Exception Occured" + e1);
422 PolicyEntity entity = new PolicyEntity();
423 entity.setPolicyName("Config_Fault_TestClosedLoopPolicy.1.xml");
424 entity.setPolicyData(policyContent);
425 entity.setScope("com");
426 ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
427 configurationEntity.setConfigBody(configData);
428 configurationEntity.setConfigType("JSON");
429 configurationEntity.setConfigurationName("com.Config_Fault_TestClosedLoopPolicy.1.json");
430 configurationEntity.setDescription("test");
431 entity.setConfigurationData(configurationEntity);
432 policyData.add(entity);
433 PolicyManagerServlet servlet = new PolicyManagerServlet();
434 PolicyController controller = mock(PolicyController.class);
435 List<String> list = new ArrayList<>();
436 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_Fault_TestClosedLoopPolicy.1.xml',"
437 + " onlyFolders: false}}");
438 for (int i = 0; i < list.size(); i++) {
439 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
441 when(request.getReader()).thenReturn(reader);
442 when(controller.getRoles("Test")).thenReturn(rolesdata);
443 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
444 null)).thenReturn(policyData);
445 servlet.setPolicyController(controller);
446 servlet.setTestUserId("Test");
447 servlet.doPost(request, response);
448 } catch (Exception e1) {
449 logger.error("Exception Occured" + e1);
455 @SuppressWarnings("static-access")
457 public void test10editClosedLoopPMPolicyTest() {
458 List<Object> policyData = new ArrayList<>();
459 String policyContent = "";
460 String configData = "";
462 ClassLoader classLoader = getClass().getClassLoader();
463 policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_PM_TestClosedLoopPMPolicy.1.xml"));
465 IOUtils.toString(classLoader.getResourceAsStream("com.Config_PM_TestClosedLoopPMPolicy.1.json"));
466 } catch (Exception e1) {
467 logger.error("Exception Occured" + e1);
469 PolicyEntity entity = new PolicyEntity();
470 entity.setPolicyName("Config_PM_TestClosedLoopPMPolicy.1.xml");
471 entity.setPolicyData(policyContent);
472 entity.setScope("com");
473 ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
474 configurationEntity.setConfigBody(configData);
475 configurationEntity.setConfigType("JSON");
476 configurationEntity.setConfigurationName("com.Config_PM_TestClosedLoopPMPolicy.1.json");
477 configurationEntity.setDescription("test");
478 entity.setConfigurationData(configurationEntity);
479 policyData.add(entity);
480 PolicyManagerServlet servlet = new PolicyManagerServlet();
481 PolicyController controller = mock(PolicyController.class);
482 List<String> list = new ArrayList<>();
483 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_PM_TestClosedLoopPMPolicy.1.xml',"
484 + " onlyFolders: false}}");
485 for (int i = 0; i < list.size(); i++) {
486 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
488 when(request.getReader()).thenReturn(reader);
489 when(controller.getRoles("Test")).thenReturn(rolesdata);
490 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
491 null)).thenReturn(policyData);
492 servlet.setPolicyController(controller);
493 servlet.setTestUserId("Test");
494 servlet.doPost(request, response);
495 } catch (Exception e1) {
496 logger.error("Exception Occured" + e1);
502 @SuppressWarnings("static-access")
504 public void test11editMicroServicePolicyTest() {
505 GroupPolicyScopeList groupData = new GroupPolicyScopeList();
506 groupData.setGroupName("Test");
507 groupData.setGroupList("resource=SampleResource,service=SampleService,type=SampleType,"
508 + "closedLoopControlName=SampleClosedLoop");
509 List<Object> groupListData = new ArrayList<>();
510 groupListData.add(groupData);
511 commonClassDao = mock(CommonClassDao.class);
512 CreateDcaeMicroServiceController.setCommonClassDao(commonClassDao);
513 List<Object> policyData = new ArrayList<>();
514 String policyContent = "";
515 String configData = "";
517 ClassLoader classLoader = getClass().getClassLoader();
518 policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_MS_vFirewall.1.xml"));
519 configData = IOUtils.toString(classLoader.getResourceAsStream("com.Config_MS_vFirewall.1.json"));
520 } catch (Exception e1) {
521 logger.error("Exception Occured" + e1);
523 PolicyEntity entity = new PolicyEntity();
524 entity.setPolicyName("Config_MS_vFirewall.1.xml");
525 entity.setPolicyData(policyContent);
526 entity.setScope("com");
527 ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
528 configurationEntity.setConfigBody(configData);
529 configurationEntity.setConfigType("JSON");
530 configurationEntity.setConfigurationName("com.Config_MS_vFirewall.1.json");
531 configurationEntity.setDescription("test");
532 entity.setConfigurationData(configurationEntity);
533 policyData.add(entity);
534 PolicyManagerServlet servlet = new PolicyManagerServlet();
535 PolicyController controller = mock(PolicyController.class);
536 List<String> list = new ArrayList<>();
537 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_MS_vFirewall.1.xml', onlyFolders: false}}");
538 for (int i = 0; i < list.size(); i++) {
539 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
541 when(request.getReader()).thenReturn(reader);
542 when(commonClassDao.getDataById(GroupPolicyScopeList.class, "groupList",
543 "resource=SampleResource,service=SampleService,type=SampleType,"
544 + "closedLoopControlName=SampleClosedLoop")).thenReturn(groupListData);
545 when(controller.getRoles("Test")).thenReturn(rolesdata);
546 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
547 null)).thenReturn(policyData);
548 servlet.setPolicyController(controller);
549 servlet.setTestUserId("Test");
550 servlet.doPost(request, response);
551 } catch (Exception e1) {
552 logger.error("Exception Occured" + e1);
558 @SuppressWarnings("static-access")
560 public void test12editFirewallPolicyTest() {
561 List<Object> policyData = new ArrayList<>();
562 String policyContent = "";
563 String configData = "";
565 ClassLoader classLoader = getClass().getClassLoader();
566 policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_FW_TestFireWallPolicy.1.xml"));
567 configData = IOUtils.toString(classLoader.getResourceAsStream("com.Config_FW_TestFireWallPolicy.1.json"));
568 } catch (Exception e1) {
569 logger.error("Exception Occured" + e1);
571 PolicyEntity entity = new PolicyEntity();
572 entity.setPolicyName("Config_FW_TestFireWallPolicy.1.xml");
573 entity.setPolicyData(policyContent);
574 entity.setScope("com");
575 ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
576 configurationEntity.setConfigBody(configData);
577 configurationEntity.setConfigType("JSON");
578 configurationEntity.setConfigurationName("com.Config_FW_TestFireWallPolicy.1.json");
579 configurationEntity.setDescription("test");
580 entity.setConfigurationData(configurationEntity);
581 policyData.add(entity);
582 PolicyManagerServlet servlet = new PolicyManagerServlet();
583 PolicyController controller = mock(PolicyController.class);
584 List<String> list = new ArrayList<>();
585 list.add("{params: { mode: 'EDITFILE', path: '/com/Config_FW_TestFireWallPolicy.1.xml',"
586 + " onlyFolders: false}}");
587 for (int i = 0; i < list.size(); i++) {
588 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
590 when(request.getReader()).thenReturn(reader);
591 when(controller.getRoles("Test")).thenReturn(rolesdata);
592 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
593 null)).thenReturn(policyData);
594 servlet.setPolicyController(controller);
595 servlet.setTestUserId("Test");
596 servlet.doPost(request, response);
597 } catch (Exception e1) {
598 logger.error("Exception Occured" + e1);
604 @SuppressWarnings("static-access")
606 public void test13editActionPolicyTest() {
607 List<Object> policyData = new ArrayList<>();
608 String policyContent = "";
609 String configData = "";
611 ClassLoader classLoader = getClass().getClassLoader();
612 policyContent = IOUtils.toString(classLoader.getResourceAsStream("Action_TestActionPolicy.1.xml"));
613 configData = IOUtils.toString(classLoader.getResourceAsStream("com.Action_TestActionPolicy.1.json"));
614 } catch (Exception e1) {
615 logger.error("Exception Occured" + e1);
617 PolicyEntity entity = new PolicyEntity();
618 entity.setPolicyName("Action_TestActionPolicy.1.xml");
619 entity.setPolicyData(policyContent);
620 entity.setScope("com");
621 ActionBodyEntity configurationEntity = new ActionBodyEntity();
622 configurationEntity.setActionBody(configData);
623 configurationEntity.setActionBodyName("com.Action_TestActionPolicy.1.json");
624 entity.setActionBodyEntity(configurationEntity);
625 policyData.add(entity);
626 PolicyManagerServlet servlet = new PolicyManagerServlet();
627 PolicyController controller = mock(PolicyController.class);
628 List<String> list = new ArrayList<>();
629 list.add("{params: { mode: 'EDITFILE', path: '/com/Action_TestActionPolicy.1.xml'," + " onlyFolders: false}}");
630 for (int i = 0; i < list.size(); i++) {
631 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
633 when(request.getReader()).thenReturn(reader);
634 when(controller.getRoles("Test")).thenReturn(rolesdata);
635 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
636 null)).thenReturn(policyData);
637 servlet.setPolicyController(controller);
638 servlet.setTestUserId("Test");
639 servlet.doPost(request, response);
640 } catch (Exception e1) {
641 logger.error("Exception Occured" + e1);
647 @SuppressWarnings("static-access")
649 public void test14editDecisionPolicyTest() {
650 List<Object> policyData = new ArrayList<>();
651 String policyContent = "";
653 ClassLoader classLoader = getClass().getClassLoader();
654 policyContent = IOUtils
655 .toString(classLoader.getResourceAsStream("Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml"));
656 } catch (Exception e1) {
657 logger.error("Exception Occured" + e1);
659 PolicyEntity entity = new PolicyEntity();
660 entity.setPolicyName("Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml");
661 entity.setPolicyData(policyContent);
662 entity.setScope("com");
663 policyData.add(entity);
664 PolicyManagerServlet servlet = new PolicyManagerServlet();
665 PolicyController controller = mock(PolicyController.class);
666 List<String> list = new ArrayList<>();
667 list.add("{params: { mode: 'EDITFILE', path: '/com/Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml',"
668 + " onlyFolders: false}}");
669 for (int i = 0; i < list.size(); i++) {
670 BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
672 when(request.getReader()).thenReturn(reader);
673 when(controller.getRoles("Test")).thenReturn(rolesdata);
674 when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
675 null)).thenReturn(policyData);
676 servlet.setPolicyController(controller);
677 servlet.setTestUserId("Test");
678 servlet.doPost(request, response);
679 } catch (Exception e1) {
680 logger.error("Exception Occured" + e1);
687 public void test15AddScope() {
688 PolicyManagerServlet servlet = new PolicyManagerServlet();
689 PolicyController controller = mock(PolicyController.class);
690 List<BufferedReader> readers = new ArrayList<>();
691 readers.add(new BufferedReader(new StringReader("{params: { mode: 'ADDFOLDER', path: '/', name: 'Test'}}")));
692 readers.add(new BufferedReader(new StringReader("{params: { mode: 'ADDFOLDER', path: '/', name: 'Test*&'}}")));
693 readers.add(new BufferedReader(
694 new StringReader("{params: { mode: 'ADDFOLDER', path: '/Test', subScopename: 'Test1'}}")));
695 for (int i = 0; i < readers.size(); i++) {
697 when(request.getReader()).thenReturn(readers.get(i));
698 PolicyManagerServlet.setPolicyController(controller);
699 servlet.doPost(request, response);
700 assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
701 } catch (Exception e1) {
702 logger.error("Exception Occured" + e1);
709 public void test16Clone() {
710 PolicyManagerServlet servlet = new PolicyManagerServlet();
711 PolicyController controller = mock(PolicyController.class);
712 List<BufferedReader> readers = new ArrayList<>();
713 when(controller.getEntityItem(ConfigurationDataEntity.class, "configurationName",
714 "com.Config_SampleTest1206.1.txt")).thenReturn(configurationEntity);
715 when(controller.getDataByQuery(
716 "FROM PolicyEntity where policyName = :oldPolicySplit_1 and scope = :oldPolicySplit_0", null))
717 .thenReturn(basePolicyData);
718 readers.add(new BufferedReader(new StringReader("{params: { mode: 'COPY', path: 'com.Config_test.1.xml',"
719 + " newPath: 'com.Config_testClone.1.xml'}}")));
720 for (int i = 0; i < readers.size(); i++) {
722 when(request.getReader()).thenReturn(readers.get(i));
723 PolicyManagerServlet.setPolicyController(controller);
724 servlet.doPost(request, response);
725 assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
726 } catch (Exception e1) {
727 logger.error("Exception Occured" + e1);
734 public void test17Rename() {
735 PolicyManagerServlet servlet = new PolicyManagerServlet();
736 PolicyController controller = mock(PolicyController.class);
737 List<BufferedReader> readers = new ArrayList<>();
738 when(controller.getEntityItem(ConfigurationDataEntity.class, "configurationName",
739 "com.Config_SampleTest1206.1.txt")).thenReturn(configurationEntity);
740 when(controller.getDataByQuery(
741 "FROM PolicyEntity where policyName = :oldPolicySplit_1 and scope = :oldPolicySplit_0", null))
742 .thenReturn(basePolicyData);
743 readers.add(new BufferedReader(new StringReader("{params: { mode: 'RENAME', path: 'com.Config_test.1.xml',"
744 + " newPath: 'com.Config_testClone.1.xml'}}")));
745 for (int i = 0; i < readers.size(); i++) {
747 when(request.getReader()).thenReturn(readers.get(i));
748 PolicyManagerServlet.setPolicyController(controller);
749 servlet.doPost(request, response);
750 assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
751 } catch (Exception e1) {
752 logger.error("Exception Occured" + e1);
759 public void test18RenameScope() throws Exception {
760 PolicyManagerServlet servlet = new PolicyManagerServlet();
761 PolicyController controller = mock(PolicyController.class);
762 List<BufferedReader> readers = new ArrayList<>();
763 readers.add(new BufferedReader(new StringReader("{params: { mode: 'RENAME', path: 'com', newPath: 'Test'}}")));
764 for (int i = 0; i < readers.size(); i++) {
766 when(request.getReader()).thenReturn(readers.get(i));
767 PolicyManagerServlet.setPolicyController(controller);
768 servlet.doPost(request, response);
769 assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
770 } catch (Exception e1) {
771 logger.error("Exception Occured" + e1);
776 String inScopeName = "\\\\\\\\inScopeName";
777 String newScopeName = "\\\\\\\\newScopeName";
778 List<Object> scopesList = new ArrayList<Object>();
779 PolicyEditorScopes mockPolicyEditorScope = Mockito.mock(PolicyEditorScopes.class);
780 scopesList.add(mockPolicyEditorScope);
781 when(mockPolicyEditorScope.getScopeName()).thenReturn("inScopeName");
782 Whitebox.invokeMethod(servlet, "renameScope", scopesList, inScopeName, newScopeName, controller);
783 verify(mockPolicyEditorScope, atLeast(1)).getScopeName();
787 public void test19SetPolicyNames() {
788 JsonArray mockJsonArray = Mockito.mock(JsonArray.class);
789 PolicyManagerServlet.setPolicyNames(mockJsonArray);
790 assertEquals(mockJsonArray, PolicyManagerServlet.getPolicyNames());
794 public void test20DoPostSetErrorException() throws IOException {
795 PolicyManagerServlet servlet = new PolicyManagerServlet();
796 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
797 HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
798 doThrow(IOException.class).when(mockRequest).getReader();
799 doThrow(IOException.class).when(mockResponse).sendError(any(Integer.class), any(String.class));
800 servlet.doPost(mockRequest, mockResponse);
801 verify(mockRequest).getReader();
805 public void test21DoPostException() throws IOException {
806 PolicyManagerServlet servlet = new PolicyManagerServlet();
807 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
808 HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
810 doThrow(IOException.class).when(mockRequest).getReader();
811 doThrow(IOException.class).when(mockResponse).sendError(any(Integer.class), any(String.class));
812 doThrow(IOException.class).when(mockResponse).getWriter();
814 servlet.doPost(mockRequest, mockResponse);
815 verify(mockRequest).getReader();
816 verify(mockResponse).getWriter();
820 public void test22DoPostSuccess() throws IOException {
821 PolicyManagerServlet servlet = new PolicyManagerServlet();
822 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
823 HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
824 PrintWriter mockPrintWriter = Mockito.mock(PrintWriter.class);
826 doThrow(IOException.class).when(mockRequest).getReader();
827 when(mockResponse.getWriter()).thenReturn(mockPrintWriter);
829 servlet.doPost(null, mockResponse);
830 verify(mockResponse).getWriter();
833 @PrepareForTest(ServletFileUpload.class)
835 public void test23DoPostUploadFileException() {
836 PolicyManagerServlet servlet = new PolicyManagerServlet();
837 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
838 HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
839 PowerMockito.mockStatic(ServletFileUpload.class);
840 when(ServletFileUpload.isMultipartContent(mockRequest)).thenReturn(true);
841 servlet.doPost(mockRequest, mockResponse);
844 @PrepareForTest({PolicyController.class, IOUtils.class})
846 public void test24ProcessFormFile() throws Exception {
847 PolicyManagerServlet servlet = new PolicyManagerServlet();
848 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
849 FileItem mockFileItem = Mockito.mock(FileItem.class);
850 PowerMockito.mockStatic(PolicyController.class);
851 PowerMockito.mockStatic(IOUtils.class);
852 InputStream mockInputStream = Mockito.mock(InputStream.class);
854 long fileSizeLimit = 10;
855 when(PolicyController.getFileSizeLimit()).thenReturn(fileSizeLimit);
856 when(mockFileItem.getName()).thenReturn("testFileName.xls");
857 when(mockFileItem.getInputStream()).thenReturn(mockInputStream);
858 when(mockFileItem.getSize()).thenReturn(fileSizeLimit + 1);
860 Whitebox.invokeMethod(servlet, "processFormFile", mockRequest, mockFileItem);
861 verify(mockFileItem, atLeast(1)).getName();
862 verify(mockFileItem, atLeast(1)).getSize();
864 when(mockFileItem.getName()).thenReturn("testFileName.txt");
865 Whitebox.invokeMethod(servlet, "processFormFile", mockRequest, mockFileItem);
866 verify(mockFileItem, atLeast(1)).getName();
868 when(mockFileItem.getSize()).thenReturn(fileSizeLimit);
869 when(mockFileItem.getName()).thenReturn("testFileName.xls");
870 when(mockFileItem.getInputStream()).thenThrow(IOException.class);
871 Whitebox.invokeMethod(servlet, "processFormFile", mockRequest, mockFileItem);
872 verify(mockFileItem, atLeast(1)).getName();
873 verify(mockFileItem, atLeast(1)).getInputStream();
874 verify(mockFileItem, atLeast(1)).getSize();
878 public void test25SearchPolicyList() throws Exception {
879 PolicyManagerServlet servlet = new PolicyManagerServlet();
880 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
881 JSONObject mockJSONObject = Mockito.mock(JSONObject.class);
883 mockJSONObject.append("policyList", "sampleValue");
885 Object res = Whitebox.invokeMethod(servlet, "searchPolicyList", mockJSONObject, mockRequest);
886 assert (res instanceof JSONObject);
887 assertNotNull(((JSONObject) res).get("result"));
890 @PrepareForTest({UserUtils.class, org.onap.policy.utils.UserUtils.class})
892 public void test26LookupPolicyData() throws Exception {
893 PowerMockito.mockStatic(UserUtils.class);
894 PowerMockito.mockStatic(org.onap.policy.utils.UserUtils.class);
895 PolicyManagerServlet servlet = new PolicyManagerServlet();
896 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
897 User mockUser = Mockito.mock(User.class);
898 UserInfo mockUserInfo = Mockito.mock(UserInfo.class);
899 PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
900 List<JSONObject> resultList = new ArrayList<>();
901 JSONObject mockJSONObject = Mockito.mock(JSONObject.class);
902 resultList.add(mockJSONObject);
904 Date mockDate = Mockito.mock(Date.class);
905 List<Object> policyDataList = new ArrayList<>();
906 PolicyVersion mockPolicyVersion = Mockito.mock(PolicyVersion.class);
907 policyDataList.add(mockPolicyVersion);
908 JSONArray mockJSONArray = Mockito.mock(JSONArray.class);
910 List<Object> rolesList = new ArrayList<>();
911 Roles adminRole = Mockito.mock(Roles.class);
912 Roles editorRole = Mockito.mock(Roles.class);
913 Roles guestRole = Mockito.mock(Roles.class);
914 adminRole.setRole("admin");
915 editorRole.setRole("editor");
916 guestRole.setRole("guest");
918 List<Object> filterDataList = new ArrayList<>();
919 PolicyVersion mockPolicyVersionFilter = Mockito.mock(PolicyVersion.class);
920 filterDataList.add(mockPolicyVersionFilter);
921 List<String> listOfRoles = new ArrayList<String>();
922 Set<String> setOfScopes = new HashSet<String>();
923 Pair<Set<String>, List<String>> pairList = new Pair<Set<String>, List<String>>(setOfScopes, listOfRoles);
925 PolicyManagerServlet.setPolicyController(mockPolicyController);
926 PowerMockito.when(UserUtils.getUserSession(mockRequest)).thenReturn(mockUser);
927 when(mockPolicyController.getRoles(any(String.class))).thenReturn(rolesList);
928 PowerMockito.when(org.onap.policy.utils.UserUtils.checkRoleAndScope(rolesList)).thenReturn(pairList);
929 when(mockPolicyController.getData(any(Class.class))).thenReturn(filterDataList);
930 when(mockPolicyVersion.getPolicyName()).thenReturn("sampleName");
931 when(mockPolicyVersion.getModifiedDate()).thenReturn(mockDate);
932 when(mockPolicyVersion.getActiveVersion()).thenReturn(1);
933 when(mockPolicyVersion.getCreatedBy()).thenReturn("sampleUserName");
934 when(mockPolicyVersion.getModifiedBy()).thenReturn("sampleUserName");
935 when(mockPolicyController.getEntityItem(UserInfo.class, "userLoginId", "sampleUserName"))
936 .thenReturn(mockUserInfo);
937 when(mockUserInfo.getUserName()).thenReturn("testUserName");
939 Whitebox.invokeMethod(servlet, "getPolicyControllerInstance");
941 boolean result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
942 mockPolicyController, resultList);
945 verify(mockPolicyController, atLeast(1)).getRoles(any());
946 verify(mockPolicyController, atLeast(1)).getRoles(any());
947 verify(mockPolicyController, atLeast(1)).getData(any());
948 verify(mockPolicyController, atLeast(1)).getEntityItem(UserInfo.class, "userLoginId", "sampleUserName");
949 verify(mockPolicyVersion, atLeast(1)).getPolicyName();
950 verify(mockPolicyVersion, atLeast(1)).getModifiedDate();
951 verify(mockPolicyVersion, atLeast(1)).getActiveVersion();
952 verify(mockPolicyVersion, atLeast(1)).getCreatedBy();
953 verify(mockPolicyVersion, atLeast(1)).getModifiedBy();
954 verify(mockUserInfo, atLeast(1)).getUserName();
956 when(mockPolicyVersionFilter.getPolicyName()).thenReturn("testAdminScope" + File.separator);
957 result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
958 mockPolicyController, resultList);
960 verify(mockPolicyVersionFilter, atLeast(1)).getPolicyName();
962 setOfScopes.add("testAdminScope");
963 result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
964 mockPolicyController, resultList);
966 verify(mockPolicyVersionFilter, atLeast(1)).getPolicyName();
968 listOfRoles.add("super-admin");
969 listOfRoles.add("super-editor");
970 listOfRoles.add("super-guest");
971 filterDataList.clear();
973 result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
974 mockPolicyController, resultList);
976 verify(mockPolicyController, atLeast(1)).getData(any(Class.class));
979 listOfRoles.add("admin");
980 listOfRoles.add("editor");
981 listOfRoles.add("guest");
983 result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
984 mockPolicyController, resultList);
987 setOfScopes.add("testScope");
988 result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, mockJSONArray,
989 mockPolicyController, resultList);
994 public void test27DeleteEntityFromEsAndPolicyEntityTable() throws Exception {
995 PolicyManagerServlet servlet = new PolicyManagerServlet();
996 PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
997 PolicyRestController mockPolicyRestController = Mockito.mock(PolicyRestController.class);
998 PolicyEntity mockPolicyEntity = Mockito.mock(PolicyEntity.class);
999 ConfigurationDataEntity mockConfigDataEntity = Mockito.mock(ConfigurationDataEntity.class);
1000 ActionBodyEntity mockActionBodyEntity = Mockito.mock(ActionBodyEntity.class);
1002 String policyNamewithoutExtension = "Config_";
1003 String configName = "";
1004 String actionBodyName = "";
1006 when(mockPolicyEntity.getScope()).thenReturn("");
1007 when(mockPolicyEntity.getPolicyName()).thenReturn("");
1008 Mockito.doNothing().when(mockPolicyRestController).deleteElasticData(any(String.class));
1009 Mockito.doNothing().when(mockPolicyController).deleteData(mockPolicyEntity);
1010 when(mockPolicyEntity.getConfigurationData()).thenReturn(mockConfigDataEntity);
1011 when(mockPolicyEntity.getActionBodyEntity()).thenReturn(mockActionBodyEntity);
1012 when(mockConfigDataEntity.getConfigurationName()).thenReturn(configName);
1013 when(mockActionBodyEntity.getActionBodyName()).thenReturn(actionBodyName);
1014 when(mockPolicyRestController.notifyOtherPapsToUpdateConfigurations("delete", null, configName)).thenReturn("");
1016 Whitebox.invokeMethod(servlet, "deleteEntityFromEsAndPolicyEntityTable", mockPolicyController,
1017 mockPolicyRestController, mockPolicyEntity, policyNamewithoutExtension);
1019 verify(mockPolicyEntity, atLeast(1)).getScope();
1020 verify(mockPolicyEntity, atLeast(1)).getPolicyName();
1021 verify(mockPolicyEntity, atLeast(1)).getConfigurationData();
1022 verify(mockConfigDataEntity, atLeast(1)).getConfigurationName();
1024 policyNamewithoutExtension = "Action_";
1025 when(mockPolicyRestController.notifyOtherPapsToUpdateConfigurations("delete", null, actionBodyName))
1028 Whitebox.invokeMethod(servlet, "deleteEntityFromEsAndPolicyEntityTable", mockPolicyController,
1029 mockPolicyRestController, mockPolicyEntity, policyNamewithoutExtension);
1031 verify(mockPolicyEntity, atLeast(1)).getScope();
1032 verify(mockPolicyEntity, atLeast(1)).getPolicyName();
1033 verify(mockPolicyEntity, atLeast(1)).getActionBodyEntity();
1034 verify(mockActionBodyEntity, atLeast(1)).getActionBodyName();
1036 policyNamewithoutExtension = "Other_";
1037 Whitebox.invokeMethod(servlet, "deleteEntityFromEsAndPolicyEntityTable", mockPolicyController,
1038 mockPolicyRestController, mockPolicyEntity, policyNamewithoutExtension);
1040 verify(mockPolicyEntity, atLeast(1)).getScope();
1041 verify(mockPolicyEntity, atLeast(1)).getPolicyName();
1042 verify(mockPolicyRestController, atLeast(1)).deleteElasticData(any(String.class));
1043 verify(mockPolicyController, atLeast(1)).deleteData(mockPolicyEntity);
1046 @PrepareForTest(UserUtils.class)
1048 public void test28Delete() throws Exception {
1049 PolicyManagerServlet servlet = new PolicyManagerServlet();
1050 JSONObject mockJSONObject = Mockito.mock(JSONObject.class);
1051 HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
1052 User mockUser = Mockito.mock(User.class);
1053 PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
1054 PowerMockito.mockStatic(UserUtils.class);
1055 List<Object> policyEntityList = new ArrayList<Object>();
1056 PolicyEntity mockPolicyEntity = Mockito.mock(PolicyEntity.class);
1057 policyEntityList.add(mockPolicyEntity);
1060 PowerMockito.when(UserUtils.getUserSession(mockRequest)).thenReturn(mockUser);
1061 PolicyManagerServlet.setPolicyController(mockPolicyController);
1062 when(mockUser.getOrgUserId()).thenReturn("sampleUserId");
1063 when(mockJSONObject.getString("path")).thenReturn("/sampleScope:samplePolicyName.1.xml");
1064 when(mockJSONObject.has("deleteVersion")).thenReturn(true);
1065 when(mockJSONObject.getString("deleteVersion")).thenReturn("ALL");
1066 when(mockPolicyController.getDataByQuery(any(String.class), any(SimpleBindings.class)))
1067 .thenReturn(policyEntityList);
1068 when(mockPolicyEntity.getPolicyId()).thenReturn(policyId);
1069 when(mockPolicyEntity.getScope()).thenReturn("sampleScope");
1070 when(mockPolicyEntity.getPolicyName()).thenReturn("samplePolicyName");
1072 JSONObject returnObj = Whitebox.invokeMethod(servlet, "delete", mockJSONObject, mockRequest);
1073 assertTrue(returnObj.has("result"));
1074 verify(mockUser, atLeast(1)).getOrgUserId();
1075 verify(mockJSONObject, atLeast(1)).getString(any(String.class));
1076 verify(mockJSONObject, atLeast(1)).has(any(String.class));
1077 verify(mockPolicyController, atLeast(1)).getDataByQuery(any(String.class), any(SimpleBindings.class));
1078 verify(mockPolicyEntity, atLeast(1)).getPolicyId();
1079 verify(mockPolicyEntity, atLeast(1)).getScope();
1080 verify(mockPolicyEntity, atLeast(1)).getPolicyName();
1082 when(mockJSONObject.getString("path")).thenReturn("/sampleScope\\:samplePolicyName.1.xml");
1083 when(mockJSONObject.getString("deleteVersion")).thenReturn("CURRENT");
1084 returnObj = Whitebox.invokeMethod(servlet, "delete", mockJSONObject, mockRequest);
1085 assertTrue(returnObj.has("result"));
1086 verify(mockJSONObject, atLeast(1)).getString(any(String.class));
1088 when(mockJSONObject.getString("path")).thenReturn("/sampleScope:samplePolicyName.2.txt");
1089 when(mockJSONObject.has("deleteVersion")).thenReturn(false);
1090 returnObj = Whitebox.invokeMethod(servlet, "delete", mockJSONObject, mockRequest);
1091 assertTrue(returnObj.has("result"));
1092 verify(mockJSONObject, atLeast(1)).getString("path");
1093 verify(mockJSONObject, atLeast(1)).has("deleteVersion");
1097 public void test29ParsePolicyList() throws Exception {
1098 PolicyManagerServlet servlet = new PolicyManagerServlet();
1099 List<JSONObject> resultList = new ArrayList<JSONObject>();
1100 PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
1101 String policyName = "sampleName\\";
1102 String policyVersion = "sampleVersion";
1103 List<Object> activeDataList = new ArrayList<Object>();
1104 PolicyVersion mockPolicyVersion = Mockito.mock(PolicyVersion.class);
1105 activeDataList.add(mockPolicyVersion);
1106 Date mockDate = Mockito.mock(Date.class);
1108 when(mockPolicyController.getDataByQuery(any(String.class), any(SimpleBindings.class)))
1109 .thenReturn(activeDataList);
1110 when(mockPolicyVersion.getPolicyName()).thenReturn("testPolicyName");
1111 when(mockPolicyVersion.getModifiedDate()).thenReturn(mockDate);
1112 when(mockPolicyVersion.getActiveVersion()).thenReturn(1);
1113 when(mockPolicyVersion.getCreatedBy()).thenReturn("sampleUserName");
1114 when(mockPolicyVersion.getModifiedBy()).thenReturn("sampleUserName");
1115 Whitebox.invokeMethod(servlet, "parsePolicyList", resultList, mockPolicyController, policyName, policyVersion);
1116 verify(mockPolicyController, atLeast(1)).getDataByQuery(any(String.class), any(SimpleBindings.class));
1117 verify(mockPolicyVersion, atLeast(1)).getPolicyName();
1118 verify(mockPolicyVersion, atLeast(1)).getModifiedDate();
1119 verify(mockPolicyVersion, atLeast(1)).getActiveVersion();
1120 verify(mockPolicyVersion, atLeast(1)).getCreatedBy();
1121 verify(mockPolicyVersion, atLeast(1)).getModifiedBy();