From 695d88bd7a987a06173fc4fa13f4135916a79a86 Mon Sep 17 00:00:00 2001 From: rb7147 Date: Tue, 6 Feb 2018 09:07:12 -0500 Subject: Policy Resiliency Code Fixes Resolved the issue on updating the configuration files when rename/clone/export/move actions are done through GUI. Fixed the PolicyManagerServlet code. Added test cases for newly added files. Issue-ID: POLICY-609 Change-Id: I9d14f19fe20bbc0e3b3844f85d81f26e34bb26ec Signed-off-by: rb7147 --- .../onap/policy/pap/test/UpdateOthersPAPSTest.java | 116 +++++++++++++++++++++ .../xacml/rest/adapters/UpdateObjectDataTest.java | 39 +++++++ 2 files changed, 155 insertions(+) create mode 100644 ONAP-PAP-REST/src/test/java/org/onap/policy/pap/test/UpdateOthersPAPSTest.java create mode 100644 ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/adapters/UpdateObjectDataTest.java (limited to 'ONAP-PAP-REST/src/test') diff --git a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/test/UpdateOthersPAPSTest.java b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/test/UpdateOthersPAPSTest.java new file mode 100644 index 000000000..f9ed0ac70 --- /dev/null +++ b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/test/UpdateOthersPAPSTest.java @@ -0,0 +1,116 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP-PAP-REST + * ================================================================================ + * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.policy.pap.test; + +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.json.JSONObject; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Matchers; +import org.mockito.Mockito; +import org.onap.policy.common.logging.flexlogger.FlexLogger; +import org.onap.policy.common.logging.flexlogger.Logger; +import org.onap.policy.pap.xacml.rest.UpdateOthersPAPS; +import org.onap.policy.pap.xacml.rest.adapters.UpdateObjectData; +import org.onap.policy.pap.xacml.rest.components.Policy; +import org.onap.policy.rest.dao.CommonClassDao; +import org.onap.policy.rest.jpa.PolicyDBDaoEntity; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.springframework.mock.web.MockHttpServletResponse; + +@RunWith(PowerMockRunner.class) +public class UpdateOthersPAPSTest { + + private static Logger logger = FlexLogger.getLogger(UpdateOthersPAPSTest.class); + private static CommonClassDao commonClassDao; + private HttpServletRequest request; + private MockHttpServletResponse response; + + @Before + public void setUp() throws Exception { + logger.info("setUp: Entering"); + commonClassDao = mock(CommonClassDao.class); + + request = mock(HttpServletRequest.class); + response = new MockHttpServletResponse(); + List data = new ArrayList<>(); + PolicyDBDaoEntity entity = new PolicyDBDaoEntity(); + entity.setPolicyDBDaoUrl("http://localhost:8070/pap"); + entity.setUsername("test"); + entity.setPassword("test"); + + PolicyDBDaoEntity entity1 = new PolicyDBDaoEntity(); + entity1.setPolicyDBDaoUrl("http://localhost:8071/pap"); + entity1.setUsername("test"); + entity1.setPassword("test"); + + data.add(entity); + data.add(entity1); + System.setProperty("xacml.rest.pap.url","http://localhost:8070/pap"); + when(commonClassDao.getData(PolicyDBDaoEntity.class)).thenReturn(data); + } + + @Test + public void testNotifyOthersPAPsToUpdateConfigurations(){ + UpdateOthersPAPS updateOtherPaps = new UpdateOthersPAPS(); + UpdateOthersPAPS.setCommonClassDao(commonClassDao); + when(request.getParameter("action")).thenReturn("rename"); + when(request.getParameter("newPolicyName")).thenReturn("com.Config_newTest.1.json"); + when(request.getParameter("oldPolicyName")).thenReturn("com.Config_Test.1.json"); + updateOtherPaps.notifyOthersPAPsToUpdateConfigurations(request, response); + try { + JSONObject responseString = new JSONObject(response.getContentAsString()); + assertTrue(responseString.get("data").toString().contains("http://localhost:8071/pap")); + } catch (Exception e) { + fail(); + } + } + + @PrepareForTest({Policy.class}) + @Test + public void testUpdateConfiguration() throws Exception{ + UpdateOthersPAPS updateOtherPaps = new UpdateOthersPAPS(); + UpdateObjectData data = new UpdateObjectData(); + PowerMockito.mockStatic(Policy.class); + data.setNewPolicyName("com.Config_newTest.1.json"); + data.setOldPolicyName("com.Config_Test.1.json"); + data.setAction("rename"); + when(Policy.getConfigHome()).thenReturn("test"); + when(Policy.getActionHome()).thenReturn("test"); + File mockedFile = Mockito.mock(File.class); + Mockito.when(mockedFile.exists()).thenReturn(true); + PowerMockito.whenNew(File.class).withParameterTypes(String.class).withArguments(Matchers.anyString()).thenReturn(mockedFile); + updateOtherPaps.updateConfiguration(data, response); + assertTrue(response.getStatus() == 200); + } +} diff --git a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/adapters/UpdateObjectDataTest.java b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/adapters/UpdateObjectDataTest.java new file mode 100644 index 000000000..2c1bc1c53 --- /dev/null +++ b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/adapters/UpdateObjectDataTest.java @@ -0,0 +1,39 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP Policy Engine + * ================================================================================ + * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.policy.pap.xacml.rest.adapters; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class UpdateObjectDataTest { + + @Test + public void testClosedLoopFaultTrapDatas(){ + UpdateObjectData updateObject = new UpdateObjectData(); + updateObject.setAction("Rename"); + assertTrue("Rename".equals(updateObject.getAction())); + updateObject.setNewPolicyName("com.Config_test1.1.json"); + assertTrue("com.Config_test1.1.json".equals(updateObject.getNewPolicyName())); + updateObject.setOldPolicyName("com.Config_test.1.json"); + assertTrue("com.Config_test.1.json".equals(updateObject.getOldPolicyName())); + } + +} -- cgit 1.2.3-korg