import org.junit.Test;
import org.onap.policy.api.main.exception.PolicyApiException;
import org.onap.policy.api.main.parameters.CommonTestData;
-import org.onap.policy.api.main.parameters.RestServerParameters;
import org.onap.policy.api.main.startstop.Main;
+import org.onap.policy.common.endpoints.http.server.RestServer;
+import org.onap.policy.common.endpoints.parameters.RestServerParameters;
import org.onap.policy.common.endpoints.report.HealthCheckReport;
import org.onap.policy.common.gson.GsonMessageBodyHandler;
import org.onap.policy.common.utils.coder.StandardCoder;
private static final String GUARD_POLICIES =
"policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies";
- private static final String GUARD_POLICIES_VDNS_FL =
- "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.frequency.scaleout";
- private static final String GUARD_POLICIES_VDNS_MINMAX =
- "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.minmax.scaleout";
+ private static final String GUARD_POLICIES_VDNS_FL_LATEST =
+ "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.frequency.scaleout"
+ + "/versions/latest";
+ private static final String GUARD_POLICIES_VDNS_MINMAX_LATEST =
+ "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.minmax.scaleout"
+ + "/versions/latest";
private static final String GUARD_POLICIES_VDNS_FL_VERSION = "policytypes/"
- + "onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.frequency.scaleout/versions/1.0.0";
+ + "onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.frequency.scaleout/versions/1";
private static final String GUARD_POLICIES_VDNS_MINMAX_VERSION = "policytypes/"
- + "onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.minmax.scaleout/versions/1.0.0";
+ + "onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.minmax.scaleout/versions/1";
private static final String OPS_POLICIES =
"policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies";
- private static final String OPS_POLICIES_VCPE =
- "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.restart";
- private static final String OPS_POLICIES_VDNS =
- "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.scaleout";
- private static final String OPS_POLICIES_VFIREWALL =
- "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.modifyconfig";
+ private static final String OPS_POLICIES_VCPE_LATEST =
+ "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.restart"
+ + "/versions/latest";
+ private static final String OPS_POLICIES_VDNS_LATEST =
+ "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.scaleout"
+ + "/versions/latest";
+ private static final String OPS_POLICIES_VFIREWALL_LATEST =
+ "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.modifyconfig"
+ + "/versions/latest";
private static final String OPS_POLICIES_VCPE_VERSION = "policytypes/"
- + "onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.restart/versions/1.0.0";
+ + "onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.restart/versions/1";
private static final String OPS_POLICIES_VDNS_VERSION = "policytypes/"
- + "onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.scaleout/versions/1.0.0";
+ + "onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.scaleout/versions/1";
private static final String OPS_POLICIES_VFIREWALL_VERSION = "policytypes/"
- + "onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.modifyconfig/versions/1.0.0";
-
- private static String KEYSTORE = System.getProperty("user.dir") + "/src/test/resources/ssl/policy-keystore";
+ + "onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.modifyconfig/versions/1";
+
+ private static final String GET_DEPLOYED_VERSION_OF_POLICY =
+ "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/"
+ + "1.0.0/policies/onap.restart.tca/versions/deployed";
+ private static final String GET_LATEST_VERSION_OF_OPERATIONAL_POLICY =
+ "policytypes/onap.policies.controlloop.Operational/versions/"
+ + "1.0.0/policies/operational.scaleout/versions/latest";
+ private static final String GET_SPECIFIC_VERSION_OF_OPERATIONAL_POLICY =
+ "policytypes/onap.policies.controlloop.Operational/versions/"
+ + "1.0.0/policies/operational.scaleout/versions/3";
+ private static final String DEL_SPECIFIC_VERSION_OF_OPERATIONAL_POLICY =
+ "policytypes/onap.policies.controlloop.Operational/versions/1.0.0/"
+ + "policies/operational.scaleout/versions/1";
+
+ private static final String KEYSTORE = System.getProperty("user.dir") + "/src/test/resources/ssl/policy-keystore";
+ private static final CommonTestData COMMON_TEST_DATA = new CommonTestData();
private Main main;
- private ApiRestServer restServer;
+ private RestServer restServer;
private StandardCoder standardCoder = new StandardCoder();
+ private int port;
// @formatter:off
private String[] toscaPolicyResourceNames = {
* Method for cleanup after each test.
*/
@After
- public void teardown() {
-
- try {
- if (NetworkUtil.isTcpPortOpen("localhost", 6969, 1, 1000L)) {
- if (main != null) {
- stopApiService(main);
- } else if (restServer != null) {
- restServer.stop();
- }
- }
- } catch (InterruptedException | IOException | PolicyApiException exp) {
- LOGGER.error("teardown failed", exp);
+ public void teardown() throws Exception {
+ if (main != null) {
+ stopApiService(main);
+ } else if (restServer != null) {
+ restServer.stop();
}
}
@Test
public void testHealthCheckFailure() throws InterruptedException, IOException {
- final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false);
+ port = NetworkUtil.allocPort();
+ final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false, port);
restServerParams.setName(CommonTestData.API_GROUP_NAME);
- restServer = new ApiRestServer(restServerParams);
+ restServer = new RestServer(restServerParams, null, ApiRestController.class);
try {
restServer.start();
final Invocation.Builder invocationBuilder = sendHttpRequest(HEALTHCHECK_ENDPOINT);
final HealthCheckReport report = invocationBuilder.get(HealthCheckReport.class);
validateHealthCheckReport(NAME, SELF, false, 500, NOT_ALIVE, report);
assertTrue(restServer.isAlive());
- assertTrue(restServer.toString().startsWith("ApiRestServer [servers="));
+ assertTrue(restServer.toString().startsWith("RestServer [servers="));
} catch (final Exception exp) {
LOGGER.error("testHealthCheckFailure failed", exp);
fail("Test should not throw an exception");
}
@Test
- public void testApiStatistics_500() {
+ public void testApiStatistics_500() throws Exception {
- final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false);
+ port = NetworkUtil.allocPort();
+ final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false, port);
restServerParams.setName(CommonTestData.API_GROUP_NAME);
- restServer = new ApiRestServer(restServerParams);
+ restServer = new RestServer(restServerParams, null, ApiRestController.class);
try {
restServer.start();
final Invocation.Builder invocationBuilder = sendHttpRequest(STATISTICS_ENDPOINT);
Response rawResponse = readResource(POLICYTYPES, true);
assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
- assertTrue(response.getPolicyTypes().get(0).isEmpty());
+ assertTrue(response.getPolicyTypes().isEmpty());
rawResponse = readResource(POLICYTYPES_TCA, true);
assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
assertThatCode(() -> {
main = startApiService(true);
- Response rawResponse = readResource(GUARD_POLICIES_VDNS_FL, true);
+ Response rawResponse = readResource(GUARD_POLICIES_VDNS_FL_LATEST, true);
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
- assertEquals("no policy found for policy ID: guard.frequency.scaleout",
+ assertEquals("no policy found for policy: guard.frequency.scaleout:null",
error.getErrorMessage());
rawResponse = readResource(GUARD_POLICIES_VDNS_FL_VERSION, true);
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
error = rawResponse.readEntity(ErrorResponse.class);
- assertEquals("no policy found for policy ID: guard.frequency.scaleout",
+ assertEquals("no policy found for policy: guard.frequency.scaleout:1",
error.getErrorMessage());
- rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX, true);
+ rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX_LATEST, true);
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
error = rawResponse.readEntity(ErrorResponse.class);
- assertEquals("no policy found for policy ID: guard.minmax.scaleout",
+ assertEquals("no policy found for policy: guard.minmax.scaleout:null",
error.getErrorMessage());
rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX_VERSION, true);
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
error = rawResponse.readEntity(ErrorResponse.class);
- assertEquals("no policy found for policy ID: guard.minmax.scaleout",
+ assertEquals("no policy found for policy: guard.minmax.scaleout:1",
error.getErrorMessage());
}).doesNotThrowAnyException();
}
assertThatCode(() -> {
main = startApiService(true);
- Response rawResponse = readResource(OPS_POLICIES_VCPE, true);
+ Response rawResponse = readResource(OPS_POLICIES_VCPE_LATEST, true);
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
- assertEquals("no policy found for policy ID: operational.restart",
+ assertEquals("no policy found for policy: operational.restart:null",
error.getErrorMessage());
rawResponse = readResource(OPS_POLICIES_VCPE_VERSION, true);
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
error = rawResponse.readEntity(ErrorResponse.class);
- assertEquals("no policy found for policy ID: operational.restart",
+ assertEquals("no policy found for policy: operational.restart:1",
error.getErrorMessage());
- rawResponse = readResource(OPS_POLICIES_VDNS, true);
+ rawResponse = readResource(OPS_POLICIES_VDNS_LATEST, true);
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
error = rawResponse.readEntity(ErrorResponse.class);
- assertEquals("no policy found for policy ID: operational.scaleout",
+ assertEquals("no policy found for policy: operational.scaleout:null",
error.getErrorMessage());
rawResponse = readResource(OPS_POLICIES_VDNS_VERSION, true);
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
error = rawResponse.readEntity(ErrorResponse.class);
- assertEquals("no policy found for policy ID: operational.scaleout",
+ assertEquals("no policy found for policy: operational.scaleout:1",
error.getErrorMessage());
- rawResponse = readResource(OPS_POLICIES_VFIREWALL, true);
+ rawResponse = readResource(OPS_POLICIES_VFIREWALL_LATEST, true);
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
error = rawResponse.readEntity(ErrorResponse.class);
- assertEquals("no policy found for policy ID: operational.modifyconfig",
+ assertEquals("no policy found for policy: operational.modifyconfig:null",
error.getErrorMessage());
rawResponse = readResource(OPS_POLICIES_VFIREWALL_VERSION, true);
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
error = rawResponse.readEntity(ErrorResponse.class);
- assertEquals("no policy found for policy ID: operational.modifyconfig",
+ assertEquals("no policy found for policy: operational.modifyconfig:1",
error.getErrorMessage());
}).doesNotThrowAnyException();
}
Response rawResponse = deleteResource(GUARD_POLICIES_VDNS_FL_VERSION, true);
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
- assertEquals("no policy found for policy ID: guard.frequency.scaleout",
+ assertEquals("no policy found for policy: guard.frequency.scaleout:1",
error.getErrorMessage());
}).doesNotThrowAnyException();
}
Response rawResponse = deleteResource(OPS_POLICIES_VCPE_VERSION, true);
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
- assertEquals("no policy found for policy ID: operational.restart",
+ assertEquals("no policy found for policy: operational.restart:1",
error.getErrorMessage());
}).doesNotThrowAnyException();
}
}).doesNotThrowAnyException();
}
+ @Test
+ public void testGetDeployedVersionsOfPolicy() {
+ assertThatCode(() -> {
+ main = startApiService(true);
+ Response rawResponse = readResource(GET_DEPLOYED_VERSION_OF_POLICY, true);
+ assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus());
+ }).doesNotThrowAnyException();
+ }
+
+ @Test
+ public void testGetLatestVersionOfOperationalPolicy() {
+ assertThatCode(() -> {
+ main = startApiService(true);
+ Response rawResponse = readResource(GET_LATEST_VERSION_OF_OPERATIONAL_POLICY, true);
+ assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+ }).doesNotThrowAnyException();
+ }
+
+ @Test
+ public void testGetSpecificVersionOfOperationalPolicy() {
+ assertThatCode(() -> {
+ main = startApiService(true);
+ Response rawResponse = readResource(GET_SPECIFIC_VERSION_OF_OPERATIONAL_POLICY, true);
+ assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+ }).doesNotThrowAnyException();
+ }
+
+ @Test
+ public void testDeleteSpecificVersionOfOperationalPolicy() {
+ assertThatCode(() -> {
+ main = startApiService(true);
+ Response rawResponse = deleteResource(DEL_SPECIFIC_VERSION_OF_OPERATIONAL_POLICY, true);
+ assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+ }).doesNotThrowAnyException();
+ }
+
private Response createResource(String endpoint, String resourceName, boolean http) throws Exception {
ToscaServiceTemplate rawServiceTemplate = standardCoder.decode(
return invocationBuilder.delete();
}
- private Main startApiService(final boolean http) {
+ private Main startApiService(final boolean http) throws Exception {
+ port = NetworkUtil.allocPort();
final String[] apiConfigParameters = new String[2];
if (http) {
+ COMMON_TEST_DATA.makeParameters("src/test/resources/parameters/ApiConfigParameters.json",
+ "src/test/resources/parameters/ApiConfigParametersXXX.json", port);
apiConfigParameters[0] = "-c";
- apiConfigParameters[1] = "parameters/ApiConfigParameters.json";
+ apiConfigParameters[1] = "src/test/resources/parameters/ApiConfigParametersXXX.json";
} else {
final Properties systemProps = System.getProperties();
systemProps.put("javax.net.ssl.keyStore", KEYSTORE);
systemProps.put("javax.net.ssl.keyStorePassword", "Pol1cy_0nap");
System.setProperties(systemProps);
+ COMMON_TEST_DATA.makeParameters("src/test/resources/parameters/ApiConfigParameters_Https.json",
+ "src/test/resources/parameters/ApiConfigParameters_HttpsXXX.json", port);
apiConfigParameters[0] = "-c";
- apiConfigParameters[1] = "parameters/ApiConfigParameters_Https.json";
+ apiConfigParameters[1] = "src/test/resources/parameters/ApiConfigParameters_HttpsXXX.json";
}
return new Main(apiConfigParameters);
}
client.property(ClientProperties.METAINF_SERVICES_LOOKUP_DISABLE, "true");
client.register(GsonMessageBodyHandler.class);
- final WebTarget webTarget = client.target("http://localhost:6969/policy/api/v1/" + endpoint);
+ final WebTarget webTarget = client.target("http://localhost:" + port + "/policy/api/v1/" + endpoint);
final Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
- if (!NetworkUtil.isTcpPortOpen("localhost", 6969, 6, 10000L)) {
- throw new IllegalStateException("cannot connect to port 6969");
+ if (!NetworkUtil.isTcpPortOpen("localhost", port, 60, 1000L)) {
+ throw new IllegalStateException("cannot connect to port " + port);
}
return invocationBuilder;
}
client.property(ClientProperties.METAINF_SERVICES_LOOKUP_DISABLE, "true");
client.register(GsonMessageBodyHandler.class);
- final WebTarget webTarget = client.target("https://localhost:6969/policy/api/v1/" + endpoint);
+ final WebTarget webTarget = client.target("https://localhost:" + port + "/policy/api/v1/" + endpoint);
final Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
- if (!NetworkUtil.isTcpPortOpen("localhost", 6969, 6, 10000L)) {
- throw new IllegalStateException("cannot connect to port 6969");
+ if (!NetworkUtil.isTcpPortOpen("localhost", port, 60, 1000L)) {
+ throw new IllegalStateException("cannot connect to port " + port);
}
return invocationBuilder;
}