summaryrefslogtreecommitdiffstats
path: root/participant/participant-impl/participant-impl-http/src
diff options
context:
space:
mode:
Diffstat (limited to 'participant/participant-impl/participant-impl-http/src')
-rw-r--r--participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/handler/AcElementHandlerTest.java19
-rw-r--r--participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/rest/ActuatorControllerTest.java6
-rw-r--r--participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/CommonActuatorController.java15
-rw-r--r--participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/ToscaUtils.java10
-rw-r--r--participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/webclient/AcHttpClientTest.java8
-rw-r--r--participant/participant-impl/participant-impl-http/src/test/resources/HttpParticipantConfig.yaml220
-rw-r--r--participant/participant-impl/participant-impl-http/src/test/resources/application-test.yaml24
-rw-r--r--participant/participant-impl/participant-impl-http/src/test/resources/application_test.properties24
8 files changed, 51 insertions, 275 deletions
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/handler/AcElementHandlerTest.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/handler/AcElementHandlerTest.java
index fbb689448..04cb34269 100644
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/handler/AcElementHandlerTest.java
+++ b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/handler/AcElementHandlerTest.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
+ * Copyright (C) 2021-2022 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,10 +27,10 @@ import static org.mockito.Mockito.doNothing;
import java.io.IOException;
import java.util.Map;
import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
-import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.Spy;
import org.onap.policy.clamp.acm.participant.http.main.handler.AutomationCompositionElementHandler;
@@ -41,7 +41,6 @@ import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantInterme
import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
-import org.onap.policy.common.utils.coder.CoderException;
import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@@ -54,22 +53,24 @@ class AcElementHandlerTest {
private AutomationCompositionElementHandler automationCompositionElementHandler =
new AutomationCompositionElementHandler();
- @Mock
- private ParticipantIntermediaryApi participantIntermediaryApi;
-
- private CommonTestData commonTestData = new CommonTestData();
+ private final CommonTestData commonTestData = new CommonTestData();
private static ToscaServiceTemplate serviceTemplate;
private static final String HTTP_AUTOMATION_COMPOSITION_ELEMENT =
"org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement";
@BeforeAll
- static void init() throws CoderException {
+ static void init() {
serviceTemplate = ToscaUtils.readAutomationCompositionFromTosca();
}
+ @BeforeEach
+ void startMocks() {
+ automationCompositionElementHandler.setIntermediaryApi(Mockito.mock(ParticipantIntermediaryApi.class));
+ }
+
@Test
- void test_automationCompositionElementeStateChange() throws IOException {
+ void test_automationCompositionElementStateChange() throws IOException {
var automationCompositionId = commonTestData.getAutomationCompositionId();
var element = commonTestData.getAutomationCompositionElement();
var automationCompositionElementId = element.getId();
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/rest/ActuatorControllerTest.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/rest/ActuatorControllerTest.java
index f0a465fa2..7cd5353a2 100644
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/rest/ActuatorControllerTest.java
+++ b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/rest/ActuatorControllerTest.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
+ * Copyright (C) 2021-2022 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,13 +32,13 @@ import org.springframework.boot.test.autoconfigure.actuate.metrics.AutoConfigure
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.web.server.LocalServerPort;
-import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@AutoConfigureMetrics
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
-@TestPropertySource(locations = {"classpath:application_test.properties"})
+@ActiveProfiles("test")
class ActuatorControllerTest extends CommonActuatorController {
private static final String HEALTH_ENDPOINT = "health";
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/CommonActuatorController.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/CommonActuatorController.java
index cfe3ec2c3..fad467f63 100644
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/CommonActuatorController.java
+++ b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/CommonActuatorController.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
+ * Copyright (C) 2021-2022 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -50,9 +50,8 @@ public class CommonActuatorController {
*
* @param endpoint the target endpoint
* @return a request builder
- * @throws Exception if an error occurs
*/
- protected Invocation.Builder sendActRequest(final String endpoint) throws Exception {
+ protected Invocation.Builder sendActRequest(final String endpoint) {
return sendFqeRequest(httpPrefix + ACTUATOR_ENDPOINT + endpoint, true);
}
@@ -61,9 +60,8 @@ public class CommonActuatorController {
*
* @param endpoint the target endpoint
* @return a request builder
- * @throws Exception if an error occurs
*/
- protected Invocation.Builder sendNoAuthActRequest(final String endpoint) throws Exception {
+ protected Invocation.Builder sendNoAuthActRequest(final String endpoint) {
return sendFqeRequest(httpPrefix + ACTUATOR_ENDPOINT + endpoint, false);
}
@@ -73,10 +71,8 @@ public class CommonActuatorController {
* @param fullyQualifiedEndpoint the fully qualified target endpoint
* @param includeAuth if authorization header should be included
* @return a request builder
- * @throws Exception if an error occurs
*/
- protected Invocation.Builder sendFqeRequest(final String fullyQualifiedEndpoint, boolean includeAuth)
- throws Exception {
+ protected Invocation.Builder sendFqeRequest(final String fullyQualifiedEndpoint, boolean includeAuth) {
final Client client = ClientBuilder.newBuilder().build();
client.property(ClientProperties.METAINF_SERVICES_LOOKUP_DISABLE, "true");
@@ -95,9 +91,8 @@ public class CommonActuatorController {
* Assert that GET call to actuator endpoint is Unauthorized.
*
* @param endPoint the endpoint
- * @throws Exception if an error occurs
*/
- protected void assertUnauthorizedActGet(final String endPoint) throws Exception {
+ protected void assertUnauthorizedActGet(final String endPoint) {
Response rawresp = sendNoAuthActRequest(endPoint).buildGet().invoke();
assertEquals(Response.Status.UNAUTHORIZED.getStatusCode(), rawresp.getStatus());
}
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/ToscaUtils.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/ToscaUtils.java
index 9e46212bf..7e7dfeb22 100644
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/ToscaUtils.java
+++ b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/ToscaUtils.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
+ * Copyright (C) 2021-2022 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,7 +33,7 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
public final class ToscaUtils {
private static final YamlJsonTranslator yamlTranslator = new YamlJsonTranslator();
- private static final String TOSCA_TEMPLATE_YAML = "src/test/resources/HttpParticipantConfig.yaml";
+ private static final String TOSCA_TEMPLATE_YAML = "clamp/acm/test/participant-http.yaml";
/**
@@ -41,11 +41,11 @@ public final class ToscaUtils {
* @return ToscaServiceTemplate
*/
public static ToscaServiceTemplate readAutomationCompositionFromTosca() {
- return serializeAutomationCompositionYaml(TOSCA_TEMPLATE_YAML);
+ return serializeAutomationCompositionYaml();
}
- private static ToscaServiceTemplate serializeAutomationCompositionYaml(String automationCompositionFilePath) {
- String automationCompositionString = ResourceUtils.getResourceAsString(automationCompositionFilePath);
+ private static ToscaServiceTemplate serializeAutomationCompositionYaml() {
+ String automationCompositionString = ResourceUtils.getResourceAsString(ToscaUtils.TOSCA_TEMPLATE_YAML);
return yamlTranslator.fromYaml(automationCompositionString, ToscaServiceTemplate.class);
}
}
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/webclient/AcHttpClientTest.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/webclient/AcHttpClientTest.java
index 44ef50848..e0a04a12a 100644
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/webclient/AcHttpClientTest.java
+++ b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/webclient/AcHttpClientTest.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
+ * Copyright (C) 2021-2022 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -53,9 +53,7 @@ class AcHttpClientTest {
private static int mockServerPort;
- private String testMockUrl = "http://localhost";
-
- private Map<ToscaConceptIdentifier, Pair<Integer, String>> responseMap = new HashMap<>();
+ private final String testMockUrl = "http://localhost";
private static ClientAndServer mockServer;
@@ -94,6 +92,7 @@ class AcHttpClientTest {
void test_validRequest() {
//Add valid rest requests POST, GET
ConfigurationEntity configurationEntity = commonTestData.getConfigurationEntity();
+ Map<ToscaConceptIdentifier, Pair<Integer, String>> responseMap = new HashMap<>();
Map<String, String> headers = commonTestData.getHeaders();
ConfigRequest configRequest = new ConfigRequest(testMockUrl + ":" + mockServerPort, headers,
@@ -113,6 +112,7 @@ class AcHttpClientTest {
void test_invalidRequest() {
//Add rest requests Invalid POST, Valid GET
ConfigurationEntity configurationEntity = commonTestData.getInvalidConfigurationEntity();
+ Map<ToscaConceptIdentifier, Pair<Integer, String>> responseMap = new HashMap<>();
Map<String, String> headers = commonTestData.getHeaders();
ConfigRequest configRequest = new ConfigRequest(testMockUrl + ":" + mockServerPort, headers,
diff --git a/participant/participant-impl/participant-impl-http/src/test/resources/HttpParticipantConfig.yaml b/participant/participant-impl/participant-impl-http/src/test/resources/HttpParticipantConfig.yaml
deleted file mode 100644
index 57c6e40d1..000000000
--- a/participant/participant-impl/participant-impl-http/src/test/resources/HttpParticipantConfig.yaml
+++ /dev/null
@@ -1,220 +0,0 @@
-# ============LICENSE_START=======================================================
-# Copyright (C) 2021 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=========================================================
-tosca_definitions_version: tosca_simple_yaml_1_3
-data_types:
- onap.datatypes.ToscaConceptIdentifier:
- derived_from: tosca.datatypes.Root
- properties:
- name:
- type: string
- required: true
- version:
- type: string
- required: true
-
- org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest:
- version: 1.0.0
- derived_from: tosca.datatypes.Root
- properties:
- restRequestId:
- type: onap.datatypes.ToscaConceptIdentifier
- typeVersion: 1.0.0
- required: true
- description: The name and version of a REST request to be sent to a REST endpoint
- httpMethod:
- type: string
- required: true
- constraints:
- - valid_values: [POST, PUT, GET, DELETE]
- description: The REST method to use
- path:
- type: string
- required: true
- description: The path of the REST request relative to the base URL
- body:
- type: string
- required: false
- description: The body of the REST request for PUT and POST requests
- expectedResponse:
- type: integer
- required: true
- constraints:
- - in_range: [100, 599]
- description: THe expected HTTP status code for the REST request
- org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity:
- version: 1.0.0
- derived_from: tosca.datatypes.Root
- properties:
- configurationEntityId:
- type: onap.datatypes.ToscaConceptIdentifier
- typeVersion: 1.0.0
- required: true
- description: The name and version of a Configuration Entity to be handled by the HTTP Automation Composition Element
- restSequence:
- type: list
- entry_schema:
- type: org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest
- typeVersion: 1.0.0
- description: A sequence of REST commands to send to the REST endpoint
-
-
-node_types:
- org.onap.policy.clamp.acm.Participant:
- version: 1.0.1
- derived_from: tosca.nodetypes.Root
- properties:
- provider:
- type: string
- requred: false
- org.onap.policy.clamp.acm.AutomationCompositionElement:
- version: 1.0.1
- derived_from: tosca.nodetypes.Root
- properties:
- provider:
- type: string
- requred: false
- participantType:
- type: onap.datatypes.ToscaConceptIdentifier
- requred: true
- startPhase:
- type: integer
- required: false
- constraints:
- - greater-or-equal: 0
- metadata:
- common: true
- description: A value indicating the start phase in which this automation composition element will be started, the
- first start phase is zero. Automation Composition Elements are started in their start_phase order and stopped
- in reverse start phase order. Automation Composition Elements with the same start phase are started and
- stopped simultaneously
- org.onap.policy.clamp.acm.AutomationComposition:
- version: 1.0.1
- derived_from: tosca.nodetypes.Root
- properties:
- provider:
- type: string
- requred: false
- elements:
- type: list
- required: true
- entry_schema:
- type: onap.datatypes.ToscaConceptIdentifier
- org.onap.policy.clamp.acm.HttpAutomationCompositionElement:
- version: 1.0.1
- derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
- properties:
- baseUrl:
- type: string
- required: true
- description: The base URL to be prepended to each path, identifies the host for the REST endpoints.
- httpHeaders:
- type: map
- required: false
- entry_schema:
- type: string
- description: HTTP headers to send on REST requests
- configurationEntities:
- type: map
- required: true
- entry_schema:
- type: org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity
- typeVersion: 1.0.0
- description: The connfiguration entities the Automation Composition Element is managing and their associated REST requests
-topology_template:
- node_templates:
- org.onap.k8s.acm.HttpAutomationCompositionParticipant:
- version: 2.3.4
- type: org.onap.policy.clamp.acm.Participant
- type_version: 1.0.1
- description: Participant for Http requests
- properties:
- provider: ONAP
-
- org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement:
- # Http config for PMSH.
- version: 1.2.3
- type: org.onap.policy.clamp.acm.HttpAutomationCompositionElement
- type_version: 1.0.1
- description: Automation composition element for the http requests of PMSH microservice
- properties:
- provider: ONAP
- participantType:
- name: org.onap.acm.HttpAutomationCompositionParticipant
- version: 2.3.4
- startPhase: 1
- uninitializedToPassiveTimeout: 180
- baseUrl: https://httpbin.org
- httpHeaders:
- Content-Type: application/json
- configurationEntities:
- - configurationEntityId:
- name: entity1
- version: 1.0.1
- restSequence:
- - restRequestId:
- name: request1
- version: 1.0.1
- httpMethod: POST
- path: post
- body: '{"name":"ob1","port_type"}'
- expectedResponse: 200
-
- - restRequestId:
- name: request1
- version: 1.0.1
- httpMethod: GET
- path: get
- expectedResponse: 200
-
- # Rest path with path params and query params
- - configurationEntityId:
- name: entity2
- version: 1.0.1
- restSequence:
- - restRequestId:
- name: request1
- version: 1.0.1
- httpMethod: POST
- path: post/{id}/{name}
- pathParams:
- id: 123
- name: dummyName
- body: this is a test body
- expectedResponse: 200
-
- - restRequestId:
- name: request1
- version: 1.0.1
- httpMethod: GET
- path: get
- queryParams:
- id: 123
- name: dummyName
- expectedResponse: 200
-
-
- org.onap.domain.sample.GenericK8s_AutomationCompositionDefinition:
- version: 1.2.3
- type: org.onap.policy.clamp.acm.AutomationComposition
- type_version: 1.0.0
- description: Automation composition for HTTP request
- properties:
- provider: ONAP
- elements:
- - name: org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement
- version: 1.2.3
diff --git a/participant/participant-impl/participant-impl-http/src/test/resources/application-test.yaml b/participant/participant-impl/participant-impl-http/src/test/resources/application-test.yaml
new file mode 100644
index 000000000..535508e2a
--- /dev/null
+++ b/participant/participant-impl/participant-impl-http/src/test/resources/application-test.yaml
@@ -0,0 +1,24 @@
+participant:
+ intermediaryParameters:
+ reportingTimeInterval: 120000
+ description: Participant Description
+ participantId:
+ version: 1.0.0
+ name: HttpParticipant0
+ participantType:
+ version: 2.3.4
+ name: org.onap.clamp.acm.HttpParticipant
+ clampAutomationCompositionTopics:
+ topicSources:
+ -
+ topic: POLICY-ACRUNTIME-PARTICIPANT
+ servers:
+ - localhost
+ topicCommInfrastructure: dmaap
+ fetchTimeout: 15000
+ topicSinks:
+ -
+ topicCommInfrastructure: dmaap
+ servers:
+ - localhost
+ topic: POLICY-ACRUNTIME-PARTICIPANT
diff --git a/participant/participant-impl/participant-impl-http/src/test/resources/application_test.properties b/participant/participant-impl/participant-impl-http/src/test/resources/application_test.properties
deleted file mode 100644
index e9f3b37cb..000000000
--- a/participant/participant-impl/participant-impl-http/src/test/resources/application_test.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-spring.security.user.name=participantUser
-spring.security.user.password=zb!XztG34
-
-server.servlet.context-path=/onap/policy/clamp/acm/httpparticipant
-server.error.path=/error
-server.http-port=8084
-
-participant.name=AutomationCompositionParticipant Http Test
-participant.intermediaryParameters.name=Participant parameters
-participant.intermediaryParameters.reportingTimeInterval=120000
-participant.intermediaryParameters.description=Participant Description
-participant.intermediaryParameters.participantId.name=HttpParticipant0
-participant.intermediaryParameters.participantId.version=1.0.0
-participant.intermediaryParameters.participantType.name=org.onap.clamp.acm.HttpParticipant
-participant.intermediaryParameters.participantType.version=2.3.4
-participant.intermediaryParameters.clampAutomationCompositionTopics.name=AutomationComposition Topics
-participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].topic=POLICY-ACRUNTIME-PARTICIPANT
-participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].servers[0]=localhost
-participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].topicCommInfrastructure=dmaap
-participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].fetchTimeout=15000
-participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].topic=POLICY-ACRUNTIME-PARTICIPANT
-participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].servers[0]=localhost
-participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].topicCommInfrastructure=dmaap
-management.endpoints.web.exposure.include=health,metrics,prometheus