diff options
author | Jim Hahn <jrh3@att.com> | 2019-04-17 15:30:46 -0400 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2019-04-19 10:03:33 -0400 |
commit | 61355e15d46059f2b29689d2f0a9cc359cf0ddd5 (patch) | |
tree | cd98643f7d305f41f9bbc66bd8809263a5882392 /main/src/test/java/org/onap/policy/pap/main/parameters/CommonTestData.java | |
parent | 38a63dbe6ae17e8967a7218e54179733de3579d8 (diff) |
Add end-to-end junits for PAP REST API
Added test that checks sunny day scenarios for the PAP REST API.
Uses real PAP components for everything except DMaaP. PDPs are
simulated.
Change-Id: If2adc3b1523b477c3efd3eb83fb7a7b04f40fa24
Issue-ID: POLICY-1670
Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'main/src/test/java/org/onap/policy/pap/main/parameters/CommonTestData.java')
-rw-r--r-- | main/src/test/java/org/onap/policy/pap/main/parameters/CommonTestData.java | 167 |
1 files changed, 50 insertions, 117 deletions
diff --git a/main/src/test/java/org/onap/policy/pap/main/parameters/CommonTestData.java b/main/src/test/java/org/onap/policy/pap/main/parameters/CommonTestData.java index 10e500fb..14000e60 100644 --- a/main/src/test/java/org/onap/policy/pap/main/parameters/CommonTestData.java +++ b/main/src/test/java/org/onap/policy/pap/main/parameters/CommonTestData.java @@ -21,17 +21,15 @@ package org.onap.policy.pap.main.parameters; -import java.util.Base64; -import java.util.HashMap; -import java.util.Map; -import java.util.TreeMap; - -import org.onap.policy.common.parameters.ParameterGroup; +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import org.onap.policy.common.utils.coder.Coder; import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.common.utils.coder.StandardCoder; -import org.onap.policy.models.provider.PolicyModelsProviderParameters; -import org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl; +import org.onap.policy.pap.main.PolicyPapRuntimeException; +import org.onap.policy.pap.main.rest.e2e.End2EndBase; /** * Class to hold/create all parameters for test cases. @@ -39,144 +37,79 @@ import org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl; * @author Ram Krishna Verma (ram.krishna.verma@est.tech) */ public class CommonTestData { - - private static final String REST_SERVER_PASSWORD = "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 = true; - private static final boolean REST_SERVER_AAF = false; public static final String PAP_GROUP_NAME = "PapGroup"; private static final Coder coder = new StandardCoder(); - /** - * Converts the contents of a map to a parameter class. - * - * @param source property map - * @param clazz class of object to be created from the map - * @return a new object represented by the map - */ - public <T extends ParameterGroup> T toObject(final Map<String, Object> source, final Class<T> clazz) { - try { - return coder.decode(coder.encode(source), clazz); + private static int dbNum = 0; - } catch (final CoderException e) { - throw new RuntimeException("cannot create " + clazz.getName() + " from map", e); - } + public static void newDb() { + ++dbNum; } /** - * Returns a property map for a PapParameterGroup map for test cases. + * Gets the standard PAP parameters. * - * @param name name of the parameters - * - * @return a property map suitable for constructing an object + * @param port port to be inserted into the parameters + * @return the standard PAP parameters */ - public Map<String, Object> getPapParameterGroupMap(final String name) { - final Map<String, Object> map = new TreeMap<>(); - - map.put("name", name); - map.put("restServerParameters", getRestServerParametersMap(false)); - map.put("pdpParameters", getPdpParametersMap()); - map.put("databaseProviderParameters", getPolicyModelsProviderParametersMap()); - - return map; - } + public PapParameterGroup getPapParameterGroup(int port) { + try { + return coder.decode(getPapParameterGroupAsString(port), PapParameterGroup.class); - /** - * 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<String, Object> getRestServerParametersMap(final boolean isEmpty) { - final Map<String, Object> map = new TreeMap<>(); - map.put("https", REST_SERVER_HTTPS); - map.put("aaf", 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); + } catch (CoderException e) { + throw new PolicyPapRuntimeException("cannot read PAP parameters", e); } - - return map; } /** - * Returns a property map for a PdpParameters map for test cases. + * Gets the standard PAP parameters, as a String. * - * @return a property map suitable for constructing an object + * @param port port to be inserted into the parameters + * @return the standard PAP parameters */ - public Map<String, Object> getPdpParametersMap() { - final Map<String, Object> map = new TreeMap<>(); + public String getPapParameterGroupAsString(int port) { - map.put("updateParameters", getPdpUpdateParametersMap()); - map.put("stateChangeParameters", getPdpStateChangeParametersMap()); - - return map; - } + try { + File file = new File(getParamFile()); + String json = new String(Files.readAllBytes(file.toPath()), StandardCharsets.UTF_8); - /** - * Returns a property map for a PdpUpdateParameters map for test cases. - * - * @return a property map suitable for constructing an object - */ - public Map<String, Object> getPdpUpdateParametersMap() { - return getPdpRequestParametersMap(); - } + json = json.replace("${port}", String.valueOf(port)); + json = json.replace("${dbName}", "jdbc:h2:mem:testdb" + dbNum); - /** - * Returns a property map for a PdpStateChangeParameters map for test cases. - * - * @return a property map suitable for constructing an object - */ - public Map<String, Object> getPdpStateChangeParametersMap() { - return getPdpRequestParametersMap(); - } + return json; - /** - * Returns a property map for a PdpParameters map for test cases. - * - * @return a property map suitable for constructing an object - */ - public Map<String, Object> getPdpRequestParametersMap() { - final Map<String, Object> map = new HashMap<>(); - map.put("maxRetryCount", "1"); - map.put("maxWaitMs", "2"); - - return map; + } catch (IOException e) { + throw new PolicyPapRuntimeException("cannot read PAP parameters", e); + } } /** - * Returns a property map for a PdpGroupDeploymentParameters map for test cases. + * Gets the full path to the parameter file, which may vary depending on whether or + * not this is an end-to-end test. * - * @return a property map suitable for constructing an object + * @return the parameter file name */ - public Map<String, Object> getPdpGroupDeploymentParametersMap() { - final Map<String, Object> map = new TreeMap<>(); - map.put("waitResponseMs", "1"); - - return map; + private String getParamFile() { + String paramFile = "src/test/resources/parameters/PapConfigParametersStd.json"; + + for (StackTraceElement stack : Thread.currentThread().getStackTrace()) { + String classnm = stack.getClassName(); + if (End2EndBase.class.getName().equals(classnm)) { + paramFile = "src/test/resources/e2e/PapConfigParameters.json"; + break; + } + } + return paramFile; } /** - * Returns a property map for a PolicyModelsProviderParameters map for test cases. - * - * @return a property map suitable for constructing an object + * Nulls out a field within a JSON string. + * @param json JSON string + * @param field field to be nulled out + * @return a new JSON string with the field nulled out */ - public Map<String, Object> getPolicyModelsProviderParametersMap() { - final Map<String, Object> map = new TreeMap<>(); - map.put("name", PolicyModelsProviderParameters.class.getSimpleName()); - map.put("implementation", DatabasePolicyModelsProviderImpl.class.getName()); - map.put("databaseDriver", "org.h2.Driver"); - map.put("databaseUrl", "jdbc:h2:mem:testdb"); - map.put("databaseUser", "policy"); - map.put("databasePassword", Base64.getEncoder().encodeToString("P01icY".getBytes())); - map.put("persistenceUnit", "ToscaConceptTest"); - - return map; + public String nullifyField(String json, String field) { + return json.replace(field + "\"", field + "\":null, \"" + field + "Xxx\""); } } |