From 0154925df97446afa15ab60d59c57237dfa7b2e9 Mon Sep 17 00:00:00 2001 From: bobbymander Date: Fri, 15 Nov 2019 13:59:18 -0500 Subject: [PATCH] More JUnit additions for PAP-REST Issue-ID: POLICY-2130 Change-Id: Ia111e5fd6dfba1e03f157ff95f91ef65df293043 Signed-off-by: bobbymander --- .../pap/xacml/rest/service/MetricService.java | 11 ++--- .../OptimizationDictionaryControllerTest.java | 1 - .../elk/PolicyElasticSearchControllerTest.java | 55 +++++++++++++++++----- .../elk/{ => client}/ElkConnectorImplTest.java | 35 ++++++++++++-- .../pap/xacml/rest/service/MetricServiceTest.java | 21 ++++++++- 5 files changed, 98 insertions(+), 25 deletions(-) rename ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/{ => client}/ElkConnectorImplTest.java (71%) diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java index 594112636..36dd5fdee 100644 --- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java +++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java @@ -21,13 +21,11 @@ package org.onap.policy.pap.xacml.rest.service; import com.att.research.xacml.api.pap.PDPPolicy; - +import com.google.common.annotations.VisibleForTesting; import java.util.HashSet; import java.util.List; import java.util.Set; - import javax.servlet.http.HttpServletResponse; - import org.json.JSONObject; import org.onap.policy.common.logging.eelf.MessageCodes; import org.onap.policy.common.logging.eelf.PolicyLogger; @@ -51,8 +49,9 @@ public class MetricService { } + @VisibleForTesting @Autowired - private MetricService(CommonClassDao commonClassDao) { + protected MetricService(CommonClassDao commonClassDao) { MetricService.commonClassDao = commonClassDao; } @@ -79,7 +78,7 @@ public class MetricService { json.put("totalCount", totalCount); if (pdpCount > 0 && papCount > 0 && totalCount > 0) { PolicyLogger.info( - "Metrics have been found on the Policy Engine for the number of policies on the PAP and PDP."); + "Metrics have been found on the Policy Engine for the number of policies on the PAP and PDP."); response.setStatus(HttpServletResponse.SC_OK); response.addHeader("successMapKey", "success"); response.addHeader("operation", "getMetrics"); @@ -87,7 +86,7 @@ public class MetricService { return; } else { String message = - "The policy count on the PAP and PDP is 0. Please check the database and file system to correct this error."; + "The policy count on the PAP and PDP is 0. Please check the database and file system to correct this error."; response.setStatus(HttpServletResponse.SC_BAD_REQUEST); response.addHeader(errorMsg, message); return; diff --git a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryControllerTest.java b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryControllerTest.java index d990b9002..f109dbdda 100644 --- a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryControllerTest.java +++ b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryControllerTest.java @@ -194,7 +194,6 @@ public class OptimizationDictionaryControllerTest { req.setBodyContent("{\n\"modelType\": \"type.yml\", \"dataOrderInfo\": \"info\", \"userid\": \"id\", " + "\"optimizationModelsDictionaryData\": {\"description\": \"desc\", \"modelName\": \"name\", \"version\": \"1.0\"}, " + "\"classMap\": \"{\\\"dep\\\":\\\"{\\\"dependency\\\":\\\"depval\\\"}\\\"}\" }\n"); - // + "\"classMap\": \"{\\\"dep\\\":\\\"dependency\\\"}\" }\n"); assertThatThrownBy(() -> controller.saveOptimizationModelsDictionary(req, response)) .isInstanceOf(NullPointerException.class); diff --git a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/PolicyElasticSearchControllerTest.java b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/PolicyElasticSearchControllerTest.java index 9456dd4e4..38102afb0 100644 --- a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/PolicyElasticSearchControllerTest.java +++ b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/PolicyElasticSearchControllerTest.java @@ -20,37 +20,45 @@ package org.onap.policy.pap.xacml.rest.elk; +import static org.assertj.core.api.Assertions.assertThatCode; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.mockito.Mockito.when; import java.io.BufferedReader; +import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; - +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; +import org.onap.policy.pap.xacml.rest.elk.client.ElkConnector.PolicyIndexType; import org.onap.policy.pap.xacml.rest.elk.client.PolicyElasticSearchController; +import org.onap.policy.rest.adapter.PolicyRestAdapter; +import org.onap.policy.rest.dao.CommonClassDao; +import org.springframework.mock.web.MockHttpServletResponse; public class PolicyElasticSearchControllerTest { - private PolicyElasticSearchController conroller; + private PolicyElasticSearchController controller; private HttpServletRequest request = null; private HttpServletResponse response = null; @Before public void setup() { - conroller = new PolicyElasticSearchController(); + controller = new PolicyElasticSearchController(); request = Mockito.mock(HttpServletRequest.class); - response = Mockito.mock(HttpServletResponse.class); + response = new MockHttpServletResponse(); } @Test - public void testSearchDictionary() { + public void testSearchDictionary() throws IOException { List jsonString = new ArrayList<>(); jsonString.add("{\"type\":\"attribute\",\"data\":{\"xacmlId\":\"Test\"}}"); jsonString.add("{\"type\":\"onapName\",\"data\":{\"onapName\":\"Test\"}}"); @@ -71,12 +79,35 @@ public class PolicyElasticSearchControllerTest { jsonString.add("{\"type\":\"safeRisk\",\"data\":{\"name\":\"Test\"}}"); jsonString.add("{\"type\":\"safePolicyWarning\",\"data\":{\"name\":\"Test\"}}"); for (int i = 0; i < jsonString.size(); i++) { - try (BufferedReader br = new BufferedReader(new StringReader(jsonString.get(i)))) { - when(request.getReader()).thenReturn(br); - conroller.searchDictionary(request, response); - } catch (Exception e) { - assertEquals(NullPointerException.class, e.getClass()); - } + BufferedReader br = new BufferedReader(new StringReader(jsonString.get(i))); + when(request.getReader()).thenReturn(br); + assertThatCode(() -> controller.searchDictionary(request, response)).doesNotThrowAnyException(); } } + + @Test + public void testController() throws IOException { + CommonClassDao dao = Mockito.mock(CommonClassDao.class); + PolicyElasticSearchController controller = new PolicyElasticSearchController(dao); + assertEquals(PolicyIndexType.all, controller.toPolicyIndexType(null)); + assertEquals(PolicyIndexType.config, controller.toPolicyIndexType("config")); + + Map searchKeys = new HashMap(); + searchKeys.put("key", "value"); + assertThatThrownBy(() -> controller.search(PolicyIndexType.config, "text", searchKeys)) + .isInstanceOf(Exception.class); + + when(request.getParameter("policyName")).thenReturn("policyName"); + when(request.getParameter("action")).thenReturn("search"); + when(request.getReader()) + .thenReturn(new BufferedReader(new StringReader("{\"searchdata\": { \"query\": \"value space\", " + + "\"policyType\": \"all\", " + "\"closedLooppolicyType\": \"type\", " + "\"onapName\": \"pef\", " + + "\"vnfType\": \"vnf\", " + "\"policyStatus\": \"active\", " + "\"vproAction\": \"reboot\", " + + "\"serviceType\": \"type\", " + "\"bindTextSearch\": \"pef\", " + "\"d2Service\": \"vDNS\"} }"))); + controller.searchPolicy(request, response); + assertEquals(HttpServletResponse.SC_OK, response.getStatus()); + + PolicyRestAdapter policyData = new PolicyRestAdapter(); + assertFalse(controller.deleteElk(policyData)); + } } diff --git a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/ElkConnectorImplTest.java b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/client/ElkConnectorImplTest.java similarity index 71% rename from ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/ElkConnectorImplTest.java rename to ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/client/ElkConnectorImplTest.java index 87f56e284..8eb003ca8 100644 --- a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/ElkConnectorImplTest.java +++ b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/elk/client/ElkConnectorImplTest.java @@ -18,8 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.onap.policy.pap.xacml.rest.elk; +package org.onap.policy.pap.xacml.rest.elk.client; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; @@ -27,15 +28,14 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import io.searchbox.client.JestResult; - import java.io.IOException; import java.lang.reflect.Method; - +import java.util.HashMap; +import java.util.Map; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.onap.policy.pap.xacml.rest.elk.client.ElkConnector.PolicyIndexType; -import org.onap.policy.pap.xacml.rest.elk.client.ElkConnectorImpl; import org.onap.policy.rest.adapter.PolicyRestAdapter; public class ElkConnectorImplTest { @@ -143,4 +143,31 @@ public class ElkConnectorImplTest { impl.search(PolicyIndexType.config, "search", null); fail("Expected exception to be thrown"); } + + @Test + public void testImplNegCases() throws IOException { + ElkConnectorImpl impl = new ElkConnectorImpl(); + Map filter = new HashMap(); + assertThatThrownBy(() -> impl.isType(PolicyIndexType.config)).isInstanceOf(IOException.class); + assertThatThrownBy(() -> impl.isIndex()).isInstanceOf(IOException.class); + assertThatThrownBy(() -> impl.search(null, null)).isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> impl.search(null, "")).isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> impl.search(null, ";;;")).isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> impl.search(null, "foo")).isInstanceOf(IllegalStateException.class); + assertThatThrownBy(() -> impl.search(PolicyIndexType.all, "foo")).isInstanceOf(IllegalStateException.class); + + assertThatThrownBy(() -> impl.search(null, null, null)).isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> impl.search(null, null, filter)).isInstanceOf(IllegalArgumentException.class); + filter.put("key", "value"); + assertThatThrownBy(() -> impl.search(null, ";;;", filter)).isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> impl.search(null, "foo", filter)).isInstanceOf(IllegalStateException.class); + assertThatThrownBy(() -> impl.search(PolicyIndexType.config, "foo", filter)) + .isInstanceOf(IllegalStateException.class); + + PolicyRestAdapter adapter = new PolicyRestAdapter(); + adapter.setNewFileName("scope.Decision_newFile"); + adapter.setConfigPolicyType("Config"); + assertThatThrownBy(() -> impl.put(adapter)).isInstanceOf(IOException.class); + assertThatThrownBy(() -> impl.delete(adapter)).isInstanceOf(IllegalStateException.class); + } } diff --git a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/service/MetricServiceTest.java b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/service/MetricServiceTest.java index a4ee0ca77..ebd3292aa 100644 --- a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/service/MetricServiceTest.java +++ b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/service/MetricServiceTest.java @@ -21,15 +21,19 @@ package org.onap.policy.pap.xacml.rest.service; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.mockito.Mockito.when; import com.mockrunner.mock.web.MockHttpServletResponse; - +import java.util.ArrayList; +import java.util.List; import javax.servlet.http.HttpServletResponse; - import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mockito; import org.onap.policy.pap.xacml.rest.XACMLPapServlet; +import org.onap.policy.rest.dao.CommonClassDao; +import org.onap.policy.rest.jpa.PolicyVersion; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @@ -47,4 +51,17 @@ public class MetricServiceTest { MetricService.doGetPolicyMetrics(response); assertEquals(HttpServletResponse.SC_BAD_REQUEST, response.getStatusCode()); } + + @Test + public void testService() { + CommonClassDao dao = Mockito.mock(CommonClassDao.class); + List value = new ArrayList(); + when(dao.getData(PolicyVersion.class)).thenReturn(value); + MetricService service = new MetricService(dao); + assertNotNull(service); + + MockHttpServletResponse response = new MockHttpServletResponse(); + MetricService.doGetPolicyMetrics(response); + assertEquals(HttpServletResponse.SC_BAD_REQUEST, response.getStatusCode()); + } } -- 2.16.6