diff options
author | lapentafd <francesco.lapenta@est.tech> | 2023-01-18 13:34:27 +0000 |
---|---|---|
committer | lapentafd <francesco.lapenta@est.tech> | 2023-01-18 13:34:37 +0000 |
commit | 50816e1fdd0da6b932c3595f41425b595c3823f0 (patch) | |
tree | 77e6478aae87f5ae3017cf1b902ad9bf7e14c62d /main/src/test/java/org | |
parent | 80aa9814fe7d52b1c893ae36db8c4be103e53484 (diff) |
Adding Server stubs for policy-api
Added server stubs for policy-api with profile "stub",
with very simple implementation, and unit tests
Added context-path in the application.yaml
Issue-ID: POLICY-4143
Change-Id: Ibcf4cf2f6d3e6a87ac7eea365b387d75e19e96c0
Signed-off-by: lapentafd <francesco.lapenta@est.tech>
Diffstat (limited to 'main/src/test/java/org')
5 files changed, 96 insertions, 4 deletions
diff --git a/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java b/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java index eab9fe72..412c28d1 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java @@ -68,7 +68,7 @@ import org.springframework.test.context.junit4.SpringRunner; */ @RunWith(SpringRunner.class) @SpringBootTest(classes = PolicyApiApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -@ActiveProfiles("test") +@ActiveProfiles({ "test", "default" }) @DirtiesContext(classMode = ClassMode.AFTER_CLASS) public class TestApiRestServer extends CommonTestRestController { diff --git a/main/src/test/java/org/onap/policy/api/main/rest/TestApiStatisticsManager.java b/main/src/test/java/org/onap/policy/api/main/rest/TestApiStatisticsManager.java index f343e135..0e01ee40 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/TestApiStatisticsManager.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/TestApiStatisticsManager.java @@ -37,7 +37,7 @@ import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest(classes = PolicyApiApplication.class) -@ActiveProfiles("test") +@ActiveProfiles({ "test", "default" }) public class TestApiStatisticsManager { @Autowired diff --git a/main/src/test/java/org/onap/policy/api/main/rest/TestNodeTemplateController.java b/main/src/test/java/org/onap/policy/api/main/rest/TestNodeTemplateController.java index 993fbee1..fb7a152a 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/TestNodeTemplateController.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/TestNodeTemplateController.java @@ -57,7 +57,7 @@ import org.springframework.test.context.junit4.SpringRunner; */ @RunWith(SpringRunner.class) @SpringBootTest(classes = PolicyApiApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -@ActiveProfiles("test") +@ActiveProfiles({ "test", "default" }) @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) public class TestNodeTemplateController extends CommonTestRestController { diff --git a/main/src/test/java/org/onap/policy/api/main/rest/stub/ApisRestControllerStubTest.java b/main/src/test/java/org/onap/policy/api/main/rest/stub/ApisRestControllerStubTest.java new file mode 100644 index 00000000..6608f9b7 --- /dev/null +++ b/main/src/test/java/org/onap/policy/api/main/rest/stub/ApisRestControllerStubTest.java @@ -0,0 +1,92 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2023 Nordix Foundation. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.api.main.rest.stub; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.IOException; +import javax.ws.rs.core.Response; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.policy.api.main.PolicyApiApplication; +import org.onap.policy.api.main.rest.utils.CommonTestRestController; +import org.onap.policy.common.utils.security.SelfSignedKeyStore; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.ClassMode; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = PolicyApiApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@ActiveProfiles({ "test", "stub" }) +@DirtiesContext(classMode = ClassMode.AFTER_CLASS) +public class ApisRestControllerStubTest extends CommonTestRestController { + protected static final String APP_JSON = "application/json"; + protected static final String APP_YAML = "application/yaml"; + + @LocalServerPort + private int apiPort; + + private static SelfSignedKeyStore keystore; + + + @BeforeClass + public static void setupParameters() throws IOException, InterruptedException { + keystore = new SelfSignedKeyStore(); + } + + @DynamicPropertySource + static void registerPgProperties(DynamicPropertyRegistry registry) { + registry.add("server.ssl.enabled", () -> "true"); + registry.add("server.ssl.key-store", () -> keystore.getKeystoreName()); + registry.add("server.ssl.key-store-password", () -> SelfSignedKeyStore.KEYSTORE_PASSWORD); + registry.add("server.ssl.key-store-type", () -> "PKCS12"); + registry.add("server.ssl.key-alias", () -> "policy@policy.onap.org"); + registry.add("server.ssl.key-password", () -> SelfSignedKeyStore.PRIVATE_KEY_PASSWORD); + } + + @Test + public void testStubbedGet() throws Exception { + checkStubJson("policies"); + checkStubJson("policies/policyname/versions/1.0.2"); + checkStubJson("nodetemplates"); + checkStubJson("nodetemplates/k8stemplate/versions/1.0.0"); + checkStubJson("policytypes"); + checkStubJson("policytypes/380d5cb1-e43d-45b7-b10b-ebd15dfabd16/versions/latest"); + checkStubJson("statistics"); + checkStubJson("healthcheck"); + } + + private void checkStubJson(String url) throws Exception { + var response = super.readResource(url, APP_JSON, apiPort); + assertNotNull(response); + assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); + var responseYaml = super.readResource(url, APP_YAML, apiPort); + assertEquals(Response.Status.NOT_IMPLEMENTED.getStatusCode(), responseYaml.getStatus()); + } + +} diff --git a/main/src/test/java/org/onap/policy/api/main/rest/utils/CommonTestRestController.java b/main/src/test/java/org/onap/policy/api/main/rest/utils/CommonTestRestController.java index 4f2e8b22..947ed6a5 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/utils/CommonTestRestController.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/utils/CommonTestRestController.java @@ -60,7 +60,7 @@ public class CommonTestRestController { protected static final String CONTEXT_PATH = "/policy/api/v1/"; protected void testSwagger(final int apiPort) throws Exception { - final Invocation.Builder invocationBuilder = sendHttpsRequest("/", "v3/api-docs", APP_JSON, apiPort); + final Invocation.Builder invocationBuilder = sendHttpsRequest(CONTEXT_PATH, "v3/api-docs", APP_JSON, apiPort); final String resp = invocationBuilder.get(String.class); assertTrue((resp).contains("{\"openapi\":\"3.0.1\",\"info\":{\"title\":\"Policy Framework Lifecycle API\"")); } |