aboutsummaryrefslogtreecommitdiffstats
path: root/runtime-controlloop/src/test/java/org
diff options
context:
space:
mode:
authorliamfallon <liam.fallon@est.tech>2022-01-25 19:55:43 +0000
committerliamfallon <liam.fallon@est.tech>2022-02-18 15:54:40 +0000
commit43098043c4ef31d9d5dead66568d7d9482a6b165 (patch)
tree6f6ea4812ff93d65e7c64e12a3ec6ab4462a64e2 /runtime-controlloop/src/test/java/org
parentf401b5099bcb64f3e21de608d0207dd69d8043cd (diff)
Rename TOSCA Control Loop to ACM
This commit renames the TOSCA Control Loop functionality in CLAMP to Automation Composition Management. This review is a direct renaming review and, as everything is renamed together it is large. Issue-ID: POLICY-3939 Change-Id: I28f0a6dd889bf3570a4c1365ae9e71fc58db6d6c Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'runtime-controlloop/src/test/java/org')
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningProviderTest.java221
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningControllerTest.java303
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/config/messaging/MessageDispatcherActivatorTest.java102
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/ControlLoopInstantiationProviderTest.java378
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/InstantiationUtils.java141
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/rest/InstantiationControllerTest.java527
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/main/rest/ActuatorControllerTest.java91
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/TestMonitoringProvider.java319
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryControllerTest.java242
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/HandleCounterTest.java84
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionAspectTest.java66
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionHandlerTest.java307
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionScannerTest.java214
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/comm/SupervisionMessagesTest.java225
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/CommonTestData.java123
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/rest/CommonRestController.java201
16 files changed, 0 insertions, 3544 deletions
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningProviderTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningProviderTest.java
deleted file mode 100644
index 843985e7d..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningProviderTest.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.clamp.controlloop.runtime.commissioning;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.PropertyNamingStrategies;
-import com.fasterxml.jackson.module.jsonSchema.factories.SchemaFactoryWrapper;
-import java.util.List;
-import java.util.Map;
-import org.junit.jupiter.api.Test;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
-import org.onap.policy.clamp.controlloop.runtime.instantiation.InstantiationUtils;
-import org.onap.policy.common.utils.coder.Coder;
-import org.onap.policy.common.utils.coder.StandardCoder;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaCapabilityType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaDataType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaRelationshipType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaTopologyTemplate;
-
-class CommissioningProviderTest {
- private static final String TOSCA_SERVICE_TEMPLATE_YAML =
- "src/test/resources/rest/servicetemplates/pmsh_multiple_cl_tosca.yaml";
- private static final String COMMON_TOSCA_SERVICE_TEMPLATE_YAML =
- "src/test/resources/rest/servicetemplates/full-tosca-with-common-properties.yaml";
-
- private static final Coder CODER = new StandardCoder();
- private final ObjectMapper mapper = new ObjectMapper();
-
- /**
- * Test the fetching of control loop definitions (ToscaServiceTemplates).
- *
- * @throws Exception .
- */
- @Test
- void testGetControlLoopDefinitions() throws Exception {
- var clProvider = mock(ControlLoopProvider.class);
- var participantProvider = mock(ParticipantProvider.class);
- var serviceTemplateProvider = mock(ServiceTemplateProvider.class);
-
- CommissioningProvider provider =
- new CommissioningProvider(serviceTemplateProvider, clProvider, null, participantProvider);
-
- List<ToscaNodeTemplate> listOfTemplates = provider.getControlLoopDefinitions(null, null);
- assertThat(listOfTemplates).isEmpty();
-
- when(clProvider.getFilteredNodeTemplates(any()))
- .thenReturn(List.of(new ToscaNodeTemplate(), new ToscaNodeTemplate()));
- listOfTemplates = provider.getControlLoopDefinitions(null, null);
- assertThat(listOfTemplates).hasSize(2);
- }
-
- /**
- * Test the creation of control loop definitions (ToscaServiceTemplates).
- *
- * @throws Exception .
- */
- @Test
- void testCreateControlLoopDefinitions() throws Exception {
- var serviceTemplateProvider = mock(ServiceTemplateProvider.class);
- var clProvider = mock(ControlLoopProvider.class);
- var participantProvider = mock(ParticipantProvider.class);
-
- CommissioningProvider provider =
- new CommissioningProvider(serviceTemplateProvider, clProvider, null, participantProvider);
-
- List<ToscaNodeTemplate> listOfTemplates = provider.getControlLoopDefinitions(null, null);
- assertThat(listOfTemplates).isEmpty();
-
- ToscaServiceTemplate serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_SERVICE_TEMPLATE_YAML);
- when(serviceTemplateProvider.createServiceTemplate(serviceTemplate)).thenReturn(serviceTemplate);
-
- // Response should return the number of node templates present in the service template
- List<ToscaConceptIdentifier> affectedDefinitions =
- provider.createControlLoopDefinitions(serviceTemplate).getAffectedControlLoopDefinitions();
- assertThat(affectedDefinitions).hasSize(13);
-
- when(clProvider.getFilteredNodeTemplates(any()))
- .thenReturn(List.of(new ToscaNodeTemplate(), new ToscaNodeTemplate()));
-
- listOfTemplates = provider.getControlLoopDefinitions(null, null);
- assertThat(listOfTemplates).hasSize(2);
- }
-
- /**
- * Test the fetching of a full ToscaServiceTemplate object - as opposed to the reduced template that is being
- * tested in the testGetToscaServiceTemplateReduced() test.
- *
- */
- @Test
- void testGetToscaServiceTemplate() throws Exception {
- var serviceTemplateProvider = mock(ServiceTemplateProvider.class);
- var clProvider = mock(ControlLoopProvider.class);
- var participantProvider = mock(ParticipantProvider.class);
-
- CommissioningProvider provider =
- new CommissioningProvider(serviceTemplateProvider, clProvider, null, participantProvider);
- ToscaServiceTemplate serviceTemplate =
- InstantiationUtils.getToscaServiceTemplate(COMMON_TOSCA_SERVICE_TEMPLATE_YAML);
- when(serviceTemplateProvider.createServiceTemplate(serviceTemplate)).thenReturn(serviceTemplate);
-
- provider.createControlLoopDefinitions(serviceTemplate);
- verify(serviceTemplateProvider).createServiceTemplate(serviceTemplate);
-
- when(serviceTemplateProvider.getToscaServiceTemplate(eq(null), eq(null))).thenReturn(serviceTemplate);
-
- ToscaServiceTemplate returnedServiceTemplate = provider.getToscaServiceTemplate(null, null);
- assertThat(returnedServiceTemplate).isNotNull();
-
- Map<String, ToscaNodeTemplate> nodeTemplates =
- returnedServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
-
- assertThat(nodeTemplates).hasSize(8);
- }
-
- /**
- * Test the fetching of a reduced ToscaServiceTemplate with only some of the objects from the full template.
- * The reduced template does not contain: DataTypesAsMap or PolicyTypesAsMap.
- *
- */
- @Test
- void testGetToscaServiceTemplateReduced() throws Exception {
- var serviceTemplateProvider = mock(ServiceTemplateProvider.class);
- var clProvider = mock(ControlLoopProvider.class);
- var participantProvider = mock(ParticipantProvider.class);
-
- CommissioningProvider provider =
- new CommissioningProvider(serviceTemplateProvider, clProvider, null, participantProvider);
- ToscaServiceTemplate serviceTemplate =
- InstantiationUtils.getToscaServiceTemplate(COMMON_TOSCA_SERVICE_TEMPLATE_YAML);
- when(serviceTemplateProvider.createServiceTemplate(serviceTemplate)).thenReturn(serviceTemplate);
-
- provider.createControlLoopDefinitions(serviceTemplate);
-
- when(serviceTemplateProvider.getServiceTemplateList(any(), any())).thenReturn(List.of(serviceTemplate));
-
- String returnedServiceTemplate = provider.getToscaServiceTemplateReduced(null, null);
- assertThat(returnedServiceTemplate).isNotNull();
- ToscaServiceTemplate parsedServiceTemplate = CODER.decode(returnedServiceTemplate, ToscaServiceTemplate.class);
-
- assertThat(parsedServiceTemplate.getToscaTopologyTemplate().getNodeTemplates()).hasSize(8);
- }
-
- /**
- * Tests the different schemas being returned from the schema endpoint. As schemas of the different
- * sections of the Tosca Service Templates can be returned by the API, this test must cover all of the
- * different sections.
- *
- */
- @Test
- void testGetToscaServiceTemplateSchema() throws Exception {
- var serviceTemplateProvider = mock(ServiceTemplateProvider.class);
- var clProvider = mock(ControlLoopProvider.class);
- var participantProvider = mock(ParticipantProvider.class);
-
- CommissioningProvider provider =
- new CommissioningProvider(serviceTemplateProvider, clProvider, null, participantProvider);
- ToscaServiceTemplate serviceTemplate =
- InstantiationUtils.getToscaServiceTemplate(COMMON_TOSCA_SERVICE_TEMPLATE_YAML);
- when(serviceTemplateProvider.createServiceTemplate(serviceTemplate)).thenReturn(serviceTemplate);
-
- provider.createControlLoopDefinitions(serviceTemplate);
-
- mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
-
- Map<String, Class<?>> sections = Map.of("all", ToscaServiceTemplate.class, "data_types", ToscaDataType.class,
- "capability_types", ToscaCapabilityType.class, "node_types", ToscaNodeType.class, "relationship_types",
- ToscaRelationshipType.class, "policy_types", ToscaPolicyType.class, "topology_template",
- ToscaTopologyTemplate.class, "node_templates", List.class);
-
- for (Map.Entry<String, Class<?>> entry : sections.entrySet()) {
- String returnedServiceTemplateSchema = provider.getToscaServiceTemplateSchema(entry.getKey());
- assertThat(returnedServiceTemplateSchema).isNotNull();
-
- var visitor = new SchemaFactoryWrapper();
-
- if (entry.getKey().equals("node_templates")) {
- mapper.acceptJsonFormatVisitor(
- mapper.getTypeFactory().constructCollectionType(List.class, ToscaNodeTemplate.class), visitor);
- } else {
- mapper.acceptJsonFormatVisitor(mapper.constructType(entry.getValue()), visitor);
- }
-
- var jsonSchema = visitor.finalSchema();
- String localServiceTemplateSchema = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonSchema);
- assertThat(localServiceTemplateSchema).isEqualTo(returnedServiceTemplateSchema);
- }
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningControllerTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningControllerTest.java
deleted file mode 100644
index e4a121439..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningControllerTest.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.clamp.controlloop.runtime.commissioning.rest;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import java.util.List;
-import java.util.Map;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.Response;
-import org.junit.jupiter.api.AfterEach;
-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.junit.jupiter.api.parallel.Execution;
-import org.junit.jupiter.api.parallel.ExecutionMode;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
-import org.onap.policy.clamp.controlloop.models.messages.rest.commissioning.CommissioningResponse;
-import org.onap.policy.clamp.controlloop.runtime.instantiation.InstantiationUtils;
-import org.onap.policy.clamp.controlloop.runtime.util.rest.CommonRestController;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
-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.junit.jupiter.SpringExtension;
-
-@ExtendWith(SpringExtension.class)
-@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
-@TestPropertySource(locations = {"classpath:application_test.properties"})
-@Execution(ExecutionMode.SAME_THREAD)
-class CommissioningControllerTest extends CommonRestController {
-
- private static final String TOSCA_SERVICE_TEMPLATE_YAML =
- "src/test/resources/rest/servicetemplates/pmsh_multiple_cl_tosca.yaml";
- private static final String COMMON_TOSCA_SERVICE_TEMPLATE_YAML =
- "src/test/resources/rest/servicetemplates/full-tosca-with-common-properties.yaml";
-
- private static final String COMMISSIONING_ENDPOINT = "commission";
- private static ToscaServiceTemplate serviceTemplate = new ToscaServiceTemplate();
- private static ToscaServiceTemplate commonPropertiesServiceTemplate = new ToscaServiceTemplate();
-
- @Autowired
- private ServiceTemplateProvider serviceTemplateProvider;
-
- @LocalServerPort
- private int randomServerPort;
-
- /**
- * starts Main and inserts a commissioning template.
- *
- * @throws Exception if an error occurs
- */
- @BeforeAll
- public static void setUpBeforeClass() throws Exception {
-
- serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_SERVICE_TEMPLATE_YAML);
- commonPropertiesServiceTemplate =
- InstantiationUtils.getToscaServiceTemplate(COMMON_TOSCA_SERVICE_TEMPLATE_YAML);
- }
-
- @BeforeEach
- public void setUpPort() {
- super.setHttpPrefix(randomServerPort);
- }
-
- @AfterEach
- public void cleanDatabase() throws Exception {
- deleteEntryInDB();
- }
-
- @Test
- void testSwagger() throws Exception {
- super.testSwagger(COMMISSIONING_ENDPOINT);
- }
-
- @Test
- void testUnauthorizedCreate() throws Exception {
- assertUnauthorizedPost(COMMISSIONING_ENDPOINT, Entity.json(serviceTemplate));
- }
-
- @Test
- void testUnauthorizedQuery() throws Exception {
- assertUnauthorizedGet(COMMISSIONING_ENDPOINT);
- }
-
- @Test
- void testUnauthorizedQueryElements() throws Exception {
- assertUnauthorizedGet(COMMISSIONING_ENDPOINT + "/elements");
- }
-
- @Test
- void testUnauthorizedDelete() throws Exception {
- assertUnauthorizedDelete(COMMISSIONING_ENDPOINT);
- }
-
- @Test
- void testUnauthorizedQueryToscaServiceTemplate() throws Exception {
- assertUnauthorizedGet(COMMISSIONING_ENDPOINT + "/toscaservicetemplate");
- }
-
- @Test
- void testUnauthorizedQueryToscaServiceTemplateSchema() throws Exception {
- assertUnauthorizedGet(COMMISSIONING_ENDPOINT + "/toscaServiceTemplateSchema");
- }
-
- @Test
- void testUnauthorizedQueryToscaServiceCommonOrInstanceProperties() throws Exception {
- assertUnauthorizedGet(COMMISSIONING_ENDPOINT + "/getCommonOrInstanceProperties");
- }
-
- @Test
- void testQueryToscaServiceTemplate() throws Exception {
- createFullEntryInDbWithCommonProps();
-
- Invocation.Builder invocationBuilder = super.sendRequest(COMMISSIONING_ENDPOINT + "/toscaservicetemplate");
- Response rawresp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- ToscaServiceTemplate template = rawresp.readEntity(ToscaServiceTemplate.class);
- assertNotNull(template);
- assertThat(template.getNodeTypes()).hasSize(8);
-
- }
-
- @Test
- void testQueryToscaServiceTemplateSchema() throws Exception {
- createFullEntryInDbWithCommonProps();
-
- Invocation.Builder invocationBuilder =
- super.sendRequest(COMMISSIONING_ENDPOINT + "/toscaServiceTemplateSchema");
- Response rawresp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- String schema = rawresp.readEntity(String.class);
- assertNotNull(schema);
-
- }
-
- @Test
- void testQueryCommonOrInstanceProperties() throws Exception {
- createFullEntryInDbWithCommonProps();
-
- Invocation.Builder invocationBuilder = super.sendRequest(COMMISSIONING_ENDPOINT
- + "/getCommonOrInstanceProperties" + "?common=true&name=ToscaServiceTemplateSimple&version=1.0.0");
- Response rawresp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
-
- @SuppressWarnings("unchecked")
- Map<String, ToscaNodeTemplate> commonProperties = rawresp.readEntity(Map.class);
-
- assertNotNull(commonProperties);
- assertThat(commonProperties).hasSize(6);
-
- }
-
- @Test
- void testCreateBadRequest() throws Exception {
- Invocation.Builder invocationBuilder = super.sendRequest(COMMISSIONING_ENDPOINT);
- Response resp = invocationBuilder.post(Entity.json("NotToscaServiceTempalte"));
-
- assertThat(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).isEqualTo(resp.getStatus());
- CommissioningResponse commissioningResponse = resp.readEntity(CommissioningResponse.class);
- assertThat(commissioningResponse.getErrorDetails()).isNotNull();
- assertThat(commissioningResponse.getAffectedControlLoopDefinitions()).isNull();
- }
-
- @Test
- void testCreate() throws Exception {
- Invocation.Builder invocationBuilder = super.sendRequest(COMMISSIONING_ENDPOINT);
- Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
- CommissioningResponse commissioningResponse = resp.readEntity(CommissioningResponse.class);
-
- assertNotNull(commissioningResponse);
- assertNull(commissioningResponse.getErrorDetails());
- // Response should return the number of node templates present in the service template
- assertThat(commissioningResponse.getAffectedControlLoopDefinitions()).hasSize(13);
- for (String nodeTemplateName : serviceTemplate.getToscaTopologyTemplate().getNodeTemplates().keySet()) {
- assertTrue(commissioningResponse.getAffectedControlLoopDefinitions().stream()
- .anyMatch(ac -> ac.getName().equals(nodeTemplateName)));
- }
-
- }
-
- @Test
- void testQuery_NoResultWithThisName() throws Exception {
- createEntryInDB();
-
- Invocation.Builder invocationBuilder = super.sendRequest(COMMISSIONING_ENDPOINT + "?name=noResultWithThisName");
- Response rawresp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- List<?> entityList = rawresp.readEntity(List.class);
- assertThat(entityList).isEmpty();
-
- }
-
- @Test
- void testQuery() throws Exception {
- createEntryInDB();
-
- Invocation.Builder invocationBuilder = super.sendRequest(COMMISSIONING_ENDPOINT);
- Response rawresp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- List<?> entityList = rawresp.readEntity(List.class);
- assertNotNull(entityList);
- assertThat(entityList).hasSize(2);
-
- }
-
- @Test
- void testQueryElementsBadRequest() throws Exception {
- createEntryInDB();
-
- // Call get elements with no info
- Invocation.Builder invocationBuilder = super.sendRequest(COMMISSIONING_ENDPOINT + "/elements");
- Response resp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.NOT_ACCEPTABLE.getStatusCode(), resp.getStatus());
-
- }
-
- @Test
- void testQueryElements() throws Exception {
- createEntryInDB();
-
- Invocation.Builder invocationBuilder = super.sendRequest(
- COMMISSIONING_ENDPOINT + "/elements" + "?name=org.onap.domain.pmsh.PMSHControlLoopDefinition");
- Response rawresp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- List<?> entityList = rawresp.readEntity(List.class);
- assertNotNull(entityList);
- assertThat(entityList).hasSize(4);
-
- }
-
- @Test
- void testDeleteBadRequest() throws Exception {
- createEntryInDB();
-
- Invocation.Builder invocationBuilder = super.sendRequest(COMMISSIONING_ENDPOINT);
- // Call delete with no info
- Response resp = invocationBuilder.delete();
- assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
-
- }
-
- @Test
- void testDelete() throws Exception {
- var serviceTemplateCreated = createEntryInDB();
-
- Invocation.Builder invocationBuilder = super.sendRequest(COMMISSIONING_ENDPOINT + "?name="
- + serviceTemplateCreated.getName() + "&version=" + serviceTemplateCreated.getVersion());
- // Call delete with no info
- Response resp = invocationBuilder.delete();
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
-
- List<ToscaServiceTemplate> templatesInDB = serviceTemplateProvider.getAllServiceTemplates();
- assertThat(templatesInDB).isEmpty();
- }
-
- private synchronized ToscaServiceTemplate createEntryInDB() throws Exception {
- deleteEntryInDB();
- return serviceTemplateProvider.createServiceTemplate(serviceTemplate);
- }
-
- // Delete entries from the DB after relevant tests
- private synchronized void deleteEntryInDB() throws Exception {
- var list = serviceTemplateProvider.getAllServiceTemplates();
- if (!list.isEmpty()) {
- serviceTemplateProvider.deleteServiceTemplate(list.get(0).getName(), list.get(0).getVersion());
- }
- }
-
- private synchronized void createFullEntryInDbWithCommonProps() throws Exception {
- deleteEntryInDB();
- serviceTemplateProvider.createServiceTemplate(commonPropertiesServiceTemplate);
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/config/messaging/MessageDispatcherActivatorTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/config/messaging/MessageDispatcherActivatorTest.java
deleted file mode 100644
index 8dbc710dd..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/config/messaging/MessageDispatcherActivatorTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.clamp.controlloop.runtime.config.messaging;
-
-import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyList;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.util.List;
-import org.junit.jupiter.api.Test;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus;
-import org.onap.policy.clamp.controlloop.runtime.main.parameters.ClRuntimeParameterGroup;
-import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantStatusListener;
-import org.onap.policy.clamp.controlloop.runtime.util.CommonTestData;
-import org.onap.policy.common.utils.coder.Coder;
-import org.onap.policy.common.utils.coder.StandardCoder;
-import org.onap.policy.common.utils.coder.StandardCoderObject;
-
-/**
- * Class to perform unit test of {@link MessageDispatcherActivator}}.
- *
- */
-class MessageDispatcherActivatorTest {
-
- private static final Coder CODER = new StandardCoder();
-
- private static final String TOPIC_FIRST = "TOPIC1";
- private static final String TOPIC_SECOND = "TOPIC2";
-
- @Test
- void testStartAndStop() throws Exception {
- ClRuntimeParameterGroup parameterGroup = CommonTestData.geParameterGroup("dbtest");
-
- var publisherFirst = spy(mock(Publisher.class));
- var publisherSecond = spy(mock(Publisher.class));
- var publishers = List.of(publisherFirst, publisherSecond);
-
- var listenerFirst = spy(mock(ParticipantStatusListener.class));
- when(listenerFirst.getType()).thenReturn(TOPIC_FIRST);
- when(listenerFirst.getScoListener()).thenReturn(listenerFirst);
-
- var listenerSecond = spy(mock(ParticipantStatusListener.class));
- when(listenerSecond.getType()).thenReturn(TOPIC_SECOND);
- when(listenerSecond.getScoListener()).thenReturn(listenerSecond);
-
- List<Listener<ParticipantStatus>> listeners = List.of(listenerFirst, listenerSecond);
-
- try (var activator = new MessageDispatcherActivator(parameterGroup, publishers, listeners)) {
-
- assertFalse(activator.isAlive());
- activator.start();
- assertTrue(activator.isAlive());
-
- // repeat start - should throw an exception
- assertThatIllegalStateException().isThrownBy(() -> activator.start());
- assertTrue(activator.isAlive());
- verify(publisherFirst, times(1)).active(anyList());
- verify(publisherSecond, times(1)).active(anyList());
-
- StandardCoderObject sco = CODER.decode("{messageType:" + TOPIC_FIRST + "}", StandardCoderObject.class);
- activator.getMsgDispatcher().onTopicEvent(null, "msg", sco);
- verify(listenerFirst, times(1)).onTopicEvent(any(), any(), any());
-
- sco = CODER.decode("{messageType:" + TOPIC_SECOND + "}", StandardCoderObject.class);
- activator.getMsgDispatcher().onTopicEvent(null, "msg", sco);
- verify(listenerSecond, times(1)).onTopicEvent(any(), any(), any());
-
- activator.stop();
- assertFalse(activator.isAlive());
-
- // repeat stop - should throw an exception
- assertThatIllegalStateException().isThrownBy(() -> activator.stop());
- assertFalse(activator.isAlive());
- }
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/ControlLoopInstantiationProviderTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/ControlLoopInstantiationProviderTest.java
deleted file mode 100644
index ba1cc0813..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/ControlLoopInstantiationProviderTest.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.clamp.controlloop.runtime.instantiation;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Optional;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
-import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
-import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.InstantiationCommand;
-import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.InstantiationResponse;
-import org.onap.policy.clamp.controlloop.runtime.commissioning.CommissioningProvider;
-import org.onap.policy.clamp.controlloop.runtime.supervision.SupervisionHandler;
-import org.onap.policy.clamp.controlloop.runtime.util.CommonTestData;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-
-/**
- * Class to perform unit test of {@link ControlLoopInstantiationProvider}}.
- *
- */
-class ControlLoopInstantiationProviderTest {
- private static final String ID_NAME = "PMSH_Instance1";
- private static final String ID_VERSION = "1.2.3";
- private static final String CL_INSTANTIATION_CREATE_JSON = "src/test/resources/rest/controlloops/ControlLoops.json";
- private static final String CL_INSTANTIATION_UPDATE_JSON =
- "src/test/resources/rest/controlloops/ControlLoopsUpdate.json";
- private static final String CL_INSTANTIATION_CHANGE_STATE_JSON =
- "src/test/resources/rest/controlloops/PassiveCommand.json";
- private static final String CL_INSTANTIATION_DEFINITION_NAME_NOT_FOUND_JSON =
- "src/test/resources/rest/controlloops/ControlLoopElementsNotFound.json";
- private static final String CL_INSTANTIATION_CONTROLLOOP_DEFINITION_NOT_FOUND_JSON =
- "src/test/resources/rest/controlloops/ControlLoopsNotFound.json";
- private static final String TOSCA_TEMPLATE_YAML =
- "src/test/resources/rest/servicetemplates/pmsh_multiple_cl_tosca.yaml";
- private static final String CONTROL_LOOP_NOT_FOUND = "Control Loop not found";
- private static final String DELETE_BAD_REQUEST = "Control Loop State is still %s";
- private static final String ORDERED_STATE_INVALID = "ordered state invalid or not specified on command";
- private static final String CONTROLLOOP_ELEMENT_NAME_NOT_FOUND =
- "\"ControlLoops\" INVALID, item has status INVALID\n"
- + " \"entry org.onap.domain.pmsh.PMSHControlLoopDefinition\" INVALID, item has status INVALID\n"
- + " \"entry org.onap.domain.pmsh.DCAEMicroservice\" INVALID, Not FOUND\n"
- + " \"entry org.onap.domain.pmsh.PMSHControlLoopDefinition\" INVALID, item has status INVALID\n"
- + " \"entry org.onap.domain.pmsh.DCAEMicroservice\" INVALID, Not FOUND\n";
-
- private static final String CONTROLLOOP_DEFINITION_NOT_FOUND = "\"ControlLoops\" INVALID, item has status INVALID\n"
- + " \"entry org.onap.domain.PMSHControlLoopDefinition\" INVALID, item has status INVALID\n"
- + " item \"ControlLoop\" value \"org.onap.domain.PMSHControlLoopDefinition\" INVALID,"
- + " Commissioned control loop definition not FOUND\n"
- + " \"entry org.onap.domain.PMSHControlLoopDefinition\" INVALID, item has status INVALID\n"
- + " item \"ControlLoop\" value \"org.onap.domain.PMSHControlLoopDefinition\" INVALID,"
- + " Commissioned control loop definition not FOUND\n";
-
- private static ToscaServiceTemplate serviceTemplate = new ToscaServiceTemplate();
-
- @BeforeAll
- public static void setUpBeforeClass() throws Exception {
- serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_TEMPLATE_YAML);
- }
-
- @Test
- void testIntanceResponses() throws Exception {
- var participantProvider = Mockito.mock(ParticipantProvider.class);
- var clProvider = mock(ControlLoopProvider.class);
- var supervisionHandler = mock(SupervisionHandler.class);
- var commissioningProvider = mock(CommissioningProvider.class);
-
- when(commissioningProvider.getAllToscaServiceTemplate()).thenReturn(List.of(serviceTemplate));
- when(commissioningProvider.getToscaServiceTemplate(ID_NAME, ID_VERSION)).thenReturn(serviceTemplate);
-
- var instantiationProvider = new ControlLoopInstantiationProvider(clProvider, commissioningProvider,
- supervisionHandler, participantProvider);
- var instancePropertyList = instantiationProvider.createInstanceProperties(serviceTemplate);
- assertNull(instancePropertyList.getErrorDetails());
- var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
- assertEquals(id, instancePropertyList.getAffectedInstanceProperties().get(0));
-
- ControlLoops controlLoops =
- InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Crud");
- var controlLoop = controlLoops.getControlLoopList().get(0);
- controlLoop.setName(ID_NAME);
- controlLoop.setVersion(ID_VERSION);
- when(clProvider.getControlLoops(ID_NAME, ID_VERSION)).thenReturn(List.of(controlLoop));
-
- var instanceOrderState = instantiationProvider.getInstantiationOrderState(ID_NAME, ID_VERSION);
- assertEquals(ControlLoopOrderedState.UNINITIALISED, instanceOrderState.getOrderedState());
- assertEquals(ID_NAME, instanceOrderState.getControlLoopIdentifierList().get(0).getName());
-
- when(clProvider.findControlLoop(ID_NAME, ID_VERSION)).thenReturn(Optional.of(controlLoop));
- when(clProvider.deleteControlLoop(ID_NAME, ID_VERSION)).thenReturn(controlLoop);
-
- var instanceResponse = instantiationProvider.deleteInstanceProperties(ID_NAME, ID_VERSION);
- assertEquals(ID_NAME, instanceResponse.getAffectedControlLoops().get(0).getName());
-
- }
-
- @Test
- void testInstantiationCrud() throws Exception {
- var participantProvider = Mockito.mock(ParticipantProvider.class);
- var participants = CommonTestData.createParticipants();
- when(participantProvider.getParticipants()).thenReturn(participants);
-
- var commissioningProvider = mock(CommissioningProvider.class);
- var toscaNodeTemplate1 = new ToscaNodeTemplate();
- toscaNodeTemplate1.setName("org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement");
- toscaNodeTemplate1.setVersion("1.2.3");
- when(commissioningProvider.getControlLoopDefinitions(anyString(), anyString()))
- .thenReturn(List.of(toscaNodeTemplate1));
-
- var toscaNodeTemplate2 = new ToscaNodeTemplate();
- toscaNodeTemplate2.setName("org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement");
- toscaNodeTemplate2.setVersion("1.2.3");
- var toscaNodeTemplate3 = new ToscaNodeTemplate();
- toscaNodeTemplate3.setName("org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement");
- toscaNodeTemplate3.setVersion("1.2.3");
- var toscaNodeTemplate4 = new ToscaNodeTemplate();
- toscaNodeTemplate4.setName("org.onap.domain.pmsh.PMSH_DCAEMicroservice");
- toscaNodeTemplate4.setVersion("1.2.3");
-
- when(commissioningProvider.getControlLoopElementDefinitions(toscaNodeTemplate1))
- .thenReturn(List.of(toscaNodeTemplate1, toscaNodeTemplate2, toscaNodeTemplate3, toscaNodeTemplate4));
-
- var supervisionHandler = mock(SupervisionHandler.class);
- var clProvider = mock(ControlLoopProvider.class);
- var instantiationProvider = new ControlLoopInstantiationProvider(clProvider, commissioningProvider,
- supervisionHandler, participantProvider);
- ControlLoops controlLoopsCreate =
- InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Crud");
- InstantiationResponse instantiationResponse = instantiationProvider.createControlLoops(controlLoopsCreate);
- InstantiationUtils.assertInstantiationResponse(instantiationResponse, controlLoopsCreate);
-
- verify(clProvider).saveControlLoops(controlLoopsCreate.getControlLoopList());
-
- for (var controlLoop : controlLoopsCreate.getControlLoopList()) {
- when(clProvider.getControlLoops(controlLoop.getName(), controlLoop.getVersion()))
- .thenReturn(List.of(controlLoop));
-
- ControlLoops controlLoopsGet =
- instantiationProvider.getControlLoops(controlLoop.getName(), controlLoop.getVersion());
- assertThat(controlLoopsGet.getControlLoopList()).hasSize(1);
- assertThat(controlLoop).isEqualTo(controlLoopsGet.getControlLoopList().get(0));
- }
-
- ControlLoops controlLoopsUpdate =
- InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_UPDATE_JSON, "Crud");
-
- instantiationResponse = instantiationProvider.updateControlLoops(controlLoopsUpdate);
- InstantiationUtils.assertInstantiationResponse(instantiationResponse, controlLoopsUpdate);
-
- verify(clProvider).saveControlLoops(controlLoopsUpdate.getControlLoopList());
-
- for (var controlLoop : controlLoopsUpdate.getControlLoopList()) {
- when(clProvider.findControlLoop(controlLoop.getKey().asIdentifier())).thenReturn(Optional.of(controlLoop));
- when(clProvider.findControlLoop(controlLoop.getName(), controlLoop.getVersion()))
- .thenReturn(Optional.of(controlLoop));
- when(clProvider.deleteControlLoop(controlLoop.getName(), controlLoop.getVersion())).thenReturn(controlLoop);
- }
-
- InstantiationCommand instantiationCommand =
- InstantiationUtils.getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON, "Crud");
- instantiationResponse = instantiationProvider.issueControlLoopCommand(instantiationCommand);
- InstantiationUtils.assertInstantiationResponse(instantiationResponse, instantiationCommand);
-
- verify(supervisionHandler).triggerControlLoopSupervision(instantiationCommand.getControlLoopIdentifierList());
-
- // in order to delete a controlLoop the state must be UNINITIALISED
- controlLoopsCreate.getControlLoopList().forEach(cl -> cl.setState(ControlLoopState.UNINITIALISED));
- instantiationProvider.updateControlLoops(controlLoopsCreate);
-
- for (ControlLoop controlLoop : controlLoopsCreate.getControlLoopList()) {
- instantiationProvider.deleteControlLoop(controlLoop.getName(), controlLoop.getVersion());
-
- verify(clProvider).deleteControlLoop(controlLoop.getName(), controlLoop.getVersion());
- }
- }
-
- @Test
- void testInstantiationDelete() throws Exception {
-
- ControlLoops controlLoops =
- InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Delete");
-
- ControlLoop controlLoop0 = controlLoops.getControlLoopList().get(0);
- var participantProvider = Mockito.mock(ParticipantProvider.class);
- var clProvider = mock(ControlLoopProvider.class);
- var supervisionHandler = mock(SupervisionHandler.class);
- var commissioningProvider = mock(CommissioningProvider.class);
-
- var instantiationProvider = new ControlLoopInstantiationProvider(clProvider, commissioningProvider,
- supervisionHandler, participantProvider);
-
- assertThatThrownBy(
- () -> instantiationProvider.deleteControlLoop(controlLoop0.getName(), controlLoop0.getVersion()))
- .hasMessageMatching(CONTROL_LOOP_NOT_FOUND);
-
- for (ControlLoopState state : ControlLoopState.values()) {
- if (!ControlLoopState.UNINITIALISED.equals(state)) {
- assertThatDeleteThrownBy(controlLoops, state);
- }
- }
- controlLoop0.setState(ControlLoopState.UNINITIALISED);
-
- for (ControlLoop controlLoop : controlLoops.getControlLoopList()) {
- when(clProvider.findControlLoop(controlLoop.getName(), controlLoop.getVersion()))
- .thenReturn(Optional.of(controlLoop));
- when(clProvider.deleteControlLoop(controlLoop.getName(), controlLoop.getVersion())).thenReturn(controlLoop);
-
- instantiationProvider.deleteControlLoop(controlLoop.getName(), controlLoop.getVersion());
- }
- }
-
- private void assertThatDeleteThrownBy(ControlLoops controlLoops, ControlLoopState state) throws Exception {
- ControlLoop controlLoop = controlLoops.getControlLoopList().get(0);
- controlLoop.setState(state);
- var participantProvider = Mockito.mock(ParticipantProvider.class);
- var clProvider = mock(ControlLoopProvider.class);
- var supervisionHandler = mock(SupervisionHandler.class);
- var commissioningProvider = mock(CommissioningProvider.class);
-
- var instantiationProvider = new ControlLoopInstantiationProvider(clProvider, commissioningProvider,
- supervisionHandler, participantProvider);
-
- when(clProvider.findControlLoop(controlLoop.getName(), controlLoop.getVersion()))
- .thenReturn(Optional.of(controlLoop));
-
- assertThatThrownBy(
- () -> instantiationProvider.deleteControlLoop(controlLoop.getName(), controlLoop.getVersion()))
- .hasMessageMatching(String.format(DELETE_BAD_REQUEST, state));
- }
-
- @Test
- void testCreateControlLoops_NoDuplicates() throws Exception {
- var commissioningProvider = mock(CommissioningProvider.class);
-
- var toscaNodeTemplate1 = new ToscaNodeTemplate();
- toscaNodeTemplate1.setName("org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement");
- toscaNodeTemplate1.setVersion("1.2.3");
- when(commissioningProvider.getControlLoopDefinitions(anyString(), anyString()))
- .thenReturn(List.of(toscaNodeTemplate1));
-
- var toscaNodeTemplate2 = new ToscaNodeTemplate();
- toscaNodeTemplate2.setName("org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement");
- toscaNodeTemplate2.setVersion("1.2.3");
- var toscaNodeTemplate3 = new ToscaNodeTemplate();
- toscaNodeTemplate3.setName("org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement");
- toscaNodeTemplate3.setVersion("1.2.3");
- var toscaNodeTemplate4 = new ToscaNodeTemplate();
- toscaNodeTemplate4.setName("org.onap.domain.pmsh.PMSH_DCAEMicroservice");
- toscaNodeTemplate4.setVersion("1.2.3");
-
- when(commissioningProvider.getControlLoopElementDefinitions(toscaNodeTemplate1))
- .thenReturn(List.of(toscaNodeTemplate1, toscaNodeTemplate2, toscaNodeTemplate3, toscaNodeTemplate4));
-
- ControlLoops controlLoopsCreate =
- InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "NoDuplicates");
-
- var clProvider = mock(ControlLoopProvider.class);
- var participantProvider = Mockito.mock(ParticipantProvider.class);
- var supervisionHandler = mock(SupervisionHandler.class);
-
- var instantiationProvider = new ControlLoopInstantiationProvider(clProvider, commissioningProvider,
- supervisionHandler, participantProvider);
-
- InstantiationResponse instantiationResponse = instantiationProvider.createControlLoops(controlLoopsCreate);
- InstantiationUtils.assertInstantiationResponse(instantiationResponse, controlLoopsCreate);
-
- when(clProvider.findControlLoop(controlLoopsCreate.getControlLoopList().get(0).getKey().asIdentifier()))
- .thenReturn(Optional.of(controlLoopsCreate.getControlLoopList().get(0)));
-
- assertThatThrownBy(() -> instantiationProvider.createControlLoops(controlLoopsCreate)).hasMessageMatching(
- controlLoopsCreate.getControlLoopList().get(0).getKey().asIdentifier() + " already defined");
- }
-
- @Test
- void testCreateControlLoops_CommissionedClElementNotFound() throws Exception {
- var toscaNodeTemplate1 = new ToscaNodeTemplate();
- toscaNodeTemplate1.setName("org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement");
- toscaNodeTemplate1.setVersion("1.2.3");
-
- var toscaNodeTemplate2 = new ToscaNodeTemplate();
- toscaNodeTemplate2.setName("org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement");
- toscaNodeTemplate2.setVersion("1.2.3");
- var toscaNodeTemplate3 = new ToscaNodeTemplate();
- toscaNodeTemplate3.setName("org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement");
- toscaNodeTemplate3.setVersion("1.2.3");
- var commissioningProvider = mock(CommissioningProvider.class);
- ControlLoops controlLoops = InstantiationUtils
- .getControlLoopsFromResource(CL_INSTANTIATION_DEFINITION_NAME_NOT_FOUND_JSON, "ClElementNotFound");
-
- when(commissioningProvider.getControlLoopDefinitions(
- controlLoops.getControlLoopList().get(0).getDefinition().getName(),
- controlLoops.getControlLoopList().get(0).getDefinition().getVersion()))
- .thenReturn(List.of(toscaNodeTemplate1));
-
- when(commissioningProvider.getControlLoopElementDefinitions(toscaNodeTemplate1))
- .thenReturn(List.of(toscaNodeTemplate1, toscaNodeTemplate2, toscaNodeTemplate3));
-
- var clProvider = mock(ControlLoopProvider.class);
- var participantProvider = mock(ParticipantProvider.class);
- var supervisionHandler = mock(SupervisionHandler.class);
- var provider = new ControlLoopInstantiationProvider(clProvider, commissioningProvider, supervisionHandler,
- participantProvider);
-
- assertThatThrownBy(() -> provider.createControlLoops(controlLoops))
- .hasMessageMatching(CONTROLLOOP_ELEMENT_NAME_NOT_FOUND);
-
- assertThatThrownBy(() -> provider.updateControlLoops(controlLoops))
- .hasMessageMatching(CONTROLLOOP_ELEMENT_NAME_NOT_FOUND);
- }
-
- @Test
- void testCreateControlLoops_CommissionedClNotFound() throws Exception {
- ControlLoops controlLoops = InstantiationUtils
- .getControlLoopsFromResource(CL_INSTANTIATION_CONTROLLOOP_DEFINITION_NOT_FOUND_JSON, "ClNotFound");
-
- var participantProvider = Mockito.mock(ParticipantProvider.class);
- var clProvider = mock(ControlLoopProvider.class);
- var supervisionHandler = mock(SupervisionHandler.class);
- var commissioningProvider = mock(CommissioningProvider.class);
- var provider = new ControlLoopInstantiationProvider(clProvider, commissioningProvider, supervisionHandler,
- participantProvider);
-
- assertThatThrownBy(() -> provider.createControlLoops(controlLoops))
- .hasMessageMatching(CONTROLLOOP_DEFINITION_NOT_FOUND);
-
- assertThatThrownBy(() -> provider.updateControlLoops(controlLoops))
- .hasMessageMatching(CONTROLLOOP_DEFINITION_NOT_FOUND);
- }
-
- @Test
- void testIssueControlLoopCommand_OrderedStateInvalid() throws ControlLoopRuntimeException, IOException {
- var participantProvider = Mockito.mock(ParticipantProvider.class);
- var clProvider = mock(ControlLoopProvider.class);
- var supervisionHandler = mock(SupervisionHandler.class);
- var commissioningProvider = mock(CommissioningProvider.class);
- var instantiationProvider = new ControlLoopInstantiationProvider(clProvider, commissioningProvider,
- supervisionHandler, participantProvider);
- assertThatThrownBy(() -> instantiationProvider.issueControlLoopCommand(new InstantiationCommand()))
- .hasMessageMatching(ORDERED_STATE_INVALID);
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/InstantiationUtils.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/InstantiationUtils.java
deleted file mode 100644
index 5aa68657c..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/InstantiationUtils.java
+++ /dev/null
@@ -1,141 +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=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.runtime.instantiation;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
-
-import java.io.File;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
-import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.InstantiationCommand;
-import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.InstantiationResponse;
-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.common.utils.coder.StandardYamlCoder;
-import org.onap.policy.common.utils.resources.ResourceUtils;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-
-/**
- * Utility methods supporting tests for Instantiation.
- */
-public class InstantiationUtils {
-
- private static final Coder CODER = new StandardCoder();
- private static final StandardYamlCoder YAML_TRANSLATOR = new StandardYamlCoder();
-
- /**
- * Gets the ControlLoops from Resource.
- *
- * @param path path of the resource
- * @param suffix suffix to add to all names in ControlLoops
- * @return the ControlLoops from Resource
- * @throws CoderException if an error occurs
- */
- public static ControlLoops getControlLoopsFromResource(final String path, final String suffix)
- throws CoderException {
- ControlLoops controlLoops = CODER.decode(new File(path), ControlLoops.class);
-
- // add suffix to all names
- controlLoops.getControlLoopList().forEach(controlLoop -> controlLoop.setName(controlLoop.getName() + suffix));
- return controlLoops;
- }
-
- /**
- * Gets InstantiationCommand from Resource.
- *
- * @param path path of the resource
- * @param suffix suffix to add to all names in ControlLoops
- * @return the InstantiationCommand
- * @throws CoderException if an error occurs
- */
- public static InstantiationCommand getInstantiationCommandFromResource(final String path, final String suffix)
- throws CoderException {
- InstantiationCommand instantiationCommand = CODER.decode(new File(path), InstantiationCommand.class);
-
- // add suffix to all names
- instantiationCommand.getControlLoopIdentifierList().forEach(cl -> cl.setName(cl.getName() + suffix));
- return instantiationCommand;
- }
-
- /**
- * Assert that Instantiation Response contains proper ControlLoops.
- *
- * @param response InstantiationResponse
- * @param controlLoops ControlLoops
- */
- public static void assertInstantiationResponse(InstantiationResponse response, ControlLoops controlLoops) {
- assertThat(response).isNotNull();
- assertThat(response.getErrorDetails()).isNull();
- assertThat(response.getAffectedControlLoops().size()).isEqualTo(controlLoops.getControlLoopList().size());
- for (ControlLoop controlLoop : controlLoops.getControlLoopList()) {
- assertTrue(response.getAffectedControlLoops().stream()
- .filter(ac -> ac.equals(controlLoop.getKey().asIdentifier())).findAny().isPresent());
- }
- }
-
- /**
- * Assert that Instantiation Response contains proper ControlLoops.
- *
- * @param response InstantiationResponse
- * @param command InstantiationCommand
- */
- public static void assertInstantiationResponse(InstantiationResponse response, InstantiationCommand command) {
- assertThat(response).isNotNull();
- assertEquals(response.getAffectedControlLoops().size(), command.getControlLoopIdentifierList().size());
- for (ToscaConceptIdentifier toscaConceptIdentifier : command.getControlLoopIdentifierList()) {
- assertTrue(response.getAffectedControlLoops().stream()
- .filter(ac -> ac.compareTo(toscaConceptIdentifier) == 0).findAny().isPresent());
- }
- }
-
- /**
- * Assert that Instantiation Response contains ControlLoop equals to controlLoop.
- *
- * @param response InstantiationResponse
- * @param controlLoop ControlLoop
- */
- public static void assertInstantiationResponse(InstantiationResponse response, ControlLoop controlLoop) {
- assertThat(response).isNotNull();
- assertThat(response.getErrorDetails()).isNull();
- assertEquals(1, response.getAffectedControlLoops().size());
- assertEquals(0, response.getAffectedControlLoops().get(0).compareTo(controlLoop.getKey().asIdentifier()));
- }
-
- /**
- * Get ToscaServiceTemplate from resource.
- *
- * @param path path of the resource
- */
- public static ToscaServiceTemplate getToscaServiceTemplate(String path) {
-
- try {
- return YAML_TRANSLATOR.decode(ResourceUtils.getResourceAsStream(path), ToscaServiceTemplate.class);
- } catch (CoderException e) {
- fail("Cannot read or decode " + path);
- return null;
- }
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/rest/InstantiationControllerTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/rest/InstantiationControllerTest.java
deleted file mode 100644
index 9cc0195d9..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/rest/InstantiationControllerTest.java
+++ /dev/null
@@ -1,527 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.clamp.controlloop.runtime.instantiation.rest;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.Response;
-import org.junit.jupiter.api.AfterEach;
-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.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.repository.ControlLoopRepository;
-import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.ControlLoopOrderStateResponse;
-import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.ControlLoopPrimedResponse;
-import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.InstancePropertiesResponse;
-import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.InstantiationCommand;
-import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.InstantiationResponse;
-import org.onap.policy.clamp.controlloop.runtime.instantiation.ControlLoopInstantiationProvider;
-import org.onap.policy.clamp.controlloop.runtime.instantiation.InstantiationUtils;
-import org.onap.policy.clamp.controlloop.runtime.main.rest.InstantiationController;
-import org.onap.policy.clamp.controlloop.runtime.util.CommonTestData;
-import org.onap.policy.clamp.controlloop.runtime.util.rest.CommonRestController;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
-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.junit.jupiter.SpringExtension;
-
-/**
- * Class to perform unit test of {@link InstantiationController}}.
- *
- */
-@ExtendWith(SpringExtension.class)
-@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
-@TestPropertySource(locations = {"classpath:application_test.properties"})
-class InstantiationControllerTest extends CommonRestController {
-
- private static final String ID_NAME = "PMSH_Instance1";
- private static final String ID_VERSION = "1.2.3";
-
- private static final String CL_INSTANTIATION_CREATE_JSON = "src/test/resources/rest/controlloops/ControlLoops.json";
-
- private static final String CL_INSTANTIATION_UPDATE_JSON =
- "src/test/resources/rest/controlloops/ControlLoopsUpdate.json";
-
- private static final String CL_INSTANTIATION_CHANGE_STATE_JSON =
- "src/test/resources/rest/controlloops/PassiveCommand.json";
-
- private static final String TOSCA_TEMPLATE_YAML =
- "src/test/resources/rest/servicetemplates/pmsh_multiple_cl_tosca.yaml";
-
- private static final String INSTANTIATION_ENDPOINT = "instantiation";
- private static final String INSTANTIATION_COMMAND_ENDPOINT = "instantiation/command";
- private static final String PRIMING_ENDPOINT = "controlLoopPriming";
- private static final String INSTANTIATION_PROPERTIES = "instanceProperties";
- private static final String INSTANTIATION_STATE = "instantiationState";
-
- private static ToscaServiceTemplate serviceTemplate = new ToscaServiceTemplate();
-
- @Autowired
- private ControlLoopRepository controlLoopRepository;
-
- @Autowired
- private ServiceTemplateProvider serviceTemplateProvider;
-
- @Autowired
- private ControlLoopInstantiationProvider instantiationProvider;
-
- @Autowired
- private ParticipantProvider participantProvider;
-
- @LocalServerPort
- private int randomServerPort;
-
- @BeforeAll
- public static void setUpBeforeClass() throws Exception {
- serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_TEMPLATE_YAML);
- }
-
- @BeforeEach
- public void populateDb() throws Exception {
- createEntryInDB();
- }
-
- @BeforeEach
- public void setUpPort() {
- super.setHttpPrefix(randomServerPort);
- }
-
- @AfterEach
- public void cleanDatabase() throws Exception {
- deleteEntryInDB();
- }
-
- @Test
- void testSwagger() throws Exception {
- super.testSwagger(INSTANTIATION_ENDPOINT);
- }
-
- @Test
- void testCreate_Unauthorized() throws Exception {
- ControlLoops controlLoops =
- InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Unauthorized");
-
- assertUnauthorizedPost(INSTANTIATION_ENDPOINT, Entity.json(controlLoops));
- }
-
- @Test
- void testQuery_Unauthorized() throws Exception {
- assertUnauthorizedGet(INSTANTIATION_ENDPOINT);
- }
-
- @Test
- void testUpdate_Unauthorized() throws Exception {
- ControlLoops controlLoops =
- InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_UPDATE_JSON, "Unauthorized");
-
- assertUnauthorizedPut(INSTANTIATION_ENDPOINT, Entity.json(controlLoops));
- }
-
- @Test
- void testDelete_Unauthorized() throws Exception {
- assertUnauthorizedDelete(INSTANTIATION_ENDPOINT);
- }
-
- @Test
- void testCommand_Unauthorized() throws Exception {
- InstantiationCommand instantiationCommand = InstantiationUtils
- .getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON, "Unauthorized");
-
- assertUnauthorizedPut(INSTANTIATION_COMMAND_ENDPOINT, Entity.json(instantiationCommand));
- }
-
- @Test
- void testCreate() throws Exception {
-
- ControlLoops controlLoopsFromRsc =
- InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Create");
-
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
- Response resp = invocationBuilder.post(Entity.json(controlLoopsFromRsc));
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
- InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
- InstantiationUtils.assertInstantiationResponse(instResponse, controlLoopsFromRsc);
-
- for (ControlLoop controlLoopFromRsc : controlLoopsFromRsc.getControlLoopList()) {
- ControlLoops controlLoopsFromDb = instantiationProvider
- .getControlLoops(controlLoopFromRsc.getKey().getName(), controlLoopFromRsc.getKey().getVersion());
-
- assertNotNull(controlLoopsFromDb);
- assertThat(controlLoopsFromDb.getControlLoopList()).hasSize(1);
- assertEquals(controlLoopFromRsc, controlLoopsFromDb.getControlLoopList().get(0));
- }
-
- invocationBuilder =
- super.sendRequest(PRIMING_ENDPOINT + "?name=" + "PMSHInstance0Create" + "&version=" + "1.0.1");
- Response rawresp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- ControlLoopPrimedResponse primResponse = rawresp.readEntity(ControlLoopPrimedResponse.class);
- assertEquals(false, primResponse.getPrimedControlLoopsList().get(0).isPrimed());
- }
-
- @Test
- void testCreateBadRequest() throws Exception {
-
- ControlLoops controlLoopsFromRsc =
- InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "CreateBadRequest");
-
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
- Response resp = invocationBuilder.post(Entity.json(controlLoopsFromRsc));
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
-
- // testing Bad Request: CL already defined
- resp = invocationBuilder.post(Entity.json(controlLoopsFromRsc));
- assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
- InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
- assertNotNull(instResponse.getErrorDetails());
- assertNull(instResponse.getAffectedControlLoops());
- }
-
- @Test
- void testQuery_NoResultWithThisName() throws Exception {
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT + "?name=noResultWithThisName");
- Response rawresp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- ControlLoops resp = rawresp.readEntity(ControlLoops.class);
- assertThat(resp.getControlLoopList()).isEmpty();
- }
-
- @Test
- void testQuery() throws Exception {
-
- var controlLoops = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Query");
- instantiationProvider.createControlLoops(controlLoops);
-
- for (ControlLoop controlLoopFromRsc : controlLoops.getControlLoopList()) {
- Invocation.Builder invocationBuilder =
- super.sendRequest(INSTANTIATION_ENDPOINT + "?name=" + controlLoopFromRsc.getKey().getName());
- Response rawresp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- ControlLoops controlLoopsQuery = rawresp.readEntity(ControlLoops.class);
- assertNotNull(controlLoopsQuery);
- assertThat(controlLoopsQuery.getControlLoopList()).hasSize(1);
- assertEquals(controlLoopFromRsc, controlLoopsQuery.getControlLoopList().get(0));
- }
- }
-
- @Test
- void testUpdate() throws Exception {
-
- ControlLoops controlLoopsCreate =
- InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Update");
-
- var controlLoops = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_UPDATE_JSON, "Update");
- instantiationProvider.createControlLoops(controlLoopsCreate);
-
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
- Response resp = invocationBuilder.put(Entity.json(controlLoops));
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
-
- InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
- InstantiationUtils.assertInstantiationResponse(instResponse, controlLoops);
-
- for (ControlLoop controlLoopUpdate : controlLoops.getControlLoopList()) {
- ControlLoops controlLoopsFromDb = instantiationProvider
- .getControlLoops(controlLoopUpdate.getKey().getName(), controlLoopUpdate.getKey().getVersion());
-
- assertNotNull(controlLoopsFromDb);
- assertThat(controlLoopsFromDb.getControlLoopList()).hasSize(1);
- assertEquals(controlLoopUpdate, controlLoopsFromDb.getControlLoopList().get(0));
- }
- }
-
- @Test
- void testDelete_NoResultWithThisName() throws Exception {
- Invocation.Builder invocationBuilder =
- super.sendRequest(INSTANTIATION_ENDPOINT + "?name=noResultWithThisName&version=1.0.1");
- Response resp = invocationBuilder.delete();
- assertEquals(Response.Status.NOT_FOUND.getStatusCode(), resp.getStatus());
- InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
- assertNotNull(instResponse.getErrorDetails());
- assertNull(instResponse.getAffectedControlLoops());
- }
-
- @Test
- void testDelete() throws Exception {
-
- ControlLoops controlLoopsFromRsc =
- InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Delete");
-
- instantiationProvider.createControlLoops(controlLoopsFromRsc);
-
- for (ControlLoop controlLoopFromRsc : controlLoopsFromRsc.getControlLoopList()) {
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT + "?name="
- + controlLoopFromRsc.getKey().getName() + "&version=" + controlLoopFromRsc.getKey().getVersion());
- Response resp = invocationBuilder.delete();
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
- InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
- InstantiationUtils.assertInstantiationResponse(instResponse, controlLoopFromRsc);
-
- ControlLoops controlLoopsFromDb = instantiationProvider
- .getControlLoops(controlLoopFromRsc.getKey().getName(), controlLoopFromRsc.getKey().getVersion());
- assertThat(controlLoopsFromDb.getControlLoopList()).isEmpty();
- }
- }
-
- @Test
- void testDeleteBadRequest() throws Exception {
-
- ControlLoops controlLoopsFromRsc =
- InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "DelBadRequest");
-
- instantiationProvider.createControlLoops(controlLoopsFromRsc);
-
- for (ControlLoop controlLoopFromRsc : controlLoopsFromRsc.getControlLoopList()) {
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT + "?name="
- + controlLoopFromRsc.getKey().getName());
- Response resp = invocationBuilder.delete();
- assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
- }
- }
-
- @Test
- void testCreateInstanceProperties() throws Exception {
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
- Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
- var instancePropertyList = resp.readEntity(InstancePropertiesResponse.class);
- assertNull(instancePropertyList.getErrorDetails());
- var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
- assertEquals(id, instancePropertyList.getAffectedInstanceProperties().get(0));
-
- invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
- resp = invocationBuilder.get();
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
- var controlLoopsGet = resp.readEntity(ControlLoops.class);
- assertThat(controlLoopsGet.getControlLoopList()).hasSize(1);
- }
-
- @Test
- void testDeleteInstanceProperties() throws Exception {
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
- Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
-
- invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + ID_NAME + "&version=" + ID_VERSION);
- resp = invocationBuilder.delete();
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
- var instanceResponse = resp.readEntity(InstantiationResponse.class);
- assertEquals(ID_NAME, instanceResponse.getAffectedControlLoops().get(0).getName());
- ControlLoops controlLoopsGet = instantiationProvider.getControlLoops(ID_NAME, ID_VERSION);
- assertThat(controlLoopsGet.getControlLoopList()).isEmpty();
- }
-
- @Test
- void testDeleteInstancePropertiesBadRequest() throws Exception {
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
- Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
-
- invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + ID_NAME);
- resp = invocationBuilder.delete();
- assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
- }
-
- @Test
- void testDeleteInstancePropertiesPassiveMode() throws Exception {
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
- Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
-
- var controlLoops = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Command");
- instantiationProvider.createControlLoops(controlLoops);
-
- var participants = CommonTestData.createParticipants();
- for (var participant : participants) {
- participantProvider.saveParticipant(participant);
- }
-
- InstantiationCommand command =
- InstantiationUtils.getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON, "Command");
-
- invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
- resp = invocationBuilder.put(Entity.json(command));
- assertEquals(Response.Status.ACCEPTED.getStatusCode(), resp.getStatus());
- InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
- InstantiationUtils.assertInstantiationResponse(instResponse, command);
-
- // check passive state on DB and delete properties
- for (ToscaConceptIdentifier toscaConceptIdentifier : command.getControlLoopIdentifierList()) {
- ControlLoops controlLoopsGet = instantiationProvider.getControlLoops(toscaConceptIdentifier.getName(),
- toscaConceptIdentifier.getVersion());
- assertThat(controlLoopsGet.getControlLoopList()).hasSize(1);
- assertEquals(command.getOrderedState(), controlLoopsGet.getControlLoopList().get(0).getOrderedState());
-
- invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name="
- + toscaConceptIdentifier.getName() + "&version=" + toscaConceptIdentifier.getVersion());
- resp = invocationBuilder.delete();
- assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
- }
- }
-
- @Test
- void testCommand_NotFound1() throws Exception {
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
- Response resp = invocationBuilder.put(Entity.json(new InstantiationCommand()));
- assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
- }
-
- @Test
- void testCommand_NotFound2() throws Exception {
- InstantiationCommand command =
- InstantiationUtils.getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON, "Command");
- command.setOrderedState(null);
-
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
- Response resp = invocationBuilder.put(Entity.json(command));
- assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
- }
-
- @Test
- void testCommand() throws Exception {
- var controlLoops = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Command");
- instantiationProvider.createControlLoops(controlLoops);
-
- var participants = CommonTestData.createParticipants();
- for (var participant : participants) {
- participantProvider.saveParticipant(participant);
- }
-
- InstantiationCommand command =
- InstantiationUtils.getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON, "Command");
-
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
- Response resp = invocationBuilder.put(Entity.json(command));
- assertEquals(Response.Status.ACCEPTED.getStatusCode(), resp.getStatus());
- InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
- InstantiationUtils.assertInstantiationResponse(instResponse, command);
-
- // check passive state on DB
- for (ToscaConceptIdentifier toscaConceptIdentifier : command.getControlLoopIdentifierList()) {
- ControlLoops controlLoopsGet = instantiationProvider.getControlLoops(toscaConceptIdentifier.getName(),
- toscaConceptIdentifier.getVersion());
- assertThat(controlLoopsGet.getControlLoopList()).hasSize(1);
- assertEquals(command.getOrderedState(), controlLoopsGet.getControlLoopList().get(0).getOrderedState());
- }
- }
-
- @Test
- void testIntanceProperties() throws Exception {
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
- Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
- var instancePropertyList = resp.readEntity(InstancePropertiesResponse.class);
- assertNull(instancePropertyList.getErrorDetails());
- var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
- assertEquals(id, instancePropertyList.getAffectedInstanceProperties().get(0));
-
- invocationBuilder = super.sendRequest(INSTANTIATION_STATE + "?name=" + ID_NAME + "&version=" + ID_VERSION);
- resp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
- var instanceOrderState = resp.readEntity(ControlLoopOrderStateResponse.class);
- assertEquals(ControlLoopOrderedState.UNINITIALISED, instanceOrderState.getOrderedState());
- assertEquals(ID_NAME, instanceOrderState.getControlLoopIdentifierList().get(0).getName());
- ControlLoops controlLoopsGet = instantiationProvider.getControlLoops(ID_NAME, ID_VERSION);
- assertThat(controlLoopsGet.getControlLoopList()).hasSize(1);
-
- invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + ID_NAME + "&version=" + ID_VERSION);
- resp = invocationBuilder.delete();
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
- var instanceResponse = resp.readEntity(InstantiationResponse.class);
- assertEquals(ID_NAME, instanceResponse.getAffectedControlLoops().get(0).getName());
- controlLoopsGet = instantiationProvider.getControlLoops(ID_NAME, ID_VERSION);
- assertThat(controlLoopsGet.getControlLoopList()).isEmpty();
- }
-
- @Test
- void testChangeOrderStateFromUninitializedPassiveMode() throws Exception {
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
- Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
-
- var controlLoops = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON,
- "CommandPassive");
- instantiationProvider.createControlLoops(controlLoops);
-
- var participants = CommonTestData.createParticipants();
- for (var participant : participants) {
- participantProvider.saveParticipant(participant);
- }
-
- InstantiationCommand command =
- InstantiationUtils.getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON,
- "CommandPassive");
-
- invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
- resp = invocationBuilder.put(Entity.json(command));
- assertEquals(Response.Status.ACCEPTED.getStatusCode(), resp.getStatus());
- InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
- InstantiationUtils.assertInstantiationResponse(instResponse, command);
- }
-
- @Test
- void testChangeOrderStateWithoutRegisteredParticipants() throws Exception {
- Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
- Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
- assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
-
- var controlLoops = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON,
- "CommandPassive");
- instantiationProvider.createControlLoops(controlLoops);
-
- InstantiationCommand command =
- InstantiationUtils.getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON,
- "CommandPassive");
-
- invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
- resp = invocationBuilder.put(Entity.json(command));
- assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
- }
-
- private synchronized void deleteEntryInDB() throws Exception {
- controlLoopRepository.deleteAll();
- var list = serviceTemplateProvider.getAllServiceTemplates();
- if (!list.isEmpty()) {
- serviceTemplateProvider.deleteServiceTemplate(list.get(0).getName(), list.get(0).getVersion());
- }
- }
-
- private synchronized void createEntryInDB() throws Exception {
- deleteEntryInDB();
- serviceTemplateProvider.createServiceTemplate(serviceTemplate);
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/main/rest/ActuatorControllerTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/main/rest/ActuatorControllerTest.java
deleted file mode 100644
index 433e914ae..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/main/rest/ActuatorControllerTest.java
+++ /dev/null
@@ -1,91 +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=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.runtime.main.rest;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.Response;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.onap.policy.clamp.controlloop.runtime.util.rest.CommonRestController;
-import org.springframework.boot.test.autoconfigure.actuate.metrics.AutoConfigureMetrics;
-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.junit.jupiter.SpringExtension;
-
-@AutoConfigureMetrics
-@ExtendWith(SpringExtension.class)
-@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
-@TestPropertySource(locations = {"classpath:application_test.properties"})
-class ActuatorControllerTest extends CommonRestController {
-
- private static final String HEALTH_ENDPOINT = "health";
- private static final String METRICS_ENDPOINT = "metrics";
- private static final String PROMETHEUS_ENDPOINT = "prometheus";
-
- @LocalServerPort
- private int randomServerPort;
-
- @BeforeEach
- public void setUpPort() {
- super.setHttpPrefix(randomServerPort);
- }
-
- @Test
- void testGetHealth_Unauthorized() throws Exception {
- assertUnauthorizedActGet(HEALTH_ENDPOINT);
- }
-
- @Test
- void testGetMetrics_Unauthorized() throws Exception {
- assertUnauthorizedActGet(METRICS_ENDPOINT);
- }
-
- @Test
- void testGetPrometheus_Unauthorized() throws Exception {
- assertUnauthorizedActGet(PROMETHEUS_ENDPOINT);
- }
-
- @Test
- void testGetHealth() throws Exception {
- Invocation.Builder invocationBuilder = super.sendActRequest(HEALTH_ENDPOINT);
- Response rawresp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- }
-
- @Test
- void testGetMetrics() throws Exception {
- Invocation.Builder invocationBuilder = super.sendActRequest(METRICS_ENDPOINT);
- Response rawresp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- }
-
- @Test
- void testGePrometheus() throws Exception {
- Invocation.Builder invocationBuilder = super.sendActRequest(PROMETHEUS_ENDPOINT);
- Response rawresp = invocationBuilder.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/TestMonitoringProvider.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/TestMonitoringProvider.java
deleted file mode 100644
index cbc4c7104..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/TestMonitoringProvider.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.clamp.controlloop.runtime.monitoring;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyMap;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.io.File;
-import java.time.Instant;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.UUID;
-import javax.ws.rs.core.Response;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatisticsList;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatisticsList;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ClElementStatisticsProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantStatisticsProvider;
-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.base.PfModelRuntimeException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-
-class TestMonitoringProvider {
-
- private static final String CL_PARTICIPANT_STATISTICS_JSON =
- "src/test/resources/rest/monitoring/TestParticipantStatistics.json";
- private static final String INVALID_PARTICIPANT_JSON_INPUT =
- "src/test/resources/rest/monitoring/TestParticipantStatistics_Invalid.json";
- private static final String CL_ELEMENT_STATISTICS_JSON =
- "src/test/resources/rest/monitoring/TestClElementStatistics.json";
- private static final String INVALID_CL_ELEMENT_JSON_INPUT =
- "src/test/resources/rest/monitoring/TestClElementStatistics_Invalid.json";
- private static final Coder CODER = new StandardCoder();
-
- private static final String STAT_LIST_IS_NULL = ".*StatisticsList is marked .*ull but is null";
- private static final String PARTICIPANT_STAT_LIST_IS_NULL =
- "participantStatisticsList is marked .*null but is null";
- private static final String NAME_IS_NULL = "name is marked .*null but is null";
- private static final String CL_LIST_IS_NULL = "clElementStatisticsList is marked .*null but is null";
- private static final String ID_VERSION1 = "1.001";
- private static final String ID_VERSION2 = "1.002";
- private static final String ID_NAME1 = "name1";
- private static final String ID_NAME2 = "name2";
- private static final String SORT_DESC = "DESC";
- private static final String ID_NAME3 = "testCLName";
- private static final String ID_INVALID_NAME = "invalidCLName";
- private static ParticipantStatisticsList inputParticipantStatistics;
- private static ParticipantStatisticsList invalidParticipantInput;
- private static ClElementStatisticsList inputClElementStatistics;
- private static ClElementStatisticsList invalidClElementInput;
-
- @BeforeAll
- public static void beforeSetupStatistics() throws CoderException {
- // Reading input json for statistics data
- inputParticipantStatistics =
- CODER.decode(new File(CL_PARTICIPANT_STATISTICS_JSON), ParticipantStatisticsList.class);
- invalidParticipantInput =
- CODER.decode(new File(INVALID_PARTICIPANT_JSON_INPUT), ParticipantStatisticsList.class);
- inputClElementStatistics = CODER.decode(new File(CL_ELEMENT_STATISTICS_JSON), ClElementStatisticsList.class);
- invalidClElementInput = CODER.decode(new File(INVALID_CL_ELEMENT_JSON_INPUT), ClElementStatisticsList.class);
- }
-
- @Test
- void testCreateParticipantStatistics() throws Exception {
- var participantStatisticsProvider = mock(ParticipantStatisticsProvider.class);
- var clElementStatisticsProvider = mock(ClElementStatisticsProvider.class);
- var clProvider = mock(ControlLoopProvider.class);
- MonitoringProvider provider =
- new MonitoringProvider(participantStatisticsProvider, clElementStatisticsProvider, clProvider);
-
- when(participantStatisticsProvider.createParticipantStatistics(any()))
- .thenReturn(inputParticipantStatistics.getStatisticsList());
-
- when(participantStatisticsProvider.createParticipantStatistics(eq(null)))
- .thenThrow(new PfModelRuntimeException(Response.Status.BAD_REQUEST, PARTICIPANT_STAT_LIST_IS_NULL));
-
- // Creating statistics data in db with null input
-
- assertThatThrownBy(() -> {
- provider.createParticipantStatistics(null);
- }).hasMessageMatching(STAT_LIST_IS_NULL);
-
- assertThatThrownBy(() -> {
- provider.createParticipantStatistics(invalidParticipantInput.getStatisticsList());
- }).hasMessageMatching(PARTICIPANT_STAT_LIST_IS_NULL);
-
- // Creating statistics data from input json
- ParticipantStatisticsList createResponse =
- provider.createParticipantStatistics(inputParticipantStatistics.getStatisticsList());
-
- assertThat(createResponse.getStatisticsList()).hasSize(3);
- assertEquals(createResponse.getStatisticsList().toString().replaceAll("\\s+", ""),
- inputParticipantStatistics.getStatisticsList().toString().replaceAll("\\s+", ""));
- }
-
- @Test
- void testGetParticipantStatistics() throws Exception {
- var participantStatisticsProvider = mock(ParticipantStatisticsProvider.class);
- when(participantStatisticsProvider.getFilteredParticipantStatistics(eq(ID_NAME1), any(), any(), any(), eq(null),
- eq(SORT_DESC), eq(0))).thenReturn(List.of(inputParticipantStatistics.getStatisticsList().get(0)));
-
- when(participantStatisticsProvider.getFilteredParticipantStatistics(eq(ID_NAME1), any(),
- eq(Instant.parse("2021-01-11T12:00:00.000Z")), eq(Instant.parse("2021-01-11T16:00:00.000Z")), eq(null),
- eq(SORT_DESC), eq(0))).thenReturn(List.of());
-
- when(participantStatisticsProvider.getFilteredParticipantStatistics(eq(ID_NAME2), any(), any(), any(), eq(null),
- eq(SORT_DESC), eq(1))).thenReturn(List.of(inputParticipantStatistics.getStatisticsList().get(2)));
-
- var clProvider = mock(ControlLoopProvider.class);
- var clElementStatisticsProvider = mock(ClElementStatisticsProvider.class);
- MonitoringProvider provider =
- new MonitoringProvider(participantStatisticsProvider, clElementStatisticsProvider, clProvider);
- provider.createParticipantStatistics(inputParticipantStatistics.getStatisticsList());
-
- assertThatThrownBy(() -> {
- provider.fetchFilteredParticipantStatistics(null, null, 0, null, null);
- }).hasMessageMatching(NAME_IS_NULL);
-
- // Fetch specific statistics record with name, version and record count
- ParticipantStatisticsList getResponse =
- provider.fetchFilteredParticipantStatistics(ID_NAME2, ID_VERSION1, 1, null, null);
- assertThat(getResponse.getStatisticsList()).hasSize(1);
- assertEquals(getResponse.getStatisticsList().get(0).toString().replaceAll("\\s+", ""),
- inputParticipantStatistics.getStatisticsList().get(2).toString().replaceAll("\\s+", ""));
-
- // Fetch statistics using timestamp
- getResponse = provider.fetchFilteredParticipantStatistics(ID_NAME1, ID_VERSION1, 0, null,
- Instant.parse("2021-01-10T15:00:00.000Z"));
- assertThat(getResponse.getStatisticsList()).hasSize(1);
-
- getResponse = provider.fetchFilteredParticipantStatistics(ID_NAME1, ID_VERSION1, 0,
- Instant.parse("2021-01-11T12:00:00.000Z"), Instant.parse("2021-01-11T16:00:00.000Z"));
-
- assertThat(getResponse.getStatisticsList()).isEmpty();
- }
-
- @Test
- void testCreateClElementStatistics() throws Exception {
- var clElementStatisticsProvider = mock(ClElementStatisticsProvider.class);
- when(clElementStatisticsProvider.createClElementStatistics(any()))
- .thenReturn(inputClElementStatistics.getClElementStatistics());
-
- when(clElementStatisticsProvider.createClElementStatistics(eq(null)))
- .thenThrow(new PfModelRuntimeException(Response.Status.BAD_REQUEST, CL_LIST_IS_NULL));
-
- var clProvider = mock(ControlLoopProvider.class);
-
- var participantStatisticsProvider = mock(ParticipantStatisticsProvider.class);
- MonitoringProvider provider =
- new MonitoringProvider(participantStatisticsProvider, clElementStatisticsProvider, clProvider);
- // Creating statistics data in db with null input
- assertThatThrownBy(() -> {
- provider.createClElementStatistics(null);
- }).hasMessageMatching(STAT_LIST_IS_NULL);
-
- assertThatThrownBy(() -> {
- provider.createClElementStatistics(invalidClElementInput.getClElementStatistics());
- }).hasMessageMatching(CL_LIST_IS_NULL);
-
- // Creating clElement statistics data from input json
- ClElementStatisticsList createResponse =
- provider.createClElementStatistics(inputClElementStatistics.getClElementStatistics());
-
- assertThat(createResponse.getClElementStatistics()).hasSize(4);
- assertEquals(createResponse.getClElementStatistics().toString().replaceAll("\\s+", ""),
- inputClElementStatistics.getClElementStatistics().toString().replaceAll("\\s+", ""));
- }
-
- @Test
- void testGetClElementStatistics() throws Exception {
- var participantStatisticsProvider = mock(ParticipantStatisticsProvider.class);
- var clElementStatisticsProvider = mock(ClElementStatisticsProvider.class);
- var clProvider = mock(ControlLoopProvider.class);
-
- when(clElementStatisticsProvider.getFilteredClElementStatistics(eq(ID_NAME1), any(), any(), any(), anyMap(),
- eq(SORT_DESC), eq(0)))
- .thenReturn(List.of(inputClElementStatistics.getClElementStatistics().get(0),
- inputClElementStatistics.getClElementStatistics().get(1)));
-
- when(clElementStatisticsProvider.getFilteredClElementStatistics(eq(ID_NAME1), any(), any(), any(), anyMap(),
- eq(SORT_DESC), eq(0)))
- .thenReturn(List.of(inputClElementStatistics.getClElementStatistics().get(0),
- inputClElementStatistics.getClElementStatistics().get(1)));
-
- MonitoringProvider provider =
- new MonitoringProvider(participantStatisticsProvider, clElementStatisticsProvider, clProvider);
- assertThatThrownBy(() -> {
- provider.fetchFilteredClElementStatistics(null, null, null, null, null, 0);
- }).hasMessageMatching(NAME_IS_NULL);
-
- provider.createClElementStatistics(inputClElementStatistics.getClElementStatistics());
-
- ClElementStatisticsList getResponse =
- provider.fetchFilteredClElementStatistics(ID_NAME1, null, null, null, null, 0);
-
- assertThat(getResponse.getClElementStatistics()).hasSize(2);
- assertEquals(getResponse.getClElementStatistics().get(0).toString().replaceAll("\\s+", ""),
- inputClElementStatistics.getClElementStatistics().get(0).toString().replaceAll("\\s+", ""));
-
- // Fetch specific statistics record with name, id and record count
- getResponse = provider.fetchFilteredClElementStatistics(ID_NAME1, ID_VERSION1,
- "709c62b3-8918-41b9-a747-d21eb79c6c20", null, null, 0);
- assertThat(getResponse.getClElementStatistics()).hasSize(2);
-
- // Fetch statistics using timestamp
- getResponse = provider.fetchFilteredClElementStatistics(ID_NAME1, ID_VERSION1, null,
- Instant.parse("2021-01-10T13:45:00.000Z"), null, 0);
- assertThat(getResponse.getClElementStatistics()).hasSize(2);
- }
-
- @Test
- void testGetParticipantStatsPerCL() throws Exception {
- var participantStatisticsProvider = mock(ParticipantStatisticsProvider.class);
- var clElementStatisticsProvider = mock(ClElementStatisticsProvider.class);
- var mockClProvider = Mockito.mock(ControlLoopProvider.class);
- var provider =
- new MonitoringProvider(participantStatisticsProvider, clElementStatisticsProvider, mockClProvider);
-
- provider.createParticipantStatistics(inputParticipantStatistics.getStatisticsList());
-
- var controlLoop = new ControlLoop();
- var element = new ControlLoopElement();
- element.setParticipantId(new ToscaConceptIdentifier(ID_NAME1, ID_VERSION1));
- controlLoop.setElements(Map.of(UUID.randomUUID(), element));
- when(mockClProvider.findControlLoop(new ToscaConceptIdentifier(ID_NAME2, ID_VERSION1)))
- .thenReturn(Optional.of(controlLoop));
-
- when(participantStatisticsProvider.getFilteredParticipantStatistics(eq(ID_NAME1), eq(ID_VERSION1), any(), any(),
- eq(null), eq(SORT_DESC), eq(0)))
- .thenReturn(List.of(inputParticipantStatistics.getStatisticsList().get(0),
- inputParticipantStatistics.getStatisticsList().get(1)));
-
- ParticipantStatisticsList getResponse = provider.fetchParticipantStatsPerControlLoop(ID_NAME2, ID_VERSION1);
- assertThat(getResponse.getStatisticsList()).hasSize(2);
- assertEquals(getResponse.getStatisticsList().get(0).toString().replaceAll("\\s+", ""),
- inputParticipantStatistics.getStatisticsList().get(0).toString().replaceAll("\\s+", ""));
- assertThat(provider.fetchParticipantStatsPerControlLoop(ID_INVALID_NAME, ID_VERSION2).getStatisticsList())
- .isEmpty();
- }
-
- @Test
- void testClElementStatsPerCL() throws Exception {
- // Setup a dummy Control loop data
- var mockClElement = new ControlLoopElement();
- mockClElement.setId(inputClElementStatistics.getClElementStatistics().get(0).getId());
- mockClElement.setParticipantId(new ToscaConceptIdentifier(
- inputClElementStatistics.getClElementStatistics().get(0).getParticipantId().getName(),
- inputClElementStatistics.getClElementStatistics().get(0).getParticipantId().getVersion()));
- var mockCL = new ControlLoop();
- mockCL.setElements(new LinkedHashMap<>());
- mockCL.getElements().put(mockClElement.getId(), mockClElement);
-
- var participantStatisticsProvider = mock(ParticipantStatisticsProvider.class);
- var clElementStatisticsProvider = mock(ClElementStatisticsProvider.class);
- var mockClProvider = Mockito.mock(ControlLoopProvider.class);
- var monitoringProvider =
- new MonitoringProvider(participantStatisticsProvider, clElementStatisticsProvider, mockClProvider);
-
- // Mock controlloop data to be returned for the given CL Id
- when(mockClProvider.findControlLoop(new ToscaConceptIdentifier(ID_NAME3, ID_VERSION1)))
- .thenReturn(Optional.of(mockCL));
-
- when(clElementStatisticsProvider.getFilteredClElementStatistics(eq(ID_NAME1), eq(ID_VERSION1), any(), any(),
- anyMap(), eq(SORT_DESC), eq(0)))
- .thenReturn(List.of(inputClElementStatistics.getClElementStatistics().get(0),
- inputClElementStatistics.getClElementStatistics().get(1)));
-
- monitoringProvider.createClElementStatistics(inputClElementStatistics.getClElementStatistics());
-
- ClElementStatisticsList getResponse =
- monitoringProvider.fetchClElementStatsPerControlLoop(ID_NAME3, ID_VERSION1);
-
- assertThat(getResponse.getClElementStatistics()).hasSize(2);
- assertEquals(getResponse.getClElementStatistics().get(1).toString().replaceAll("\\s+", ""),
- inputClElementStatistics.getClElementStatistics().get(1).toString().replaceAll("\\s+", ""));
-
- assertThat(monitoringProvider.fetchClElementStatsPerControlLoop(ID_INVALID_NAME, ID_VERSION2)
- .getClElementStatistics()).isEmpty();
-
- Map<String, ToscaConceptIdentifier> clElementIds =
- monitoringProvider.getAllClElementsIdPerControlLoop(ID_NAME3, ID_VERSION1);
- assertThat(clElementIds)
- .containsKey(inputClElementStatistics.getClElementStatistics().get(0).getId().toString());
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryControllerTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryControllerTest.java
deleted file mode 100644
index eaf824623..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryControllerTest.java
+++ /dev/null
@@ -1,242 +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=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.runtime.monitoring.rest;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-import java.io.File;
-import java.time.Instant;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.Response;
-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.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatisticsList;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatisticsList;
-import org.onap.policy.clamp.controlloop.runtime.monitoring.MonitoringProvider;
-import org.onap.policy.clamp.controlloop.runtime.util.rest.CommonRestController;
-import org.onap.policy.common.utils.coder.Coder;
-import org.onap.policy.common.utils.coder.StandardCoder;
-import org.springframework.beans.factory.annotation.Autowired;
-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.junit.jupiter.SpringExtension;
-
-@ExtendWith(SpringExtension.class)
-@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
-@TestPropertySource(locations = {"classpath:application_test.properties"})
-class MonitoringQueryControllerTest extends CommonRestController {
-
- private static final String CL_PARTICIPANT_STATISTICS_JSON =
- "src/test/resources/rest/monitoring/TestParticipantStatistics.json";
- private static final String CL_ELEMENT_STATISTICS_JSON =
- "src/test/resources/rest/monitoring/TestClElementStatistics.json";
-
- private static final Coder CODER = new StandardCoder();
-
- private static ParticipantStatisticsList inputParticipantStatistics;
- private static ClElementStatisticsList inputClElementStatistics;
-
- private static ParticipantStatisticsList participantStatisticsList;
- private static ClElementStatisticsList clElementStatisticsList;
-
- private static final String CLELEMENT_STATS_ENDPOINT = "monitoring/clelement";
- private static final String PARTICIPANT_STATS_ENDPOINT = "monitoring/participant";
- private static final String PARTICIPANT_STATS_PER_CL_ENDPOINT = "monitoring/participants/controlloop";
- private static final String CLELEMENT_STATS_PER_CL_ENDPOINT = "monitoring/clelements/controlloop";
-
- @Autowired
- private MonitoringProvider monitoringProvider;
-
- @LocalServerPort
- private int randomServerPort;
-
- /**
- * starts Main.
- *
- * @throws Exception if an error occurs
- */
- @BeforeAll
- public static void setUpBeforeAll() throws Exception {
-
- inputParticipantStatistics =
- CODER.decode(new File(CL_PARTICIPANT_STATISTICS_JSON), ParticipantStatisticsList.class);
- inputClElementStatistics = CODER.decode(new File(CL_ELEMENT_STATISTICS_JSON), ClElementStatisticsList.class);
- }
-
- @BeforeEach
- public void setUpBeforeEach() throws Exception {
- super.setHttpPrefix(randomServerPort);
-
- // Insert Participant statistics to DB
- participantStatisticsList =
- monitoringProvider.createParticipantStatistics(inputParticipantStatistics.getStatisticsList());
- // Insert CL Element statistics to DB
- clElementStatisticsList =
- monitoringProvider.createClElementStatistics(inputClElementStatistics.getClElementStatistics());
- }
-
- @Test
- void testQuery_Unauthorized_for_ClElementStats() throws Exception {
- assertUnauthorizedGet(CLELEMENT_STATS_ENDPOINT);
- }
-
- @Test
- void testQuery_Unauthorized_for_ClParticipantStats() throws Exception {
- assertUnauthorizedGet(PARTICIPANT_STATS_ENDPOINT);
- }
-
- @Test
- void testQuery_Unauthorized_for_ParticipantStatsPerCl() throws Exception {
- assertUnauthorizedGet(PARTICIPANT_STATS_PER_CL_ENDPOINT);
- }
-
- @Test
- void testQuery_Unauthorized_for_ClElementStatsPerCl() throws Exception {
- assertUnauthorizedGet(CLELEMENT_STATS_PER_CL_ENDPOINT);
- }
-
- @Test
- void testSwagger_ClStats() throws Exception {
- super.testSwagger(CLELEMENT_STATS_ENDPOINT);
- super.testSwagger(PARTICIPANT_STATS_ENDPOINT);
- super.testSwagger(CLELEMENT_STATS_PER_CL_ENDPOINT);
- super.testSwagger(PARTICIPANT_STATS_PER_CL_ENDPOINT);
- }
-
- @Test
- void testClElementStatisticsEndpoint() throws Exception {
- // Filter statistics only based on participant Id and UUID
- Invocation.Builder invokeRequest1 = super.sendRequest(CLELEMENT_STATS_ENDPOINT + "?name="
- + clElementStatisticsList.getClElementStatistics().get(0).getParticipantId().getName() + "&version="
- + clElementStatisticsList.getClElementStatistics().get(0).getParticipantId().getVersion() + "&id="
- + clElementStatisticsList.getClElementStatistics().get(0).getId().toString());
- Response response1 = invokeRequest1.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), response1.getStatus());
-
- ClElementStatisticsList result1 = response1.readEntity(ClElementStatisticsList.class);
-
- assertNotNull(result1);
- assertThat(result1.getClElementStatistics()).hasSize(2);
-
- var clElementStat0 = clElementStatisticsList.getClElementStatistics().get(0);
- for (var clElement : result1.getClElementStatistics()) {
- assertEquals(clElement.getParticipantId().asConceptKey(), clElementStat0.getParticipantId().asConceptKey());
- assertEquals(clElement.getId(), clElementStat0.getId());
- }
-
- // Filter statistics based on timestamp
- Invocation.Builder invokeRequest2 = super.sendRequest(CLELEMENT_STATS_ENDPOINT + "?name="
- + clElementStatisticsList.getClElementStatistics().get(1).getParticipantId().getName() + "&version="
- + clElementStatisticsList.getClElementStatistics().get(1).getParticipantId().getVersion()
- + "&startTime=" + Instant.parse("2021-01-10T13:00:00.000Z") + "&endTime="
- + Instant.parse("2021-01-10T14:00:00.000Z"));
- Response response2 = invokeRequest2.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), response2.getStatus());
- ClElementStatisticsList result2 = response2.readEntity(ClElementStatisticsList.class);
-
- assertNotNull(result2);
- assertThat(result2.getClElementStatistics()).hasSize(1);
- assertEquals(result2.getClElementStatistics().get(0), clElementStat0);
- }
-
- @Test
- void testClElementStats_BadRequest() throws Exception {
- Invocation.Builder invokeRequest1 = super.sendRequest(CLELEMENT_STATS_ENDPOINT + "?version=1.0.0");
- Response response1 = invokeRequest1.buildGet().invoke();
- assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response1.getStatus());
- }
-
- @Test
- void testParticipantStatisticsEndpoint() throws Exception {
-
- // Filter statistics only based on participant Id
- Invocation.Builder invokeRequest1 = super.sendRequest(PARTICIPANT_STATS_ENDPOINT + "?name="
- + participantStatisticsList.getStatisticsList().get(0).getParticipantId().getName() + "&version="
- + participantStatisticsList.getStatisticsList().get(0).getParticipantId().getVersion());
- Response response1 = invokeRequest1.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), response1.getStatus());
- ParticipantStatisticsList result1 = response1.readEntity(ParticipantStatisticsList.class);
-
- assertNotNull(result1);
- assertThat(result1.getStatisticsList()).hasSize(2);
- assertThat(result1.getStatisticsList()).contains(participantStatisticsList.getStatisticsList().get(0));
-
- // Filter statistics based on timestamp
- Invocation.Builder invokeRequest2 = super.sendRequest(PARTICIPANT_STATS_ENDPOINT + "?name="
- + participantStatisticsList.getStatisticsList().get(1).getParticipantId().getName() + "&version="
- + participantStatisticsList.getStatisticsList().get(1).getParticipantId().getVersion() + "&startTime="
- + Instant.parse("2021-01-10T13:00:00.000Z") + "&endTime=" + Instant.parse("2021-01-10T14:00:00.000Z"));
- Response response2 = invokeRequest2.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), response2.getStatus());
- ParticipantStatisticsList result2 = response2.readEntity(ParticipantStatisticsList.class);
-
- assertNotNull(result2);
- assertThat(result2.getStatisticsList()).hasSize(1);
- assertEquals(result2.getStatisticsList().get(0), participantStatisticsList.getStatisticsList().get(0));
- }
-
- @Test
- void testParticipantStats_BadRequest() throws Exception {
- Invocation.Builder invokeRequest1 = super.sendRequest(PARTICIPANT_STATS_ENDPOINT + "?version=0.0");
- Response response1 = invokeRequest1.buildGet().invoke();
- assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response1.getStatus());
- }
-
- @Test
- void testParticipantStatsPerClEndpoint() throws Exception {
- Invocation.Builder invokeRequest1 =
- super.sendRequest(PARTICIPANT_STATS_PER_CL_ENDPOINT + "?name=dummyName&version=1.001");
- Response response1 = invokeRequest1.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), response1.getStatus());
- ParticipantStatisticsList result1 = response1.readEntity(ParticipantStatisticsList.class);
- assertThat(result1.getStatisticsList()).isEmpty();
- }
-
- @Test
- void testParticipantStatsPerCl_BadRequest() throws Exception {
- Invocation.Builder invokeRequest1 = super.sendRequest(PARTICIPANT_STATS_PER_CL_ENDPOINT);
- Response response1 = invokeRequest1.buildGet().invoke();
- assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response1.getStatus());
- }
-
- @Test
- void testClElementStatisticsPerClEndpoint() throws Exception {
- Invocation.Builder invokeRequest1 =
- super.sendRequest(CLELEMENT_STATS_PER_CL_ENDPOINT + "?name=dummyName&version=1.001");
- Response response1 = invokeRequest1.buildGet().invoke();
- assertEquals(Response.Status.OK.getStatusCode(), response1.getStatus());
- ClElementStatisticsList result1 = response1.readEntity(ClElementStatisticsList.class);
- assertThat(result1.getClElementStatistics()).isEmpty();
- }
-
- @Test
- void testClElementStatsPerCl_BadRequest() throws Exception {
- Invocation.Builder invokeRequest1 = super.sendRequest(CLELEMENT_STATS_PER_CL_ENDPOINT);
- Response response1 = invokeRequest1.buildGet().invoke();
- assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response1.getStatus());
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/HandleCounterTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/HandleCounterTest.java
deleted file mode 100644
index 51f3b4a32..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/HandleCounterTest.java
+++ /dev/null
@@ -1,84 +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=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.runtime.supervision;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.junit.jupiter.api.Test;
-
-class HandleCounterTest {
-
- private static final int ID = 1;
-
- @Test
- void testCount() {
- var handleCounter = new HandleCounter<Integer>();
- handleCounter.setMaxRetryCount(2);
- assertThat(handleCounter.count(ID)).isTrue();
- assertThat(handleCounter.getCounter(ID)).isEqualTo(1);
- assertThat(handleCounter.count(ID)).isTrue();
- assertThat(handleCounter.getCounter(ID)).isEqualTo(2);
- assertThat(handleCounter.count(ID)).isFalse();
- assertThat(handleCounter.getCounter(ID)).isEqualTo(2);
-
- handleCounter.clear(ID);
- assertThat(handleCounter.count(ID)).isTrue();
- assertThat(handleCounter.getCounter(ID)).isEqualTo(1);
- }
-
- @Test
- void testFault() {
- var handleCounter = new HandleCounter<Integer>();
- handleCounter.setFault(ID);
- assertThat(handleCounter.isFault(ID)).isTrue();
- handleCounter.clear(ID);
- assertThat(handleCounter.isFault(ID)).isFalse();
- }
-
- @Test
- void testDuration() throws InterruptedException {
-
- var handleCounter = new HandleCounter<Integer>() {
- long epochMilli = 0;
-
- @Override
- protected long getEpochMilli() {
- return epochMilli;
- }
- };
- handleCounter.epochMilli = 100;
- var result = handleCounter.getDuration(ID);
- assertThat(result).isZero();
-
- handleCounter.epochMilli += 100;
- result = handleCounter.getDuration(ID);
- assertThat(result).isEqualTo(100);
-
- handleCounter.epochMilli += 100;
- result = handleCounter.getDuration(ID);
- assertThat(result).isEqualTo(200);
-
- handleCounter.epochMilli += 100;
- handleCounter.clear(ID);
- result = handleCounter.getDuration(ID);
- assertThat(result).isZero();
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionAspectTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionAspectTest.java
deleted file mode 100644
index f5ab9f28d..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionAspectTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.clamp.controlloop.runtime.supervision;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.timeout;
-import static org.mockito.Mockito.verify;
-
-import org.junit.jupiter.api.Test;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-
-class SupervisionAspectTest {
-
- @Test
- void testSchedule() throws Exception {
- var supervisionScanner = spy(mock(SupervisionScanner.class));
- try (var supervisionAspect = new SupervisionAspect(supervisionScanner)) {
- supervisionAspect.schedule();
- verify(supervisionScanner, timeout(500)).run(true);
- }
- }
-
- @Test
- void testDoCheck() throws Exception {
- var supervisionScanner = spy(mock(SupervisionScanner.class));
- try (var supervisionAspect = new SupervisionAspect(supervisionScanner)) {
- supervisionAspect.doCheck();
- supervisionAspect.doCheck();
- verify(supervisionScanner, timeout(500).times(2)).run(false);
- }
- }
-
- @Test
- void testHandleParticipantStatus() throws Exception {
- var supervisionScanner = spy(mock(SupervisionScanner.class));
- var participantStatusMessage = new ParticipantStatus();
- var identifier = new ToscaConceptIdentifier("abc", "1.0.0");
- participantStatusMessage.setParticipantId(identifier);
-
- try (var supervisionAspect = new SupervisionAspect(supervisionScanner)) {
- supervisionAspect.handleParticipantStatus(participantStatusMessage);
- verify(supervisionScanner, timeout(500)).handleParticipantStatus(identifier);
- }
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionHandlerTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionHandlerTest.java
deleted file mode 100644
index 21a826743..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionHandlerTest.java
+++ /dev/null
@@ -1,307 +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=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.runtime.supervision;
-
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyList;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.UUID;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
-import org.onap.policy.clamp.controlloop.common.exception.ControlLoopException;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantHealthStatus;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatistics;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopAck;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegister;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdateAck;
-import org.onap.policy.clamp.controlloop.runtime.instantiation.InstantiationUtils;
-import org.onap.policy.clamp.controlloop.runtime.monitoring.MonitoringProvider;
-import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ControlLoopStateChangePublisher;
-import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ControlLoopUpdatePublisher;
-import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantDeregisterAckPublisher;
-import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantRegisterAckPublisher;
-import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantUpdatePublisher;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-
-class SupervisionHandlerTest {
- private static final String TOSCA_TEMPLATE_YAML =
- "src/test/resources/rest/servicetemplates/tosca-for-smoke-testing.yaml";
- private static final String CL_INSTANTIATION_CREATE_JSON = "src/test/resources/rest/controlloops/ControlLoops.json";
- private static final ToscaConceptIdentifier identifier = new ToscaConceptIdentifier("PMSHInstance0Crud", "1.0.1");
- private static final ToscaConceptIdentifier participantId = new ToscaConceptIdentifier("ParticipantId", "1.0.0");
- private static final ToscaConceptIdentifier participantType =
- new ToscaConceptIdentifier("ParticipantType", "1.0.0");
-
- @Test
- void testTriggerControlLoopSupervisionEmpty() throws ControlLoopException, PfModelException, CoderException {
- var handler = createSupervisionHandler(mock(ControlLoopProvider.class), mock(ParticipantProvider.class),
- mock(MonitoringProvider.class), mock(ParticipantRegisterAckPublisher.class),
- mock(ParticipantDeregisterAckPublisher.class), mock(ControlLoopUpdatePublisher.class),
- mock(ParticipantUpdatePublisher.class), ControlLoopOrderedState.PASSIVE);
-
- assertThatThrownBy(() -> handler.triggerControlLoopSupervision(List.of()))
- .hasMessageMatching("The list of control loops for supervision is empty");
- }
-
- @Test
- void testTriggerControlLoopSupervision() throws ControlLoopException, PfModelException, CoderException {
- var controlLoopProvider = mock(ControlLoopProvider.class);
- var controlLoopUpdatePublisher = mock(ControlLoopUpdatePublisher.class);
- var handler = createSupervisionHandler(controlLoopProvider, mock(ParticipantProvider.class),
- mock(MonitoringProvider.class), mock(ParticipantRegisterAckPublisher.class),
- mock(ParticipantDeregisterAckPublisher.class), controlLoopUpdatePublisher,
- mock(ParticipantUpdatePublisher.class), ControlLoopOrderedState.PASSIVE);
-
- handler.triggerControlLoopSupervision(List.of(identifier));
-
- verify(controlLoopUpdatePublisher).send(any(ControlLoop.class));
- verify(controlLoopProvider).saveControlLoop(any(ControlLoop.class));
- }
-
- @Test
- void testTriggerControlLoopUninitialised() throws ControlLoopException, PfModelException, CoderException {
- var controlLoopProvider = mock(ControlLoopProvider.class);
- var controlLoopUpdatePublisher = mock(ControlLoopUpdatePublisher.class);
- var handler = createSupervisionHandler(controlLoopProvider, mock(ParticipantProvider.class),
- mock(MonitoringProvider.class), mock(ParticipantRegisterAckPublisher.class),
- mock(ParticipantDeregisterAckPublisher.class), controlLoopUpdatePublisher,
- mock(ParticipantUpdatePublisher.class), ControlLoopOrderedState.UNINITIALISED);
-
- assertThatThrownBy(() -> handler.triggerControlLoopSupervision(List.of(identifier)))
- .hasMessageMatching("Control loop is already in state UNINITIALISED");
- }
-
- @Test
- void testTriggerControlLoopRunning() throws ControlLoopException, PfModelException, CoderException {
- var controlLoopProvider = mock(ControlLoopProvider.class);
- var controlLoopUpdatePublisher = mock(ControlLoopUpdatePublisher.class);
- var handler = createSupervisionHandler(controlLoopProvider, mock(ParticipantProvider.class),
- mock(MonitoringProvider.class), mock(ParticipantRegisterAckPublisher.class),
- mock(ParticipantDeregisterAckPublisher.class), controlLoopUpdatePublisher,
- mock(ParticipantUpdatePublisher.class), ControlLoopOrderedState.RUNNING);
-
- assertThatThrownBy(() -> handler.triggerControlLoopSupervision(List.of(identifier)))
- .hasMessageMatching("Control loop can't transition from state UNINITIALISED to state RUNNING");
- }
-
- @Test
- void testHandleControlLoopStateChangeAckMessage() throws PfModelException, CoderException {
- var controlLoopProvider = mock(ControlLoopProvider.class);
- var handler = createSupervisionHandler(controlLoopProvider, mock(ParticipantProvider.class),
- mock(MonitoringProvider.class), mock(ParticipantRegisterAckPublisher.class),
- mock(ParticipantDeregisterAckPublisher.class), mock(ControlLoopUpdatePublisher.class),
- mock(ParticipantUpdatePublisher.class), ControlLoopOrderedState.PASSIVE);
- var controlLoopAckMessage = new ControlLoopAck(ParticipantMessageType.CONTROLLOOP_STATECHANGE_ACK);
- controlLoopAckMessage.setControlLoopResultMap(Map.of());
- controlLoopAckMessage.setControlLoopId(identifier);
-
- handler.handleControlLoopStateChangeAckMessage(controlLoopAckMessage);
-
- verify(controlLoopProvider).saveControlLoop(any(ControlLoop.class));
- }
-
- @Test
- void testHandleControlLoopUpdateAckMessage() throws PfModelException, CoderException {
- var controlLoopAckMessage = new ControlLoopAck(ParticipantMessageType.CONTROLLOOP_UPDATE_ACK);
- controlLoopAckMessage.setParticipantId(participantId);
- controlLoopAckMessage.setParticipantType(participantType);
- controlLoopAckMessage.setControlLoopResultMap(Map.of());
- controlLoopAckMessage.setControlLoopId(identifier);
- var controlLoopProvider = mock(ControlLoopProvider.class);
- var handler = createSupervisionHandler(controlLoopProvider, mock(ParticipantProvider.class),
- mock(MonitoringProvider.class), mock(ParticipantRegisterAckPublisher.class),
- mock(ParticipantDeregisterAckPublisher.class), mock(ControlLoopUpdatePublisher.class),
- mock(ParticipantUpdatePublisher.class), ControlLoopOrderedState.PASSIVE);
-
- handler.handleControlLoopUpdateAckMessage(controlLoopAckMessage);
-
- verify(controlLoopProvider).saveControlLoop(any(ControlLoop.class));
- }
-
- @Test
- void testHandleParticipantDeregister() throws PfModelException, CoderException {
- var participant = new Participant();
- participant.setName(participantId.getName());
- participant.setVersion(participantId.getVersion());
- participant.setParticipantType(participantType);
-
- var participantProvider = mock(ParticipantProvider.class);
- when(participantProvider.findParticipant(participantId.getName(), participantId.getVersion()))
- .thenReturn(Optional.of(participant));
-
- var participantDeregisterMessage = new ParticipantDeregister();
- participantDeregisterMessage.setMessageId(UUID.randomUUID());
- participantDeregisterMessage.setParticipantId(participantId);
- participantDeregisterMessage.setParticipantType(participantType);
- var participantDeregisterAckPublisher = mock(ParticipantDeregisterAckPublisher.class);
- var handler = createSupervisionHandler(mock(ControlLoopProvider.class), participantProvider,
- mock(MonitoringProvider.class), mock(ParticipantRegisterAckPublisher.class),
- participantDeregisterAckPublisher, mock(ControlLoopUpdatePublisher.class),
- mock(ParticipantUpdatePublisher.class), ControlLoopOrderedState.PASSIVE);
-
- handler.handleParticipantMessage(participantDeregisterMessage);
-
- verify(participantProvider).saveParticipant(any());
- verify(participantDeregisterAckPublisher).send(participantDeregisterMessage.getMessageId());
- }
-
- @Test
- void testHandleParticipantRegister() throws PfModelException, CoderException {
- var participant = new Participant();
- participant.setName(participantId.getName());
- participant.setVersion(participantId.getVersion());
- participant.setParticipantType(participantType);
-
- var participantRegisterMessage = new ParticipantRegister();
- participantRegisterMessage.setMessageId(UUID.randomUUID());
- participantRegisterMessage.setParticipantId(participantId);
- participantRegisterMessage.setParticipantType(participantType);
- var participantProvider = mock(ParticipantProvider.class);
- var participantRegisterAckPublisher = mock(ParticipantRegisterAckPublisher.class);
- var handler = createSupervisionHandler(mock(ControlLoopProvider.class), participantProvider,
- mock(MonitoringProvider.class), participantRegisterAckPublisher,
- mock(ParticipantDeregisterAckPublisher.class), mock(ControlLoopUpdatePublisher.class),
- mock(ParticipantUpdatePublisher.class), ControlLoopOrderedState.PASSIVE);
-
- handler.handleParticipantMessage(participantRegisterMessage);
-
- verify(participantProvider).saveParticipant(any());
- verify(participantRegisterAckPublisher).send(participantRegisterMessage.getMessageId(), participantId,
- participantType);
- }
-
- @Test
- void testParticipantUpdateAck() throws PfModelException, CoderException {
- var participant = new Participant();
- participant.setName(participantId.getName());
- participant.setVersion(participantId.getVersion());
- participant.setParticipantType(participantType);
-
- var participantProvider = mock(ParticipantProvider.class);
- when(participantProvider.findParticipant(participantId.getName(), participantId.getVersion()))
- .thenReturn(Optional.of(participant));
-
- var participantUpdateAckMessage = new ParticipantUpdateAck();
- participantUpdateAckMessage.setParticipantId(participantId);
- participantUpdateAckMessage.setParticipantType(participantType);
- participantUpdateAckMessage.setState(ParticipantState.PASSIVE);
- var handler = createSupervisionHandler(mock(ControlLoopProvider.class), participantProvider,
- mock(MonitoringProvider.class), mock(ParticipantRegisterAckPublisher.class),
- mock(ParticipantDeregisterAckPublisher.class), mock(ControlLoopUpdatePublisher.class),
- mock(ParticipantUpdatePublisher.class), ControlLoopOrderedState.PASSIVE);
-
- handler.handleParticipantMessage(participantUpdateAckMessage);
-
- verify(participantProvider).saveParticipant(any());
- }
-
- @Test
- void testHandleParticipantStatus() throws PfModelException, CoderException {
- var participantStatusMessage = new ParticipantStatus();
- participantStatusMessage.setParticipantId(participantId);
- participantStatusMessage.setParticipantType(participantType);
- participantStatusMessage.setState(ParticipantState.PASSIVE);
- participantStatusMessage.setHealthStatus(ParticipantHealthStatus.HEALTHY);
- participantStatusMessage.setParticipantStatistics(new ParticipantStatistics());
-
- var participantProvider = mock(ParticipantProvider.class);
- var monitoringProvider = mock(MonitoringProvider.class);
- var handler = createSupervisionHandler(mock(ControlLoopProvider.class), participantProvider, monitoringProvider,
- mock(ParticipantRegisterAckPublisher.class), mock(ParticipantDeregisterAckPublisher.class),
- mock(ControlLoopUpdatePublisher.class), mock(ParticipantUpdatePublisher.class),
- ControlLoopOrderedState.PASSIVE);
- handler.handleParticipantMessage(participantStatusMessage);
-
- verify(participantProvider).saveParticipant(any());
- verify(monitoringProvider).createParticipantStatistics(anyList());
- }
-
- @Test
- void testHandleSendCommissionMessage() throws PfModelException, CoderException {
- var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class);
- var handler = createSupervisionHandler(mock(ControlLoopProvider.class), mock(ParticipantProvider.class),
- mock(MonitoringProvider.class), mock(ParticipantRegisterAckPublisher.class),
- mock(ParticipantDeregisterAckPublisher.class), mock(ControlLoopUpdatePublisher.class),
- participantUpdatePublisher, ControlLoopOrderedState.PASSIVE);
- handler.handleSendCommissionMessage(participantId.getName(), participantId.getVersion());
-
- verify(participantUpdatePublisher).sendComissioningBroadcast(participantId.getName(),
- participantId.getVersion());
- }
-
- @Test
- void testHandleSendDeCommissionMessage() throws PfModelException, CoderException {
- var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class);
- var handler = createSupervisionHandler(mock(ControlLoopProvider.class), mock(ParticipantProvider.class),
- mock(MonitoringProvider.class), mock(ParticipantRegisterAckPublisher.class),
- mock(ParticipantDeregisterAckPublisher.class), mock(ControlLoopUpdatePublisher.class),
- participantUpdatePublisher, ControlLoopOrderedState.PASSIVE);
- handler.handleSendDeCommissionMessage();
-
- verify(participantUpdatePublisher).sendDecomisioning();
- }
-
- private SupervisionHandler createSupervisionHandler(ControlLoopProvider controlLoopProvider,
- ParticipantProvider participantProvider, MonitoringProvider monitoringProvider,
- ParticipantRegisterAckPublisher participantRegisterAckPublisher,
- ParticipantDeregisterAckPublisher participantDeregisterAckPublisher,
- ControlLoopUpdatePublisher controlLoopUpdatePublisher,
- ParticipantUpdatePublisher participantUpdatePublisher,
- ControlLoopOrderedState orderedState) throws PfModelException, CoderException {
- var controlLoopsCreate = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Crud");
-
- var controlLoop = controlLoopsCreate.getControlLoopList().get(0);
- controlLoop.setOrderedState(orderedState);
-
- when(controlLoopProvider.findControlLoop(identifier)).thenReturn(Optional.of(controlLoop));
- when(controlLoopProvider.getControlLoop(identifier)).thenReturn(controlLoop);
-
- var serviceTemplateProvider = Mockito.mock(ServiceTemplateProvider.class);
- when(serviceTemplateProvider.getServiceTemplateList(any(), any()))
- .thenReturn(List.of(InstantiationUtils.getToscaServiceTemplate(TOSCA_TEMPLATE_YAML)));
-
- var controlLoopStateChangePublisher = mock(ControlLoopStateChangePublisher.class);
-
- return new SupervisionHandler(controlLoopProvider, participantProvider, monitoringProvider,
- serviceTemplateProvider, controlLoopUpdatePublisher, controlLoopStateChangePublisher,
- participantRegisterAckPublisher, participantDeregisterAckPublisher, participantUpdatePublisher);
-
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionScannerTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionScannerTest.java
deleted file mode 100644
index b7a3fe005..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionScannerTest.java
+++ /dev/null
@@ -1,214 +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=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.runtime.supervision;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.util.List;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantHealthStatus;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantState;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
-import org.onap.policy.clamp.controlloop.runtime.instantiation.InstantiationUtils;
-import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ControlLoopStateChangePublisher;
-import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ControlLoopUpdatePublisher;
-import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantStatusReqPublisher;
-import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantUpdatePublisher;
-import org.onap.policy.clamp.controlloop.runtime.util.CommonTestData;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-
-class SupervisionScannerTest {
-
- private static final String TOSCA_SERVICE_TEMPLATE_YAML =
- "src/test/resources/rest/servicetemplates/tosca-for-smoke-testing.yaml";
- private static final String CONTROLLOOP_JSON = "src/test/resources/rest/controlloops/ControlLoopsSmoke.json";
-
- private static ServiceTemplateProvider serviceTemplateProvider = mock(ServiceTemplateProvider.class);
-
- @BeforeAll
- public static void setUpBeforeAll() throws Exception {
- ToscaServiceTemplate serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_SERVICE_TEMPLATE_YAML);
- when(serviceTemplateProvider.getAllServiceTemplates()).thenReturn(List.of(serviceTemplate));
- }
-
- @Test
- void testScannerOrderedStateEqualsToState() throws PfModelException, CoderException {
- var controlLoopProvider = mock(ControlLoopProvider.class);
- var controlLoopStateChangePublisher = mock(ControlLoopStateChangePublisher.class);
- var controlLoopUpdatePublisher = mock(ControlLoopUpdatePublisher.class);
- var participantProvider = mock(ParticipantProvider.class);
- var participantStatusReqPublisher = mock(ParticipantStatusReqPublisher.class);
- var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class);
- var clRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanner");
-
- var controlLoops =
- InstantiationUtils.getControlLoopsFromResource(CONTROLLOOP_JSON, "Crud").getControlLoopList();
- when(controlLoopProvider.getControlLoops()).thenReturn(controlLoops);
-
- var supervisionScanner = new SupervisionScanner(controlLoopProvider, serviceTemplateProvider,
- controlLoopStateChangePublisher, controlLoopUpdatePublisher, participantProvider,
- participantStatusReqPublisher, participantUpdatePublisher, clRuntimeParameterGroup);
- supervisionScanner.run(false);
-
- verify(controlLoopProvider, times(0)).saveControlLoop(any(ControlLoop.class));
- }
-
- @Test
- void testScannerOrderedStateDifferentToState() throws PfModelException, CoderException {
- var controlLoops =
- InstantiationUtils.getControlLoopsFromResource(CONTROLLOOP_JSON, "Crud").getControlLoopList();
- controlLoops.get(0).setState(ControlLoopState.UNINITIALISED2PASSIVE);
- controlLoops.get(0).setOrderedState(ControlLoopOrderedState.UNINITIALISED);
- var controlLoopProvider = mock(ControlLoopProvider.class);
- when(controlLoopProvider.getControlLoops()).thenReturn(controlLoops);
-
- var controlLoopUpdatePublisher = mock(ControlLoopUpdatePublisher.class);
- var controlLoopStateChangePublisher = mock(ControlLoopStateChangePublisher.class);
- var participantProvider = mock(ParticipantProvider.class);
- var participantStatusReqPublisher = mock(ParticipantStatusReqPublisher.class);
- var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class);
- var clRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanner");
-
- var supervisionScanner = new SupervisionScanner(controlLoopProvider, serviceTemplateProvider,
- controlLoopStateChangePublisher, controlLoopUpdatePublisher, participantProvider,
- participantStatusReqPublisher, participantUpdatePublisher, clRuntimeParameterGroup);
- supervisionScanner.run(false);
-
- verify(controlLoopProvider, times(1)).saveControlLoop(any(ControlLoop.class));
- }
-
- @Test
- void testScanner() throws PfModelException {
- var controlLoopProvider = mock(ControlLoopProvider.class);
- var controlLoop = new ControlLoop();
- when(controlLoopProvider.getControlLoops()).thenReturn(List.of(controlLoop));
-
- var participantProvider = mock(ParticipantProvider.class);
- var participant = new Participant();
- participant.setName("Participant0");
- participant.setVersion("1.0.0");
- when(participantProvider.getParticipants(null, null)).thenReturn(List.of(participant));
-
- var controlLoopUpdatePublisher = mock(ControlLoopUpdatePublisher.class);
- var participantStatusReqPublisher = mock(ParticipantStatusReqPublisher.class);
- var controlLoopStateChangePublisher = mock(ControlLoopStateChangePublisher.class);
- var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class);
- var clRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanner");
-
- var supervisionScanner = new SupervisionScanner(controlLoopProvider, serviceTemplateProvider,
- controlLoopStateChangePublisher, controlLoopUpdatePublisher, participantProvider,
- participantStatusReqPublisher, participantUpdatePublisher, clRuntimeParameterGroup);
-
- supervisionScanner.handleParticipantStatus(participant.getKey().asIdentifier());
- supervisionScanner.run(true);
- verify(controlLoopProvider, times(0)).saveControlLoop(any(ControlLoop.class));
- verify(participantStatusReqPublisher, times(0)).send(any(ToscaConceptIdentifier.class));
- }
-
- @Test
- void testSendControlLoopMsgUpdate() throws PfModelException, CoderException {
- var controlLoops =
- InstantiationUtils.getControlLoopsFromResource(CONTROLLOOP_JSON, "Crud").getControlLoopList();
- controlLoops.get(0).setState(ControlLoopState.UNINITIALISED2PASSIVE);
- controlLoops.get(0).setOrderedState(ControlLoopOrderedState.PASSIVE);
- for (var element : controlLoops.get(0).getElements().values()) {
- if ("org.onap.domain.database.Http_PMSHMicroserviceControlLoopElement"
- .equals(element.getDefinition().getName())) {
- element.setOrderedState(ControlLoopOrderedState.PASSIVE);
- element.setState(ControlLoopState.UNINITIALISED);
- } else {
- element.setOrderedState(ControlLoopOrderedState.PASSIVE);
- element.setState(ControlLoopState.PASSIVE);
- }
- }
-
- var controlLoopProvider = mock(ControlLoopProvider.class);
- when(controlLoopProvider.getControlLoops()).thenReturn(controlLoops);
-
- var participantProvider = mock(ParticipantProvider.class);
- var controlLoopUpdatePublisher = mock(ControlLoopUpdatePublisher.class);
- var participantStatusReqPublisher = mock(ParticipantStatusReqPublisher.class);
- var controlLoopStateChangePublisher = mock(ControlLoopStateChangePublisher.class);
- var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class);
- var clRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanner");
-
- var supervisionScanner = new SupervisionScanner(controlLoopProvider, serviceTemplateProvider,
- controlLoopStateChangePublisher, controlLoopUpdatePublisher, participantProvider,
- participantStatusReqPublisher, participantUpdatePublisher, clRuntimeParameterGroup);
-
- supervisionScanner.run(false);
-
- verify(controlLoopUpdatePublisher).send(any(ControlLoop.class), anyInt());
- }
-
- @Test
- void testScanParticipant() throws PfModelException {
- var controlLoopProvider = mock(ControlLoopProvider.class);
- var controlLoop = new ControlLoop();
- when(controlLoopProvider.getControlLoops()).thenReturn(List.of(controlLoop));
-
- var clRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanParticipant");
- clRuntimeParameterGroup.getParticipantParameters().getUpdateParameters().setMaxWaitMs(-1);
- clRuntimeParameterGroup.getParticipantParameters().setMaxStatusWaitMs(-1);
-
- var participant = new Participant();
- participant.setName("Participant0");
- participant.setVersion("1.0.0");
- participant.setHealthStatus(ParticipantHealthStatus.HEALTHY);
- participant.setParticipantState(ParticipantState.ACTIVE);
- participant.setDefinition(new ToscaConceptIdentifier("unknown", "0.0.0"));
- participant.setParticipantType(new ToscaConceptIdentifier("ParticipantType1", "1.0.0"));
- var participantProvider = mock(ParticipantProvider.class);
- when(participantProvider.getParticipants()).thenReturn(List.of(participant));
-
- var controlLoopUpdatePublisher = mock(ControlLoopUpdatePublisher.class);
- var participantStatusReqPublisher = mock(ParticipantStatusReqPublisher.class);
- var controlLoopStateChangePublisher = mock(ControlLoopStateChangePublisher.class);
- var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class);
-
- var supervisionScanner = new SupervisionScanner(controlLoopProvider, serviceTemplateProvider,
- controlLoopStateChangePublisher, controlLoopUpdatePublisher, participantProvider,
- participantStatusReqPublisher, participantUpdatePublisher, clRuntimeParameterGroup);
-
- supervisionScanner.handleParticipantStatus(participant.getKey().asIdentifier());
- supervisionScanner.run(true);
- verify(participantStatusReqPublisher).send(any(ToscaConceptIdentifier.class));
- verify(participantProvider).saveParticipant(any());
-
- supervisionScanner.run(true);
- verify(participantProvider, times(2)).saveParticipant(any());
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/comm/SupervisionMessagesTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/comm/SupervisionMessagesTest.java
deleted file mode 100644
index a465aa254..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/comm/SupervisionMessagesTest.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.clamp.controlloop.runtime.supervision.comm;
-
-import static org.assertj.core.api.Assertions.assertThatCode;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import java.time.Instant;
-import java.util.Collections;
-import java.util.List;
-import java.util.UUID;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ClElementStatisticsProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantStatisticsProvider;
-import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregisterAck;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegisterAck;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdateAck;
-import org.onap.policy.clamp.controlloop.runtime.monitoring.MonitoringProvider;
-import org.onap.policy.clamp.controlloop.runtime.supervision.SupervisionHandler;
-import org.onap.policy.clamp.controlloop.runtime.util.rest.CommonRestController;
-import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
-import org.onap.policy.common.endpoints.event.comm.TopicSink;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-
-class SupervisionMessagesTest extends CommonRestController {
-
- private static final String NOT_ACTIVE = "Not Active!";
- private static final Object lockit = new Object();
- private static final CommInfrastructure INFRA = CommInfrastructure.NOOP;
- private static final String TOPIC = "my-topic";
- private static SupervisionHandler supervisionHandler;
-
- /**
- * setup Db Provider Parameters.
- *
- * @throws PfModelException if an error occurs
- */
- @BeforeAll
- public static void setupDbProviderParameters() throws PfModelException {
- var clProvider = mock(ControlLoopProvider.class);
- var participantStatisticsProvider = mock(ParticipantStatisticsProvider.class);
- var clElementStatisticsProvider = mock(ClElementStatisticsProvider.class);
- var monitoringProvider =
- new MonitoringProvider(participantStatisticsProvider, clElementStatisticsProvider, clProvider);
- var participantProvider = mock(ParticipantProvider.class);
- var serviceTemplateProvider = Mockito.mock(ServiceTemplateProvider.class);
- var controlLoopUpdatePublisher = Mockito.mock(ControlLoopUpdatePublisher.class);
- var controlLoopStateChangePublisher = Mockito.mock(ControlLoopStateChangePublisher.class);
- var participantRegisterAckPublisher = Mockito.mock(ParticipantRegisterAckPublisher.class);
- var participantDeregisterAckPublisher = Mockito.mock(ParticipantDeregisterAckPublisher.class);
- var participantUpdatePublisher = Mockito.mock(ParticipantUpdatePublisher.class);
- supervisionHandler = new SupervisionHandler(clProvider, participantProvider, monitoringProvider,
- serviceTemplateProvider, controlLoopUpdatePublisher, controlLoopStateChangePublisher,
- participantRegisterAckPublisher, participantDeregisterAckPublisher, participantUpdatePublisher);
- }
-
- @Test
- void testSendParticipantRegisterAck() throws Exception {
- final ParticipantRegisterAck participantRegisterAckMsg = new ParticipantRegisterAck();
- participantRegisterAckMsg.setMessage("ParticipantRegisterAck message");
- participantRegisterAckMsg.setResponseTo(UUID.randomUUID());
- participantRegisterAckMsg.setResult(true);
-
- synchronized (lockit) {
- ParticipantRegisterAckPublisher clRegisterAckPublisher = new ParticipantRegisterAckPublisher();
- clRegisterAckPublisher.active(List.of(Mockito.mock(TopicSink.class)));
- assertThatCode(() -> clRegisterAckPublisher.send(participantRegisterAckMsg)).doesNotThrowAnyException();
- }
- }
-
- @Test
- void testReceiveParticipantDeregister() throws Exception {
- final ParticipantDeregister participantDeregisterMsg = new ParticipantDeregister();
- participantDeregisterMsg.setParticipantId(getParticipantId());
- participantDeregisterMsg.setTimestamp(Instant.now());
- participantDeregisterMsg.setParticipantType(getParticipantType());
-
- synchronized (lockit) {
- ParticipantDeregisterListener participantDeregisterListener =
- new ParticipantDeregisterListener(supervisionHandler);
- assertThatCode(
- () -> participantDeregisterListener.onTopicEvent(INFRA, TOPIC, null, participantDeregisterMsg))
- .doesNotThrowAnyException();
- }
- }
-
- @Test
- void testSendParticipantDeregisterAck() throws Exception {
- final ParticipantDeregisterAck participantDeregisterAckMsg = new ParticipantDeregisterAck();
- participantDeregisterAckMsg.setMessage("ParticipantDeregisterAck message");
- participantDeregisterAckMsg.setResponseTo(UUID.randomUUID());
- participantDeregisterAckMsg.setResult(true);
-
- synchronized (lockit) {
- ParticipantDeregisterAckPublisher clDeregisterAckPublisher = new ParticipantDeregisterAckPublisher();
- clDeregisterAckPublisher.active(Collections.singletonList(Mockito.mock(TopicSink.class)));
- assertThatCode(() -> clDeregisterAckPublisher.send(participantDeregisterAckMsg)).doesNotThrowAnyException();
- }
- }
-
- @Test
- void testReceiveParticipantUpdateAckMessage() throws Exception {
- final ParticipantUpdateAck participantUpdateAckMsg = new ParticipantUpdateAck();
- participantUpdateAckMsg.setMessage("ParticipantUpdateAck message");
- participantUpdateAckMsg.setResponseTo(UUID.randomUUID());
- participantUpdateAckMsg.setResult(true);
- participantUpdateAckMsg.setParticipantId(getParticipantId());
- participantUpdateAckMsg.setParticipantType(getParticipantType());
-
- synchronized (lockit) {
- ParticipantUpdateAckListener participantUpdateAckListener =
- new ParticipantUpdateAckListener(supervisionHandler);
- assertThatCode(() -> participantUpdateAckListener.onTopicEvent(INFRA, TOPIC, null, participantUpdateAckMsg))
- .doesNotThrowAnyException();
- }
- }
-
- @Test
- void testSendControlLoopStateChangePublisherNotActive() {
- var publisher = new ControlLoopStateChangePublisher();
- assertThatThrownBy(() -> publisher.send(getControlLoop(), 0)).hasMessage(NOT_ACTIVE);
- }
-
- @Test
- void testSendControlLoopStateChangePublisher() {
- var publisher = new ControlLoopStateChangePublisher();
- var topicSink = mock(TopicSink.class);
- publisher.active(List.of(topicSink));
- publisher.send(getControlLoop(), 0);
- verify(topicSink).send(anyString());
- }
-
- @Test
- void testParticipantUpdatePublisherDecomisioning() {
- var publisher = new ParticipantUpdatePublisher(mock(ServiceTemplateProvider.class));
- var topicSink = mock(TopicSink.class);
- publisher.active(List.of(topicSink));
- publisher.sendDecomisioning();
- verify(topicSink).send(anyString());
- }
-
- @Test
- void testParticipantUpdatePublisherComissioning() {
- var publisher = new ParticipantUpdatePublisher(mock(ServiceTemplateProvider.class));
- var topicSink = mock(TopicSink.class);
- publisher.active(List.of(topicSink));
- publisher.sendComissioningBroadcast("NAME", "1.0.0");
- verify(topicSink, times(0)).send(anyString());
- }
-
- @Test
- void testParticipantStatusReqPublisher() {
- var publisher = new ParticipantStatusReqPublisher();
- var topicSink = mock(TopicSink.class);
- publisher.active(List.of(topicSink));
- publisher.send(getParticipantId());
- verify(topicSink).send(anyString());
- }
-
- @Test
- void testParticipantRegisterAckPublisher() {
- var publisher = new ParticipantRegisterAckPublisher();
- var topicSink = mock(TopicSink.class);
- publisher.active(List.of(topicSink));
- publisher.send(UUID.randomUUID(), getParticipantId(), getParticipantType());
- verify(topicSink).send(anyString());
- }
-
- @Test
- void testParticipantDeregisterAckPublisher() {
- var publisher = new ParticipantDeregisterAckPublisher();
- var topicSink = mock(TopicSink.class);
- publisher.active(List.of(topicSink));
- publisher.send(UUID.randomUUID());
- verify(topicSink).send(anyString());
- }
-
- private ControlLoop getControlLoop() {
- var controlLoop = new ControlLoop();
- controlLoop.setName("NAME");
- controlLoop.setVersion("0.0.1");
- controlLoop.setState(ControlLoopState.UNINITIALISED);
- return controlLoop;
- }
-
- private ToscaConceptIdentifier getParticipantId() {
- return new ToscaConceptIdentifier("org.onap.PM_Policy", "1.0.0");
- }
-
- private ToscaConceptIdentifier getParticipantType() {
- return new ToscaConceptIdentifier("org.onap.policy.controlloop.PolicyControlLoopParticipant", "2.3.1");
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/CommonTestData.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/CommonTestData.java
deleted file mode 100644
index 13d30e401..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/CommonTestData.java
+++ /dev/null
@@ -1,123 +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=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.runtime.util;
-
-import java.util.List;
-import javax.ws.rs.core.Response.Status;
-import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant;
-import org.onap.policy.clamp.controlloop.runtime.main.parameters.ClRuntimeParameterGroup;
-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.common.utils.resources.ResourceUtils;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.base.PfModelRuntimeException;
-import org.onap.policy.models.provider.PolicyModelsProvider;
-import org.onap.policy.models.provider.PolicyModelsProviderFactory;
-import org.onap.policy.models.provider.PolicyModelsProviderParameters;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-
-/**
- * Class to hold/create all parameters for test cases.
- *
- */
-public class CommonTestData {
- private static final Coder CODER = new StandardCoder();
-
- /**
- * Gets the standard Control Loop parameters.
- *
- * @param dbName the database name
- * @return the standard Control Loop parameters
- * @throws ControlLoopRuntimeException on errors reading the control loop parameters
- */
- public static ClRuntimeParameterGroup geParameterGroup(final String dbName) {
- try {
- return CODER.convert(getParameterGroupAsString(dbName), ClRuntimeParameterGroup.class);
-
- } catch (CoderException e) {
- throw new ControlLoopRuntimeException(Status.NOT_ACCEPTABLE, "cannot read Control Loop parameters", e);
- }
- }
-
- /**
- * Gets the standard Control Loop parameters, as a String.
- *
- * @param dbName the database name
- * @return the standard Control Loop parameters as string
- */
- public static String getParameterGroupAsString(final String dbName) {
- return ResourceUtils.getResourceAsString("src/test/resources/parameters/TestParameters.json")
- .replace("${dbName}", "jdbc:h2:mem:" + dbName);
- }
-
- /**
- * Create a new PolicyModelsProvider.
- *
- * @param databaseProviderParameters the database Provider Parameters
- * @return a new PolicyModelsProvider
- */
- public static PolicyModelsProvider getPolicyModelsProvider(
- PolicyModelsProviderParameters databaseProviderParameters) {
- try {
- return new PolicyModelsProviderFactory().createPolicyModelsProvider(databaseProviderParameters);
- } catch (PfModelException e) {
- throw new PfModelRuntimeException(e);
- }
- }
-
- /**
- * Create a List of Participants.
- *
- * @return a List of Participants
- */
- public static List<Participant> createParticipants() {
- var participant1 = createParticipant(
- new ToscaConceptIdentifier("org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant", "2.3.4"),
- new ToscaConceptIdentifier("org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant",
- "2.3.4"));
- var participant2 = createParticipant(
- new ToscaConceptIdentifier("org.onap.policy.controlloop.PolicyControlLoopParticipant", "2.3.1"),
- new ToscaConceptIdentifier("org.onap.policy.controlloop.PolicyControlLoopParticipant", "2.3.1"));
- var participant3 = createParticipant(
- new ToscaConceptIdentifier("org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant", "2.2.1"),
- new ToscaConceptIdentifier("org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant", "2.2.1"));
- return List.of(participant1, participant2, participant3);
- }
-
- /**
- * Create a new Participant.
- *
- * @param participantType the participant Type
- * @param participantId the participant id
- * @return a new Participant
- */
- public static Participant createParticipant(ToscaConceptIdentifier participantType,
- ToscaConceptIdentifier participantId) {
- var participant = new Participant();
- participant.setDefinition(participantId);
- participant.setParticipantType(participantType);
- participant.setName(participantId.getName());
- participant.setVersion(participantId.getVersion());
- return participant;
- }
-}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/rest/CommonRestController.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/rest/CommonRestController.java
deleted file mode 100644
index 70b0608d6..000000000
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/rest/CommonRestController.java
+++ /dev/null
@@ -1,201 +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=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.runtime.util.rest;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
-
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import org.glassfish.jersey.client.ClientProperties;
-import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
-import org.onap.policy.common.gson.GsonMessageBodyHandler;
-import org.onap.policy.common.utils.network.NetworkUtil;
-
-/**
- * Class to perform Rest unit tests.
- *
- */
-public class CommonRestController {
-
- public static final String SELF = NetworkUtil.getHostname();
- public static final String CONTEXT_PATH = "onap/controlloop";
- public static final String ENDPOINT_PREFIX = CONTEXT_PATH + "/v2/";
- public static final String ACTUATOR_ENDPOINT = CONTEXT_PATH + "/actuator/";
-
- private static String httpPrefix;
-
- /**
- * Verifies that an endpoint appears within the swagger response.
- *
- * @param endpoint the endpoint of interest
- * @throws Exception if an error occurs
- */
- protected void testSwagger(final String endpoint) throws Exception {
- final Invocation.Builder invocationBuilder = sendRequest("api-docs");
- final String resp = invocationBuilder.get(String.class);
-
- assertThat(resp).contains(endpoint);
- }
-
- /**
- * Sends a request to an endpoint.
- *
- * @param endpoint the target endpoint
- * @return a request builder
- * @throws Exception if an error occurs
- */
- protected Invocation.Builder sendRequest(final String endpoint) throws Exception {
- return sendFqeRequest(httpPrefix + ENDPOINT_PREFIX + endpoint, true);
- }
-
- /**
- * Sends a request to an actuator endpoint.
- *
- * @param endpoint the target endpoint
- * @return a request builder
- * @throws Exception if an error occurs
- */
- protected Invocation.Builder sendActRequest(final String endpoint) throws Exception {
- return sendFqeRequest(httpPrefix + ACTUATOR_ENDPOINT + endpoint, true);
- }
-
- /**
- * Sends a request to an Rest Api endpoint, without any authorization header.
- *
- * @param endpoint the target endpoint
- * @return a request builder
- * @throws Exception if an error occurs
- */
- protected Invocation.Builder sendNoAuthRequest(final String endpoint) throws Exception {
- return sendFqeRequest(httpPrefix + ENDPOINT_PREFIX + endpoint, false);
- }
-
- /**
- * Sends a request to an actuator endpoint, without any authorization header.
- *
- * @param endpoint the target endpoint
- * @return a request builder
- * @throws Exception if an error occurs
- */
- protected Invocation.Builder sendNoAuthActRequest(final String endpoint) throws Exception {
- return sendFqeRequest(httpPrefix + ACTUATOR_ENDPOINT + endpoint, false);
- }
-
- /**
- * Sends a request to a fully qualified endpoint.
- *
- * @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 {
- final Client client = ClientBuilder.newBuilder().build();
-
- client.property(ClientProperties.METAINF_SERVICES_LOOKUP_DISABLE, "true");
- client.register(GsonMessageBodyHandler.class);
-
- if (includeAuth) {
- client.register(HttpAuthenticationFeature.basic("runtimeUser", "zb!XztG34"));
- }
-
- final WebTarget webTarget = client.target(fullyQualifiedEndpoint);
-
- return webTarget.request(MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN);
- }
-
- /**
- * Assert that POST call is Unauthorized.
- *
- * @param endPoint the endpoint
- * @param entity the entity ofthe body
- * @throws Exception if an error occurs
- */
- protected void assertUnauthorizedPost(final String endPoint, final Entity<?> entity) throws Exception {
- Response rawresp = sendNoAuthRequest(endPoint).post(entity);
- assertEquals(Response.Status.UNAUTHORIZED.getStatusCode(), rawresp.getStatus());
- }
-
- /**
- * Assert that PUT call is Unauthorized.
- *
- * @param endPoint the endpoint
- * @param entity the entity ofthe body
- * @throws Exception if an error occurs
- */
- protected void assertUnauthorizedPut(final String endPoint, final Entity<?> entity) throws Exception {
- Response rawresp = sendNoAuthRequest(endPoint).put(entity);
- assertEquals(Response.Status.UNAUTHORIZED.getStatusCode(), rawresp.getStatus());
- }
-
- /**
- * Assert that GET call is Unauthorized.
- *
- * @param endPoint the endpoint
- * @throws Exception if an error occurs
- */
- protected void assertUnauthorizedGet(final String endPoint) throws Exception {
- Response rawresp = sendNoAuthRequest(endPoint).buildGet().invoke();
- assertEquals(Response.Status.UNAUTHORIZED.getStatusCode(), rawresp.getStatus());
- }
-
- /**
- * 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 {
- Response rawresp = sendNoAuthActRequest(endPoint).buildGet().invoke();
- assertEquals(Response.Status.UNAUTHORIZED.getStatusCode(), rawresp.getStatus());
- }
-
- /**
- * Assert that DELETE call is Unauthorized.
- *
- * @param endPoint the endpoint
- * @throws Exception if an error occurs
- */
- protected void assertUnauthorizedDelete(final String endPoint) throws Exception {
- Response rawresp = sendNoAuthRequest(endPoint).delete();
- assertEquals(Response.Status.UNAUTHORIZED.getStatusCode(), rawresp.getStatus());
- }
-
- /**
- * Set Up httpPrefix.
- *
- * @param port the port
- */
- protected void setHttpPrefix(int port) {
- httpPrefix = "http://" + SELF + ":" + port + "/";
- }
-
- protected String getHttpPrefix() {
- return httpPrefix;
- }
-}