From 98873e8c202426b9d74d9460ebd30b57fa4c7eb7 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Wed, 28 Aug 2019 15:20:18 -0400 Subject: Get policy type from policy-api Added a class to retrieve a policy type from the policy-api. Updated property files to include parameters that are needed to configure it. Updates per review comments: - change PolicyApi to PolicyApiCaller - use HttpClientFactory - removed superfluous constructors from exception classes - changed parameters to use RestServerParameters instead of BusTopicParams Change-Id: I8aad6ca5a733c8ad9cc983496e745ebe7400dd17 Issue-ID: POLICY-1911 Signed-off-by: Jim Hahn --- .../pdpx/main/parameters/CommonTestData.java | 66 +++++++++++++++++----- .../parameters/TestXacmlPdpParameterGroup.java | 45 +++++++++++---- .../onap/policy/pdpx/main/rest/TestDecision.java | 8 ++- 3 files changed, 92 insertions(+), 27 deletions(-) (limited to 'main/src/test/java/org/onap') diff --git a/main/src/test/java/org/onap/policy/pdpx/main/parameters/CommonTestData.java b/main/src/test/java/org/onap/policy/pdpx/main/parameters/CommonTestData.java index fd79035e..76d07045 100644 --- a/main/src/test/java/org/onap/policy/pdpx/main/parameters/CommonTestData.java +++ b/main/src/test/java/org/onap/policy/pdpx/main/parameters/CommonTestData.java @@ -22,6 +22,7 @@ package org.onap.policy.pdpx.main.parameters; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.TreeMap; @@ -37,14 +38,30 @@ import org.onap.policy.common.utils.coder.StandardCoder; */ public class CommonTestData { - private static final String REST_SERVER_PASSWORD = "zb!XztG34"; + private static final String PASS_KEY = "password"; + private static final String USER_KEY = "userName"; + private static final String PORT_KEY = "port"; + private static final String HOST_KEY = "host"; + private static final String AAF_KEY = "aaf"; + private static final String HTTPS_KEY = "https"; + + private static final String REST_SERVER_PASS = "zb!XztG34"; private static final String REST_SERVER_USER = "healthcheck"; private static final int REST_SERVER_PORT = 6969; private static final String REST_SERVER_HOST = "0.0.0.0"; private static final boolean REST_SERVER_HTTPS = false; private static final boolean REST_SERVER_AAF = false; + + private static final String POLICY_API_PASS = "zb!XztG34"; + private static final String POLICY_API_USER = "healthcheck"; + private static final int POLICY_API_PORT = 6970; + private static final String POLICY_API_HOST = "0.0.0.0"; + private static final boolean POLICY_API_HTTPS = false; + private static final boolean POLICY_API_AAF = false; + public static final String PDPX_GROUP_NAME = "XacmlPdpGroup"; - public static final List TOPIC_PARAMS = Arrays.asList(getTopicParams()); + public static final List TOPIC_PARAMS = + Collections.unmodifiableList(Arrays.asList(getTopicParams())); public static final Coder coder = new StandardCoder(); @@ -69,14 +86,14 @@ public class CommonTestData { */ public Map getRestServerParametersMap(final boolean isEmpty) { final Map map = new TreeMap<>(); - map.put("https", REST_SERVER_HTTPS); - map.put("aaf", REST_SERVER_AAF); + map.put(HTTPS_KEY, REST_SERVER_HTTPS); + map.put(AAF_KEY, REST_SERVER_AAF); if (!isEmpty) { - map.put("host", REST_SERVER_HOST); - map.put("port", REST_SERVER_PORT); - map.put("userName", REST_SERVER_USER); - map.put("password", REST_SERVER_PASSWORD); + map.put(HOST_KEY, REST_SERVER_HOST); + map.put(PORT_KEY, REST_SERVER_PORT); + map.put(USER_KEY, REST_SERVER_USER); + map.put(PASS_KEY, REST_SERVER_PASS); } return map; @@ -90,12 +107,12 @@ public class CommonTestData { */ public Map getRestServerParametersMap(final int port) { final Map map = new TreeMap<>(); - map.put("https", REST_SERVER_HTTPS); - map.put("aaf", REST_SERVER_AAF); - map.put("host", REST_SERVER_HOST); - map.put("port", port); - map.put("userName", REST_SERVER_USER); - map.put("password", REST_SERVER_PASSWORD); + map.put(HTTPS_KEY, REST_SERVER_HTTPS); + map.put(AAF_KEY, REST_SERVER_AAF); + map.put(HOST_KEY, REST_SERVER_HOST); + map.put(PORT_KEY, port); + map.put(USER_KEY, REST_SERVER_USER); + map.put(PASS_KEY, REST_SERVER_PASS); return map; } @@ -116,6 +133,27 @@ public class CommonTestData { } } + /** + * Returns a property map for a RestServerParameters map for test cases. + * + * @param isEmpty boolean value to represent that object created should be empty or not + * @return a property map suitable for constructing an object + */ + public Map getPolicyApiParametersMap(final boolean isEmpty) { + final Map map = new TreeMap<>(); + map.put(HTTPS_KEY, POLICY_API_HTTPS); + map.put(AAF_KEY, POLICY_API_AAF); + + if (!isEmpty) { + map.put(HOST_KEY, POLICY_API_HOST); + map.put(PORT_KEY, POLICY_API_PORT); + map.put(USER_KEY, POLICY_API_USER); + map.put(PASS_KEY, POLICY_API_PASS); + } + + return map; + } + /** * Returns a property map for a TopicParameters map for test cases. * diff --git a/main/src/test/java/org/onap/policy/pdpx/main/parameters/TestXacmlPdpParameterGroup.java b/main/src/test/java/org/onap/policy/pdpx/main/parameters/TestXacmlPdpParameterGroup.java index 1484edfd..c66af0ce 100644 --- a/main/src/test/java/org/onap/policy/pdpx/main/parameters/TestXacmlPdpParameterGroup.java +++ b/main/src/test/java/org/onap/policy/pdpx/main/parameters/TestXacmlPdpParameterGroup.java @@ -57,11 +57,13 @@ public class TestXacmlPdpParameterGroup { public void testXacmlPdpParameterGroup() throws IOException { final RestServerParameters restServerParameters = testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class); + final RestServerParameters policyApiParameters = + testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class); final TopicParameterGroup topicParameterGroup = testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class); final XacmlPdpParameterGroup pdpxParameters = - new XacmlPdpParameterGroup(CommonTestData.PDPX_GROUP_NAME, - restServerParameters, topicParameterGroup, applicationPath.getAbsolutePath()); + new XacmlPdpParameterGroup(CommonTestData.PDPX_GROUP_NAME, restServerParameters, + policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath()); final GroupValidationResult validationResult = pdpxParameters.validate(); assertTrue(validationResult.isValid()); assertEquals(restServerParameters.getHost(), pdpxParameters.getRestServerParameters().getHost()); @@ -77,10 +79,12 @@ public class TestXacmlPdpParameterGroup { public void testXacmlPdpParameterGroup_NullName() { final RestServerParameters restServerParameters = testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class); + final RestServerParameters policyApiParameters = + testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class); final TopicParameterGroup topicParameterGroup = testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class); final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup(null, restServerParameters, - topicParameterGroup, applicationPath.getAbsolutePath()); + policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath()); final GroupValidationResult validationResult = pdpxParameters.validate(); assertFalse(validationResult.isValid()); assertEquals(null, pdpxParameters.getName()); @@ -92,10 +96,12 @@ public class TestXacmlPdpParameterGroup { public void testXacmlPdpParameterGroup_EmptyName() { final RestServerParameters restServerParameters = testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class); + final RestServerParameters policyApiParameters = + testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class); final TopicParameterGroup topicParameterGroup = testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class); final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup("", restServerParameters, - topicParameterGroup, applicationPath.getAbsolutePath()); + policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath()); final GroupValidationResult validationResult = pdpxParameters.validate(); assertFalse(validationResult.isValid()); assertEquals("", pdpxParameters.getName()); @@ -107,31 +113,50 @@ public class TestXacmlPdpParameterGroup { public void testXacmlPdpParameterGroup_EmptyRestServerParameters() { final RestServerParameters restServerParameters = testData.toObject(testData.getRestServerParametersMap(true), RestServerParameters.class); + final RestServerParameters policyApiParameters = + testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class); final TopicParameterGroup topicParameterGroup = testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class); final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup(CommonTestData.PDPX_GROUP_NAME, restServerParameters, - topicParameterGroup, applicationPath.getAbsolutePath()); + policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath()); final GroupValidationResult validationResult = pdpxParameters.validate(); assertFalse(validationResult.isValid()); assertTrue(validationResult.getResult() - .contains("\"org.onap.policy.common.endpoints.parameters.RestServerParameters\" INVALID, " - + "parameter group has status INVALID")); + .contains("parameter group \"RestServerParameters\"")); + } + + @Test + public void testXacmlPdpParameterGroup_EmptyPolicyApiParameters() { + final RestServerParameters restServerParameters = + testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class); + final RestServerParameters policyApiParameters = + testData.toObject(testData.getPolicyApiParametersMap(true), RestServerParameters.class); + final TopicParameterGroup topicParameterGroup = + testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class); + final XacmlPdpParameterGroup pdpxParameters = + new XacmlPdpParameterGroup(CommonTestData.PDPX_GROUP_NAME, restServerParameters, + policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath()); + final GroupValidationResult validationResult = pdpxParameters.validate(); + assertFalse(validationResult.isValid()); + assertTrue(validationResult.getResult() + .contains("parameter group \"policyApiParameters\"")); } @Test public void testXacmlPdpParameterGroup_EmptyTopicParameterGroup() { final RestServerParameters restServerParameters = testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class); + final RestServerParameters policyApiParameters = + testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class); final TopicParameterGroup topicParameterGroup = testData.toObject(testData.getTopicParametersMap(true), TopicParameterGroup.class); final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup(CommonTestData.PDPX_GROUP_NAME, restServerParameters, - topicParameterGroup, applicationPath.getAbsolutePath()); + policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath()); final GroupValidationResult validationResult = pdpxParameters.validate(); assertFalse(validationResult.isValid()); assertTrue(validationResult.getResult() - .contains("\"org.onap.policy.common.endpoints.parameters.TopicParameterGroup\" INVALID, " - + "parameter group has status INVALID")); + .contains("parameter group \"TopicParameterGroup\"")); } } diff --git a/main/src/test/java/org/onap/policy/pdpx/main/rest/TestDecision.java b/main/src/test/java/org/onap/policy/pdpx/main/rest/TestDecision.java index 0edfc6f5..5f75e6dd 100644 --- a/main/src/test/java/org/onap/policy/pdpx/main/rest/TestDecision.java +++ b/main/src/test/java/org/onap/policy/pdpx/main/rest/TestDecision.java @@ -101,10 +101,12 @@ public class TestDecision { // RestServerParameters rest = testData.toObject(testData.getRestServerParametersMap(port), RestServerParameters.class); + RestServerParameters policyApiParameters = + testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class); TopicParameterGroup topicParameterGroup = - testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class); - XacmlPdpParameterGroup params = - new XacmlPdpParameterGroup("XacmlPdpGroup", rest, topicParameterGroup, apps.getAbsolutePath()); + testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class); + XacmlPdpParameterGroup params = new XacmlPdpParameterGroup("XacmlPdpGroup", rest, policyApiParameters, + topicParameterGroup, apps.getAbsolutePath()); final Gson gson = new GsonBuilder().create(); File fileParams = appsFolder.newFile("params.json"); String jsonParams = gson.toJson(params); -- cgit 1.2.3-korg