diff options
author | 2023-07-04 09:26:41 +0100 | |
---|---|---|
committer | 2023-07-13 13:20:31 +0000 | |
commit | ef0a60deb046c5bf5ed1a6209493dfde6a6457a9 (patch) | |
tree | 3e92ffecd8579cfb0ddabef80dee5586c695eda1 /participant/participant-intermediary/src/test | |
parent | 51ef04415186a0de3e50339b7fca04fb5ef079c9 (diff) |
Add restart support inside participants
Issue-ID: POLICY-4747
Change-Id: I09ca3e373f8271fbfe612c031920058b744cf413
Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
Diffstat (limited to 'participant/participant-intermediary/src/test')
3 files changed, 58 insertions, 2 deletions
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/api/impl/ParticipantIntermediaryApiImplTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/api/impl/ParticipantIntermediaryApiImplTest.java index fcd8650ea..acf86f20a 100644 --- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/api/impl/ParticipantIntermediaryApiImplTest.java +++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/api/impl/ParticipantIntermediaryApiImplTest.java @@ -20,6 +20,7 @@ package org.onap.policy.clamp.acm.participant.intermediary.api.impl; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -32,6 +33,7 @@ import org.onap.policy.clamp.acm.participant.intermediary.handler.AutomationComp import org.onap.policy.clamp.acm.participant.intermediary.handler.CacheProvider; import org.onap.policy.clamp.models.acm.concepts.AcTypeState; import org.onap.policy.clamp.models.acm.concepts.AutomationComposition; +import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement; import org.onap.policy.clamp.models.acm.concepts.DeployState; import org.onap.policy.clamp.models.acm.concepts.LockState; import org.onap.policy.clamp.models.acm.concepts.StateChangeResult; @@ -65,11 +67,24 @@ class ParticipantIntermediaryApiImplTest { verify(automationComposiitonHandler).updateAutomationCompositionElementState(automationCompositionId, uuid, DeployState.DEPLOYED, null, StateChangeResult.NO_ERROR, ""); - var map = Map.of(uuid, new AutomationComposition()); + var map = Map.of(automationCompositionId, new AutomationComposition()); when(cacheProvider.getAutomationCompositions()).thenReturn(map); + var acElement = new AutomationCompositionElement(); + acElement.setId(uuid); + map.get(automationCompositionId).setElements(Map.of(uuid, acElement)); + var result = apiImpl.getAutomationCompositions(); assertEquals(map, result); + var element = apiImpl.getAutomationCompositionElement(UUID.randomUUID(), UUID.randomUUID()); + assertThat(element).isNull(); + + element = apiImpl.getAutomationCompositionElement(automationCompositionId, UUID.randomUUID()); + assertThat(element).isNull(); + + element = apiImpl.getAutomationCompositionElement(automationCompositionId, uuid); + assertEquals(acElement, element); + apiImpl.updateCompositionState(uuid, AcTypeState.PRIMED, StateChangeResult.NO_ERROR, ""); verify(automationComposiitonHandler).updateCompositionState(uuid, AcTypeState.PRIMED, StateChangeResult.NO_ERROR, ""); diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/DummyAcElementListener.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/DummyAcElementListener.java index 0a724ed69..a4994cbf0 100644 --- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/DummyAcElementListener.java +++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/DummyAcElementListener.java @@ -25,7 +25,10 @@ import java.util.Map; import java.util.UUID; import org.onap.policy.clamp.acm.participant.intermediary.api.AutomationCompositionElementListener; import org.onap.policy.clamp.models.acm.concepts.AcElementDeploy; +import org.onap.policy.clamp.models.acm.concepts.AcTypeState; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElementDefinition; +import org.onap.policy.clamp.models.acm.concepts.DeployState; +import org.onap.policy.clamp.models.acm.concepts.LockState; import org.onap.policy.models.base.PfModelException; public class DummyAcElementListener implements AutomationCompositionElementListener { @@ -36,7 +39,7 @@ public class DummyAcElementListener implements AutomationCompositionElementListe @Override public void deploy(UUID automationCompositionId, AcElementDeploy element, Map<String, Object> properties) - throws PfModelException { + throws PfModelException { } @@ -65,4 +68,15 @@ public class DummyAcElementListener implements AutomationCompositionElementListe @Override public void deprime(UUID compositionId) throws PfModelException { } + + @Override + public void handleRestartComposition(UUID compositionId, + List<AutomationCompositionElementDefinition> elementDefinitionList, AcTypeState state) + throws PfModelException { + } + + @Override + public void handleRestartInstance(UUID automationCompositionId, AcElementDeploy element, + Map<String, Object> properties, DeployState deployState, LockState lockState) throws PfModelException { + } } diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ThreadHandlerTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ThreadHandlerTest.java index 55d84c5fc..2776ed8df 100644 --- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ThreadHandlerTest.java +++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ThreadHandlerTest.java @@ -20,6 +20,7 @@ package org.onap.policy.clamp.acm.participant.intermediary.handler; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; @@ -35,10 +36,12 @@ import org.junit.jupiter.api.Test; import org.onap.policy.clamp.acm.participant.intermediary.api.AutomationCompositionElementListener; import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi; import org.onap.policy.clamp.models.acm.concepts.AcElementDeploy; +import org.onap.policy.clamp.models.acm.concepts.AcElementRestart; import org.onap.policy.clamp.models.acm.concepts.AcTypeState; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElementDefinition; import org.onap.policy.clamp.models.acm.concepts.DeployState; import org.onap.policy.clamp.models.acm.concepts.LockState; +import org.onap.policy.clamp.models.acm.concepts.ParticipantRestartAc; import org.onap.policy.clamp.models.acm.concepts.StateChangeResult; import org.onap.policy.models.base.PfModelException; @@ -164,6 +167,30 @@ class ThreadHandlerTest { threadHandler.deprime(messageId, compositionId); verify(intermediaryApi, timeout(TIMEOUT)).updateCompositionState(compositionId, AcTypeState.PRIMED, StateChangeResult.FAILED, "Composition Defintion deprime failed"); + + clearInvocations(listener); + doThrow(new PfModelException(Status.INTERNAL_SERVER_ERROR, "Error")).when(listener) + .handleRestartComposition(compositionId, List.of(), AcTypeState.PRIMING); + threadHandler.restarted(messageId, compositionId, List.of(), AcTypeState.PRIMING, List.of()); + verify(intermediaryApi).updateCompositionState(compositionId, AcTypeState.PRIMED, StateChangeResult.FAILED, + "Composition Defintion deprime failed"); + } + } + + @Test + void testRestarted() throws IOException, PfModelException { + var listener = mock(AutomationCompositionElementListener.class); + var intermediaryApi = mock(ParticipantIntermediaryApi.class); + var cacheProvider = mock(CacheProvider.class); + try (var threadHandler = new ThreadHandler(listener, intermediaryApi, cacheProvider)) { + var messageId = UUID.randomUUID(); + var compositionId = UUID.randomUUID(); + var participantRestartAc = new ParticipantRestartAc(); + participantRestartAc.setAutomationCompositionId(UUID.randomUUID()); + participantRestartAc.getAcElementList().add(new AcElementRestart()); + threadHandler.restarted(messageId, compositionId, List.of(new AutomationCompositionElementDefinition()), + AcTypeState.PRIMED, List.of(participantRestartAc)); + verify(listener, timeout(TIMEOUT)).handleRestartInstance(any(), any(), any(), any(), any()); } } } |