diff options
author | FrancescoFioraEst <francesco.fiora@est.tech> | 2022-11-24 10:41:40 +0000 |
---|---|---|
committer | FrancescoFioraEst <francesco.fiora@est.tech> | 2022-11-24 14:52:18 +0000 |
commit | 933f1325044e6233ca0da1eecf223bc5bbb06b36 (patch) | |
tree | 77ab10ee6fa109b53294e328ead2df12aee78a73 /runtime-acm/src/test/java | |
parent | a2e99e7df02837d8270228c330bed4915043b996 (diff) |
Link the AutomationComposition with AutomationCompositionDefinition
In AutomationComposition replace the link to ToscaNodeTemplate
whit a link to AutomationCompositionDefinition
using compositionId.
Issue-ID: POLICY-4464
Change-Id: I66878f04ef93fb0754d0066e78bd074ce082f891
Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
Diffstat (limited to 'runtime-acm/src/test/java')
7 files changed, 176 insertions, 135 deletions
diff --git a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProviderTest.java b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProviderTest.java index dabb05347..85f21930e 100644 --- a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProviderTest.java +++ b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProviderTest.java @@ -26,7 +26,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.onap.policy.clamp.acm.runtime.util.CommonTestData.TOSCA_SERVICE_TEMPLATE_YAML; -import static org.onap.policy.clamp.acm.runtime.util.CommonTestData.TOSCA_ST_TEMPLATE_YAML; import java.util.List; import java.util.UUID; @@ -84,7 +83,7 @@ class CommissioningProviderTest { List<ToscaConceptIdentifier> affectedDefinitions = provider .createAutomationCompositionDefinitions(serviceTemplate).getAffectedAutomationCompositionDefinitions(); verify(acDefinitionProvider).createAutomationCompositionDefinition(serviceTemplate); - assertThat(affectedDefinitions).hasSize(13); + assertThat(affectedDefinitions).hasSize(7); } /** @@ -100,7 +99,7 @@ class CommissioningProviderTest { var provider = new CommissioningProvider(acDefinitionProvider, acProvider, null, participantProvider); - ToscaServiceTemplate serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_ST_TEMPLATE_YAML); + ToscaServiceTemplate serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_SERVICE_TEMPLATE_YAML); when(acDefinitionProvider.getServiceTemplateList(null, null)).thenReturn(List.of(serviceTemplate)); var returnedServiceTemplate = provider.getAutomationCompositionDefinitions(null, null); diff --git a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/rest/CommissioningControllerTest.java b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/rest/CommissioningControllerTest.java index 0ded4ec0f..e11ceeeb7 100644 --- a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/rest/CommissioningControllerTest.java +++ b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/rest/CommissioningControllerTest.java @@ -29,7 +29,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static org.onap.policy.clamp.acm.runtime.util.CommonTestData.TOSCA_SERVICE_TEMPLATE_YAML; import java.util.HashMap; -import java.util.List; import java.util.UUID; import javax.ws.rs.client.Entity; import javax.ws.rs.client.Invocation; @@ -130,7 +129,7 @@ class CommissioningControllerTest extends CommonRestController { assertNotNull(commissioningResponse); assertNull(commissioningResponse.getErrorDetails()); // Response should return the number of node templates present in the service template - assertThat(commissioningResponse.getAffectedAutomationCompositionDefinitions()).hasSize(13); + assertThat(commissioningResponse.getAffectedAutomationCompositionDefinitions()).hasSize(7); for (String nodeTemplateName : serviceTemplate.getToscaTopologyTemplate().getNodeTemplates().keySet()) { assertTrue(commissioningResponse.getAffectedAutomationCompositionDefinitions().stream() .anyMatch(ac -> ac.getName().equals(nodeTemplateName))); @@ -162,7 +161,7 @@ class CommissioningControllerTest extends CommonRestController { assertNotNull(commissioningResponse); assertNull(commissioningResponse.getErrorDetails()); // Response should return the number of node templates present in the service template - assertThat(commissioningResponse.getAffectedAutomationCompositionDefinitions()).hasSize(13); + assertThat(commissioningResponse.getAffectedAutomationCompositionDefinitions()).hasSize(7); for (String nodeTemplateName : serviceTemplate.getToscaTopologyTemplate().getNodeTemplates().keySet()) { assertTrue(commissioningResponse.getAffectedAutomationCompositionDefinitions().stream() .anyMatch(ac -> ac.getName().equals(nodeTemplateName))); @@ -216,7 +215,7 @@ class CommissioningControllerTest extends CommonRestController { Response resp = invocationBuilder.delete(); assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus()); - List<ToscaServiceTemplate> templatesInDB = acDefinitionProvider.getAllServiceTemplates(); + var templatesInDB = acDefinitionProvider.getAllAcDefinitions(); assertThat(templatesInDB).isEmpty(); } @@ -228,7 +227,7 @@ class CommissioningControllerTest extends CommonRestController { // Delete entries from the DB after relevant tests private synchronized void deleteEntryInDB() throws Exception { - var list = acDefinitionProvider.getAllServiceTemplates(); + var list = acDefinitionProvider.getAllAcDefinitions(); if (!list.isEmpty()) { acDefinitionProvider.deleteAcDefintion(compositionId); } diff --git a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/AutomationCompositionInstantiationProviderTest.java b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/AutomationCompositionInstantiationProviderTest.java index 040fabe27..cebabdb0f 100644 --- a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/AutomationCompositionInstantiationProviderTest.java +++ b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/AutomationCompositionInstantiationProviderTest.java @@ -30,6 +30,7 @@ import static org.onap.policy.clamp.acm.runtime.util.CommonTestData.TOSCA_SERVIC import java.util.List; import java.util.Optional; +import java.util.UUID; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -40,7 +41,6 @@ import org.onap.policy.clamp.models.acm.concepts.AutomationComposition; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions; import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationCommand; -import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationResponse; import org.onap.policy.clamp.models.acm.persistence.provider.AcDefinitionProvider; import org.onap.policy.clamp.models.acm.persistence.provider.AutomationCompositionProvider; import org.onap.policy.clamp.models.acm.persistence.provider.ParticipantProvider; @@ -67,16 +67,22 @@ class AutomationCompositionInstantiationProviderTest { private static final String ORDERED_STATE_INVALID = "ordered state invalid or not specified on command"; private static final String AC_ELEMENT_NAME_NOT_FOUND = "\"AutomationCompositions\" INVALID, item has status INVALID\n" - + " {2}\"entry org.onap.domain.pmsh.PMSHAutomationCompositionDefinition\" " - + "INVALID, item has status INVALID\n" - + " {4}\"entry org.onap.domain.pmsh.DCAEMicroservice\" INVALID, Not found\n" - + " {2}\"entry org.onap.domain.pmsh.PMSHAutomationCompositionDefinition\" " - + "INVALID, item has status INVALID\n" - + " {4}\"entry org.onap.domain.pmsh.DCAEMicroservice\" INVALID, Not found\n"; + + " \"entry PMSHInstance0AcElementNotFound\" INVALID, item has status INVALID\n" + + " \"entry org.onap.domain.pmsh.DCAEMicroservice\" INVALID, Not found\n" + + " \"entry org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement\"" + + " INVALID, Not found\n" + + " \"entry org.onap.domain.pmsh.PMSH_CDS_AutomationCompositionElement\" INVALID, Not found\n" + + " \"entry PMSHInstance1AcElementNotFound\" INVALID, item has status INVALID\n" + + " \"entry org.onap.domain.pmsh.DCAEMicroservice\" INVALID, Not found\n" + + " \"entry org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement\"" + + " INVALID, Not found\n" + + " \"entry org.onap.domain.pmsh.PMSH_CDS_AutomationCompositionElement\" INVALID, Not found\n"; private static final String AC_DEFINITION_NOT_FOUND = "\"AutomationCompositions\" INVALID, item has status INVALID\n" + " item \"ServiceTemplate\" value \"\" INVALID," + + " Commissioned automation composition definition not found\n" + + " item \"ServiceTemplate\" value \"\" INVALID," + " Commissioned automation composition definition not found\n"; private static ToscaServiceTemplate serviceTemplate = new ToscaServiceTemplate(); @@ -96,13 +102,17 @@ class AutomationCompositionInstantiationProviderTest { when(participantProvider.getParticipants()).thenReturn(participants); var acDefinitionProvider = mock(AcDefinitionProvider.class); - when(acDefinitionProvider.getAllServiceTemplates()).thenReturn(List.of(serviceTemplate)); + var compositionId = UUID.randomUUID(); + when(acDefinitionProvider.findAcDefinition(compositionId)).thenReturn(Optional.of(serviceTemplate)); var supervisionHandler = mock(SupervisionHandler.class); var acProvider = mock(AutomationCompositionProvider.class); var instantiationProvider = new AutomationCompositionInstantiationProvider(acProvider, supervisionHandler, participantProvider, acDefinitionProvider); var automationCompositionsCreate = InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Crud"); + for (var automationComposition : automationCompositionsCreate.getAutomationCompositionList()) { + automationComposition.setCompositionId(compositionId); + } var instantiationResponse = instantiationProvider.createAutomationCompositions(automationCompositionsCreate); InstantiationUtils.assertInstantiationResponse(instantiationResponse, automationCompositionsCreate); @@ -121,6 +131,9 @@ class AutomationCompositionInstantiationProviderTest { var automationCompositionsUpdate = InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_UPDATE_JSON, "Crud"); + for (var automationComposition : automationCompositionsUpdate.getAutomationCompositionList()) { + automationComposition.setCompositionId(compositionId); + } instantiationResponse = instantiationProvider.updateAutomationCompositions(automationCompositionsUpdate); InstantiationUtils.assertInstantiationResponse(instantiationResponse, automationCompositionsUpdate); @@ -217,10 +230,14 @@ class AutomationCompositionInstantiationProviderTest { @Test void testCreateAutomationCompositions_NoDuplicates() throws Exception { var acDefinitionProvider = mock(AcDefinitionProvider.class); - when(acDefinitionProvider.getAllServiceTemplates()).thenReturn(List.of(serviceTemplate)); + var compositionId = UUID.randomUUID(); + when(acDefinitionProvider.findAcDefinition(compositionId)).thenReturn(Optional.of(serviceTemplate)); - AutomationCompositions automationCompositionsCreate = + var automationCompositionsCreate = InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "NoDuplicates"); + for (var automationComposition : automationCompositionsCreate.getAutomationCompositionList()) { + automationComposition.setCompositionId(compositionId); + } var acProvider = mock(AutomationCompositionProvider.class); var participantProvider = Mockito.mock(ParticipantProvider.class); @@ -229,7 +246,7 @@ class AutomationCompositionInstantiationProviderTest { var instantiationProvider = new AutomationCompositionInstantiationProvider(acProvider, supervisionHandler, participantProvider, acDefinitionProvider); - InstantiationResponse instantiationResponse = + var instantiationResponse = instantiationProvider.createAutomationCompositions(automationCompositionsCreate); InstantiationUtils.assertInstantiationResponse(instantiationResponse, automationCompositionsCreate); @@ -246,9 +263,13 @@ class AutomationCompositionInstantiationProviderTest { @Test void testCreateAutomationCompositions_CommissionedAcElementNotFound() throws Exception { var acDefinitionProvider = mock(AcDefinitionProvider.class); - when(acDefinitionProvider.getAllServiceTemplates()).thenReturn(List.of(serviceTemplate)); - AutomationCompositions automationCompositions = InstantiationUtils.getAutomationCompositionsFromResource( + var compositionId = UUID.randomUUID(); + when(acDefinitionProvider.findAcDefinition(compositionId)).thenReturn(Optional.of(serviceTemplate)); + var automationCompositions = InstantiationUtils.getAutomationCompositionsFromResource( AC_INSTANTIATION_DEFINITION_NAME_NOT_FOUND_JSON, "AcElementNotFound"); + for (var automationComposition : automationCompositions.getAutomationCompositionList()) { + automationComposition.setCompositionId(compositionId); + } var acProvider = mock(AutomationCompositionProvider.class); var participantProvider = mock(ParticipantProvider.class); diff --git a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/rest/InstantiationControllerTest.java b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/rest/InstantiationControllerTest.java index 228412133..732b76a81 100644 --- a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/rest/InstantiationControllerTest.java +++ b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/rest/InstantiationControllerTest.java @@ -41,14 +41,12 @@ import org.onap.policy.clamp.acm.runtime.instantiation.InstantiationUtils; import org.onap.policy.clamp.acm.runtime.main.rest.InstantiationController; import org.onap.policy.clamp.acm.runtime.util.CommonTestData; import org.onap.policy.clamp.acm.runtime.util.rest.CommonRestController; -import org.onap.policy.clamp.models.acm.concepts.AutomationComposition; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions; import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationCommand; import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationResponse; import org.onap.policy.clamp.models.acm.persistence.provider.AcDefinitionProvider; import org.onap.policy.clamp.models.acm.persistence.provider.ParticipantProvider; import org.onap.policy.clamp.models.acm.persistence.repository.AutomationCompositionRepository; -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; @@ -67,10 +65,10 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; class InstantiationControllerTest extends CommonRestController { private static final String AC_INSTANTIATION_CREATE_JSON = - "src/test/resources/rest/acm/AutomationCompositions.json"; + "src/test/resources/rest/acm/AutomationCompositions.json"; private static final String AC_INSTANTIATION_UPDATE_JSON = - "src/test/resources/rest/acm/AutomationCompositionsUpdate.json"; + "src/test/resources/rest/acm/AutomationCompositionsUpdate.json"; private static final String AC_INSTANTIATION_CHANGE_STATE_JSON = "src/test/resources/rest/acm/PassiveCommand.json"; @@ -123,7 +121,7 @@ class InstantiationControllerTest extends CommonRestController { @Test void testCreate_Unauthorized() throws Exception { AutomationCompositions automationCompositions = - InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Unauthorized"); + InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Unauthorized"); assertUnauthorizedPost(INSTANTIATION_ENDPOINT, Entity.json(automationCompositions)); } @@ -136,7 +134,7 @@ class InstantiationControllerTest extends CommonRestController { @Test void testUpdate_Unauthorized() throws Exception { AutomationCompositions automationCompositions = - InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_UPDATE_JSON, "Unauthorized"); + InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_UPDATE_JSON, "Unauthorized"); assertUnauthorizedPut(INSTANTIATION_ENDPOINT, Entity.json(automationCompositions)); } @@ -148,8 +146,8 @@ class InstantiationControllerTest extends CommonRestController { @Test void testCommand_Unauthorized() throws Exception { - InstantiationCommand instantiationCommand = - InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Unauthorized"); + InstantiationCommand instantiationCommand = InstantiationUtils + .getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Unauthorized"); assertUnauthorizedPut(INSTANTIATION_COMMAND_ENDPOINT, Entity.json(instantiationCommand)); } @@ -157,35 +155,40 @@ class InstantiationControllerTest extends CommonRestController { @Test void testCreate() throws Exception { - AutomationCompositions automationCompositionsFromRsc = - InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Create"); + var automationCompositionsFromRsc = + InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Create"); + for (var automationComposition : automationCompositionsFromRsc.getAutomationCompositionList()) { + automationComposition.setCompositionId(compositionId); + } - Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT); - Response resp = invocationBuilder.post(Entity.json(automationCompositionsFromRsc)); + var invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT); + var resp = invocationBuilder.post(Entity.json(automationCompositionsFromRsc)); assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus()); InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class); InstantiationUtils.assertInstantiationResponse(instResponse, automationCompositionsFromRsc); - for (AutomationComposition automationCompositionFromRsc : automationCompositionsFromRsc - .getAutomationCompositionList()) { - AutomationCompositions automationCompositionsFromDb = instantiationProvider.getAutomationCompositions( - automationCompositionFromRsc.getKey().getName(), automationCompositionFromRsc.getKey().getVersion()); + for (var automationCompositionFromRsc : automationCompositionsFromRsc.getAutomationCompositionList()) { + var automationCompositionsFromDb = + instantiationProvider.getAutomationCompositions(automationCompositionFromRsc.getKey().getName(), + automationCompositionFromRsc.getKey().getVersion()); assertNotNull(automationCompositionsFromDb); assertThat(automationCompositionsFromDb.getAutomationCompositionList()).hasSize(1); assertEquals(automationCompositionFromRsc, - automationCompositionsFromDb.getAutomationCompositionList().get(0)); + automationCompositionsFromDb.getAutomationCompositionList().get(0)); } } @Test void testCreateBadRequest() throws Exception { + var automationCompositionsFromRsc = InstantiationUtils + .getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "CreateBadRequest"); + for (var automationComposition : automationCompositionsFromRsc.getAutomationCompositionList()) { + automationComposition.setCompositionId(compositionId); + } - AutomationCompositions automationCompositionsFromRsc = - InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "CreateBadRequest"); - - Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT); - Response resp = invocationBuilder.post(Entity.json(automationCompositionsFromRsc)); + var invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT); + var resp = invocationBuilder.post(Entity.json(automationCompositionsFromRsc)); assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus()); // testing Bad Request: AC already defined @@ -209,89 +212,100 @@ class InstantiationControllerTest extends CommonRestController { void testQuery() throws Exception { var automationCompositions = - InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Query"); + InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Query"); + for (var acFromRsc : automationCompositions.getAutomationCompositionList()) { + acFromRsc.setCompositionId(compositionId); + } instantiationProvider.createAutomationCompositions(automationCompositions); - for (AutomationComposition automationCompositionFromRsc : automationCompositions - .getAutomationCompositionList()) { - Invocation.Builder invocationBuilder = - super.sendRequest(INSTANTIATION_ENDPOINT + "?name=" + automationCompositionFromRsc.getKey().getName()); + for (var automationCompositionFromRsc : automationCompositions.getAutomationCompositionList()) { + var invocationBuilder = super.sendRequest( + INSTANTIATION_ENDPOINT + "?name=" + automationCompositionFromRsc.getKey().getName()); Response rawresp = invocationBuilder.buildGet().invoke(); assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus()); AutomationCompositions automationCompositionsQuery = rawresp.readEntity(AutomationCompositions.class); assertNotNull(automationCompositionsQuery); assertThat(automationCompositionsQuery.getAutomationCompositionList()).hasSize(1); assertEquals(automationCompositionFromRsc, - automationCompositionsQuery.getAutomationCompositionList().get(0)); + automationCompositionsQuery.getAutomationCompositionList().get(0)); } } @Test void testUpdate() throws Exception { - AutomationCompositions automationCompositionsCreate = - InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Update"); + var automationCompositionsCreate = + InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Update"); + for (var automationComposition : automationCompositionsCreate.getAutomationCompositionList()) { + automationComposition.setCompositionId(compositionId); + } - var automationCompositions = - InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_UPDATE_JSON, "Update"); instantiationProvider.createAutomationCompositions(automationCompositionsCreate); - Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT); - Response resp = invocationBuilder.put(Entity.json(automationCompositions)); + var invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT); + var automationCompositions = + InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_UPDATE_JSON, "Update"); + for (var automationComposition : automationCompositions.getAutomationCompositionList()) { + automationComposition.setCompositionId(compositionId); + } + var resp = invocationBuilder.put(Entity.json(automationCompositions)); assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus()); - InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class); + var instResponse = resp.readEntity(InstantiationResponse.class); InstantiationUtils.assertInstantiationResponse(instResponse, automationCompositions); - for (AutomationComposition automationCompositionUpdate : automationCompositions - .getAutomationCompositionList()) { - AutomationCompositions automationCompositionsFromDb = instantiationProvider.getAutomationCompositions( - automationCompositionUpdate.getKey().getName(), automationCompositionUpdate.getKey().getVersion()); + for (var automationCompositionUpdate : automationCompositions.getAutomationCompositionList()) { + var automationCompositionsFromDb = instantiationProvider.getAutomationCompositions( + automationCompositionUpdate.getKey().getName(), automationCompositionUpdate.getKey().getVersion()); assertNotNull(automationCompositionsFromDb); assertThat(automationCompositionsFromDb.getAutomationCompositionList()).hasSize(1); assertEquals(automationCompositionUpdate, - automationCompositionsFromDb.getAutomationCompositionList().get(0)); + automationCompositionsFromDb.getAutomationCompositionList().get(0)); } } @Test void testDelete() throws Exception { - AutomationCompositions automationCompositionsFromRsc = - InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Delete"); + var automationCompositionsFromRsc = + InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Delete"); + for (var automationComposition : automationCompositionsFromRsc.getAutomationCompositionList()) { + automationComposition.setCompositionId(compositionId); + } instantiationProvider.createAutomationCompositions(automationCompositionsFromRsc); - for (AutomationComposition automationCompositionFromRsc : automationCompositionsFromRsc - .getAutomationCompositionList()) { - Invocation.Builder invocationBuilder = - super.sendRequest(INSTANTIATION_ENDPOINT + "?name=" + automationCompositionFromRsc.getKey().getName() - + "&version=" + automationCompositionFromRsc.getKey().getVersion()); - Response resp = invocationBuilder.delete(); + for (var automationCompositionFromRsc : automationCompositionsFromRsc.getAutomationCompositionList()) { + var invocationBuilder = super.sendRequest( + INSTANTIATION_ENDPOINT + "?name=" + automationCompositionFromRsc.getKey().getName() + "&version=" + + automationCompositionFromRsc.getKey().getVersion()); + var resp = invocationBuilder.delete(); assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus()); - InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class); + var instResponse = resp.readEntity(InstantiationResponse.class); InstantiationUtils.assertInstantiationResponse(instResponse, automationCompositionFromRsc); - AutomationCompositions automationCompositionsFromDb = instantiationProvider.getAutomationCompositions( - automationCompositionFromRsc.getKey().getName(), automationCompositionFromRsc.getKey().getVersion()); + var automationCompositionsFromDb = + instantiationProvider.getAutomationCompositions(automationCompositionFromRsc.getKey().getName(), + automationCompositionFromRsc.getKey().getVersion()); assertThat(automationCompositionsFromDb.getAutomationCompositionList()).isEmpty(); } } @Test void testDeleteBadRequest() throws Exception { - - AutomationCompositions automationCompositionsFromRsc = - InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "DelBadRequest"); + var automationCompositionsFromRsc = + InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "DelBadRequest"); + for (var automationComposition : automationCompositionsFromRsc.getAutomationCompositionList()) { + automationComposition.setCompositionId(compositionId); + } instantiationProvider.createAutomationCompositions(automationCompositionsFromRsc); - for (AutomationComposition automationCompositionFromRsc : automationCompositionsFromRsc - .getAutomationCompositionList()) { - Invocation.Builder invocationBuilder = - super.sendRequest(INSTANTIATION_ENDPOINT + "?name=" + automationCompositionFromRsc.getKey().getName()); - Response resp = invocationBuilder.delete(); + for (var automationCompositionFromRsc : automationCompositionsFromRsc.getAutomationCompositionList()) { + var invocationBuilder = super.sendRequest( + INSTANTIATION_ENDPOINT + "?name=" + automationCompositionFromRsc.getKey().getName()); + var resp = invocationBuilder.delete(); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus()); } } @@ -306,7 +320,7 @@ class InstantiationControllerTest extends CommonRestController { @Test void testCommand_NotFound2() throws Exception { InstantiationCommand command = - InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Command"); + InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Command"); command.setOrderedState(null); Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT); @@ -317,7 +331,10 @@ class InstantiationControllerTest extends CommonRestController { @Test void testCommand() throws Exception { var automationCompositions = - InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Command"); + InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Command"); + for (var automationComposition : automationCompositions.getAutomationCompositionList()) { + automationComposition.setCompositionId(compositionId); + } instantiationProvider.createAutomationCompositions(automationCompositions); var participants = CommonTestData.createParticipants(); @@ -325,28 +342,28 @@ class InstantiationControllerTest extends CommonRestController { participantProvider.saveParticipant(participant); } - InstantiationCommand command = - InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Command"); + var command = + InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Command"); - Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT); - Response resp = invocationBuilder.put(Entity.json(command)); + var invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT); + var 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.getAutomationCompositionIdentifierList()) { - AutomationCompositions automationCompositionsGet = instantiationProvider - .getAutomationCompositions(toscaConceptIdentifier.getName(), toscaConceptIdentifier.getVersion()); + for (var toscaConceptIdentifier : command.getAutomationCompositionIdentifierList()) { + var automationCompositionsGet = instantiationProvider + .getAutomationCompositions(toscaConceptIdentifier.getName(), toscaConceptIdentifier.getVersion()); assertThat(automationCompositionsGet.getAutomationCompositionList()).hasSize(1); assertEquals(command.getOrderedState(), - automationCompositionsGet.getAutomationCompositionList().get(0).getOrderedState()); + automationCompositionsGet.getAutomationCompositionList().get(0).getOrderedState()); } } private synchronized void deleteEntryInDB() throws Exception { automationCompositionRepository.deleteAll(); - var list = acDefinitionProvider.getAllServiceTemplates(); + var list = acDefinitionProvider.getAllAcDefinitions(); if (!list.isEmpty()) { acDefinitionProvider.deleteAcDefintion(compositionId); } diff --git a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionHandlerTest.java b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionHandlerTest.java index e4d382133..47e3d516c 100644 --- a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionHandlerTest.java +++ b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionHandlerTest.java @@ -113,6 +113,7 @@ class SupervisionHandlerTest { var automationComposition = automationCompositionsCreate.getAutomationCompositionList().get(0); automationComposition.setOrderedState(AutomationCompositionOrderedState.UNINITIALISED); automationComposition.setState(AutomationCompositionState.PASSIVE); + automationComposition.setCompositionId(UUID.randomUUID()); var automationCompositionProvider = mock(AutomationCompositionProvider.class); when(automationCompositionProvider.findAutomationComposition(identifier)) @@ -120,9 +121,9 @@ class SupervisionHandlerTest { when(automationCompositionProvider.getAutomationComposition(identifier)).thenReturn(automationComposition); var acDefinitionProvider = Mockito.mock(AcDefinitionProvider.class); - when(acDefinitionProvider.getAllServiceTemplates()) - .thenReturn(List.of(Objects.requireNonNull(InstantiationUtils.getToscaServiceTemplate( - TOSCA_SERVICE_TEMPLATE_YAML)))); + when(acDefinitionProvider.getAcDefinition(automationComposition.getCompositionId())) + .thenReturn(Objects.requireNonNull(InstantiationUtils.getToscaServiceTemplate( + TOSCA_SERVICE_TEMPLATE_YAML))); var automationCompositionStateChangePublisher = mock(AutomationCompositionStateChangePublisher.class); @@ -133,7 +134,7 @@ class SupervisionHandlerTest { handler.triggerAutomationCompositionSupervision(List.of(identifier)); - verify(automationCompositionStateChangePublisher).send(any(AutomationComposition.class), eq(0)); + verify(automationCompositionStateChangePublisher).send(any(AutomationComposition.class), eq(1)); } @Test @@ -359,9 +360,6 @@ class SupervisionHandlerTest { when(acDefinitionProvider.getServiceTemplateList(any(), any())) .thenReturn(List.of(Objects.requireNonNull(InstantiationUtils.getToscaServiceTemplate( TOSCA_SERVICE_TEMPLATE_YAML)))); - when(acDefinitionProvider.getAllServiceTemplates()) - .thenReturn(List.of(Objects.requireNonNull(InstantiationUtils.getToscaServiceTemplate( - TOSCA_SERVICE_TEMPLATE_YAML)))); var automationCompositionStateChangePublisher = mock(AutomationCompositionStateChangePublisher.class); diff --git a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScannerTest.java b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScannerTest.java index 50d5246b0..6d3e5b5a0 100644 --- a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScannerTest.java +++ b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScannerTest.java @@ -26,10 +26,11 @@ 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 static org.onap.policy.clamp.acm.runtime.util.CommonTestData.TOSCA_ST_TEMPLATE_YAML; +import static org.onap.policy.clamp.acm.runtime.util.CommonTestData.TOSCA_SERVICE_TEMPLATE_YAML; import java.util.List; import java.util.Objects; +import java.util.UUID; import org.apache.commons.lang3.tuple.ImmutablePair; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -40,6 +41,7 @@ import org.onap.policy.clamp.acm.runtime.supervision.comm.ParticipantStatusReqPu import org.onap.policy.clamp.acm.runtime.supervision.comm.ParticipantUpdatePublisher; import org.onap.policy.clamp.acm.runtime.util.CommonTestData; import org.onap.policy.clamp.models.acm.concepts.AutomationComposition; +import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionDefinition; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState; import org.onap.policy.clamp.models.acm.concepts.Participant; @@ -51,7 +53,6 @@ import org.onap.policy.clamp.models.acm.persistence.provider.ParticipantProvider 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 { @@ -62,14 +63,19 @@ class SupervisionScannerTest { private static final String PARTICIPANT_NAME = "Participant0"; private static final String PARTICIPANT_VERSION = "1.0.0"; + private static UUID compositionId; + private static final ToscaConceptIdentifier PARTICIPANT_TYPE = new ToscaConceptIdentifier("org.onap.policy.clamp.acm.PolicyParticipant", PARTICIPANT_VERSION); @BeforeAll public static void setUpBeforeAll() throws Exception { - ToscaServiceTemplate serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_ST_TEMPLATE_YAML); - when(acDefinitionProvider.getAllServiceTemplates()) - .thenReturn(List.of(Objects.requireNonNull(serviceTemplate))); + var serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_SERVICE_TEMPLATE_YAML); + var acDefinition = new AutomationCompositionDefinition(); + compositionId = UUID.randomUUID(); + acDefinition.setCompositionId(compositionId); + acDefinition.setServiceTemplate(serviceTemplate); + when(acDefinitionProvider.getAllAcDefinitions()).thenReturn(List.of(Objects.requireNonNull(acDefinition))); } @Test @@ -82,13 +88,14 @@ class SupervisionScannerTest { var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class); var acRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanner"); - var automationCompositions = - InstantiationUtils.getAutomationCompositionsFromResource(AC_JSON, "Crud").getAutomationCompositionList(); - when(automationCompositionProvider.getAutomationCompositions()).thenReturn(automationCompositions); + var automationCompositions = InstantiationUtils.getAutomationCompositionsFromResource(AC_JSON, "Crud") + .getAutomationCompositionList(); + when(automationCompositionProvider.getAcInstancesByCompositionId(compositionId)) + .thenReturn(automationCompositions); var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider, - automationCompositionStateChangePublisher, automationCompositionUpdatePublisher, participantProvider, - participantStatusReqPublisher, participantUpdatePublisher, acRuntimeParameterGroup); + automationCompositionStateChangePublisher, automationCompositionUpdatePublisher, participantProvider, + participantStatusReqPublisher, participantUpdatePublisher, acRuntimeParameterGroup); supervisionScanner.run(false); verify(automationCompositionProvider, times(0)).saveAutomationComposition(any(AutomationComposition.class)); @@ -96,12 +103,13 @@ class SupervisionScannerTest { @Test void testScannerOrderedStateDifferentToState() throws PfModelException, CoderException { - var automationCompositions = - InstantiationUtils.getAutomationCompositionsFromResource(AC_JSON, "Crud").getAutomationCompositionList(); + var automationCompositions = InstantiationUtils.getAutomationCompositionsFromResource(AC_JSON, "Crud") + .getAutomationCompositionList(); automationCompositions.get(0).setState(AutomationCompositionState.UNINITIALISED2PASSIVE); automationCompositions.get(0).setOrderedState(AutomationCompositionOrderedState.UNINITIALISED); var automationCompositionProvider = mock(AutomationCompositionProvider.class); - when(automationCompositionProvider.getAutomationCompositions()).thenReturn(automationCompositions); + when(automationCompositionProvider.getAcInstancesByCompositionId(compositionId)) + .thenReturn(automationCompositions); var automationCompositionUpdatePublisher = mock(AutomationCompositionUpdatePublisher.class); var automationCompositionStateChangePublisher = mock(AutomationCompositionStateChangePublisher.class); @@ -111,8 +119,8 @@ class SupervisionScannerTest { var acRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanner"); var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider, - automationCompositionStateChangePublisher, automationCompositionUpdatePublisher, participantProvider, - participantStatusReqPublisher, participantUpdatePublisher, acRuntimeParameterGroup); + automationCompositionStateChangePublisher, automationCompositionUpdatePublisher, participantProvider, + participantStatusReqPublisher, participantUpdatePublisher, acRuntimeParameterGroup); supervisionScanner.run(false); verify(automationCompositionProvider, times(1)).saveAutomationComposition(any(AutomationComposition.class)); @@ -122,7 +130,8 @@ class SupervisionScannerTest { void testScanner() throws PfModelException { var automationCompositionProvider = mock(AutomationCompositionProvider.class); var automationComposition = new AutomationComposition(); - when(automationCompositionProvider.getAutomationCompositions()).thenReturn(List.of(automationComposition)); + when(automationCompositionProvider.getAcInstancesByCompositionId(compositionId)) + .thenReturn(List.of(automationComposition)); var participantProvider = mock(ParticipantProvider.class); var participant = new Participant(); @@ -137,8 +146,8 @@ class SupervisionScannerTest { var acRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanner"); var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider, - automationCompositionStateChangePublisher, automationCompositionUpdatePublisher, participantProvider, - participantStatusReqPublisher, participantUpdatePublisher, acRuntimeParameterGroup); + automationCompositionStateChangePublisher, automationCompositionUpdatePublisher, participantProvider, + participantStatusReqPublisher, participantUpdatePublisher, acRuntimeParameterGroup); supervisionScanner.handleParticipantStatus(participant.getKey().asIdentifier()); supervisionScanner.run(true); @@ -148,13 +157,13 @@ class SupervisionScannerTest { @Test void testSendAutomationCompositionMsgUpdate() throws PfModelException, CoderException { - var automationCompositions = - InstantiationUtils.getAutomationCompositionsFromResource(AC_JSON, "Crud").getAutomationCompositionList(); + var automationCompositions = InstantiationUtils.getAutomationCompositionsFromResource(AC_JSON, "Crud") + .getAutomationCompositionList(); automationCompositions.get(0).setState(AutomationCompositionState.UNINITIALISED2PASSIVE); automationCompositions.get(0).setOrderedState(AutomationCompositionOrderedState.PASSIVE); for (var element : automationCompositions.get(0).getElements().values()) { if ("org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement" - .equals(element.getDefinition().getName())) { + .equals(element.getDefinition().getName())) { element.setOrderedState(AutomationCompositionOrderedState.PASSIVE); element.setState(AutomationCompositionState.UNINITIALISED); } else { @@ -164,7 +173,8 @@ class SupervisionScannerTest { } var automationCompositionProvider = mock(AutomationCompositionProvider.class); - when(automationCompositionProvider.getAutomationCompositions()).thenReturn(automationCompositions); + when(automationCompositionProvider.getAcInstancesByCompositionId(compositionId)) + .thenReturn(automationCompositions); var participantProvider = mock(ParticipantProvider.class); var automationCompositionUpdatePublisher = mock(AutomationCompositionUpdatePublisher.class); @@ -174,8 +184,8 @@ class SupervisionScannerTest { var acRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanner"); var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider, - automationCompositionStateChangePublisher, automationCompositionUpdatePublisher, participantProvider, - participantStatusReqPublisher, participantUpdatePublisher, acRuntimeParameterGroup); + automationCompositionStateChangePublisher, automationCompositionUpdatePublisher, participantProvider, + participantStatusReqPublisher, participantUpdatePublisher, acRuntimeParameterGroup); supervisionScanner.run(false); @@ -186,7 +196,8 @@ class SupervisionScannerTest { void testScanParticipant() throws PfModelException { var automationCompositionProvider = mock(AutomationCompositionProvider.class); var automationComposition = new AutomationComposition(); - when(automationCompositionProvider.getAutomationCompositions()).thenReturn(List.of(automationComposition)); + when(automationCompositionProvider.getAcInstancesByCompositionId(compositionId)) + .thenReturn(List.of(automationComposition)); var acRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanParticipant"); acRuntimeParameterGroup.getParticipantParameters().getUpdateParameters().setMaxWaitMs(-1); @@ -208,8 +219,8 @@ class SupervisionScannerTest { var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class); var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider, - automationCompositionStateChangePublisher, automationCompositionUpdatePublisher, participantProvider, - participantStatusReqPublisher, participantUpdatePublisher, acRuntimeParameterGroup); + automationCompositionStateChangePublisher, automationCompositionUpdatePublisher, participantProvider, + participantStatusReqPublisher, participantUpdatePublisher, acRuntimeParameterGroup); supervisionScanner .handleParticipantRegister(new ImmutablePair<>(participant.getKey().asIdentifier(), PARTICIPANT_TYPE)); diff --git a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/util/CommonTestData.java b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/util/CommonTestData.java index 3d5370b21..ad8243bed 100644 --- a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/util/CommonTestData.java +++ b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/util/CommonTestData.java @@ -38,8 +38,6 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; public class CommonTestData { private static final Coder CODER = new StandardCoder(); public static final String TOSCA_SERVICE_TEMPLATE_YAML = - "clamp/acm/test/pmsh_multiple_ac_tosca.yaml"; - public static final String TOSCA_ST_TEMPLATE_YAML = "clamp/acm/pmsh/funtional-pmsh-usecase.yaml"; /** @@ -77,16 +75,14 @@ public class CommonTestData { */ public static List<Participant> createParticipants() { var participant1 = createParticipant( - new ToscaConceptIdentifier("org.onap.dcae.acm.DCAEMicroserviceAutomationCompositionParticipant", - "2.3.4"), - new ToscaConceptIdentifier("org.onap.dcae.acm.DCAEMicroserviceAutomationCompositionParticipant", - "2.3.4")); + new ToscaConceptIdentifier("org.onap.policy.clamp.acm.KubernetesParticipant", "2.3.4"), + new ToscaConceptIdentifier("K8sParticipant0", "1.0.0")); var participant2 = createParticipant( - new ToscaConceptIdentifier("org.onap.policy.acm.PolicyAutomationCompositionParticipant", "2.3.1"), - new ToscaConceptIdentifier("org.onap.policy.acm.PolicyAutomationCompositionParticipant", "2.3.1")); + new ToscaConceptIdentifier("org.onap.policy.clamp.acm.HttpParticipant", "2.3.4"), + new ToscaConceptIdentifier("HttpParticipant0", "1.0.0")); var participant3 = createParticipant( - new ToscaConceptIdentifier("org.onap.ccsdk.cds.acm.CdsAutomationCompositionParticipant", "2.2.1"), - new ToscaConceptIdentifier("org.onap.ccsdk.cds.acm.CdsAutomationCompositionParticipant", "2.2.1")); + new ToscaConceptIdentifier("org.onap.policy.clamp.acm.PolicyParticipant", "2.3.1"), + new ToscaConceptIdentifier("org.onap.PM_Policy", "1.0.0")); return List.of(participant1, participant2, participant3); } |