From 204be45b2c666a9261e287275ead362b8817f22c Mon Sep 17 00:00:00 2001 From: FrancescoFioraEst Date: Mon, 13 Feb 2023 11:08:42 +0000 Subject: Implement recording of Operational State and Usage State on ACM-R Issue-ID: POLICY-4511 Change-Id: I3a241bf602e6625d91cee2dc5242b76165bcd381 Signed-off-by: FrancescoFioraEst --- .../concepts/AutomationCompositionElementTest.java | 20 ------ .../acm/concepts/AutomationCompositionTest.java | 11 ---- .../AutomationCompositionDeployTest.java | 16 ++--- .../clamp/models/acm/utils/AcmUtilsTest.java | 74 ++++++++++++++-------- 4 files changed, 52 insertions(+), 69 deletions(-) (limited to 'models/src/test') diff --git a/models/src/test/java/org/onap/policy/clamp/models/acm/concepts/AutomationCompositionElementTest.java b/models/src/test/java/org/onap/policy/clamp/models/acm/concepts/AutomationCompositionElementTest.java index 9f235d6ac..e044a2f22 100644 --- a/models/src/test/java/org/onap/policy/clamp/models/acm/concepts/AutomationCompositionElementTest.java +++ b/models/src/test/java/org/onap/policy/clamp/models/acm/concepts/AutomationCompositionElementTest.java @@ -25,7 +25,6 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.UUID; import org.junit.jupiter.api.Test; @@ -43,27 +42,12 @@ class AutomationCompositionElementTest { ace1.setDefinition(new ToscaConceptIdentifier("defName", "0.0.1")); ace1.setDescription("Description"); ace1.setId(UUID.randomUUID()); - ace1.setOrderedState(AutomationCompositionOrderedState.UNINITIALISED); ace1.setParticipantId(CommonTestData.getParticipantId()); - ace1.setState(AutomationCompositionState.UNINITIALISED); var ace2 = new AutomationCompositionElement(ace1); assertEquals(ace1, ace2); } - @Test - void testAutomationCompositionState() { - var ace0 = new AutomationCompositionElement(); - - assertTrue( - ace0.getOrderedState() - .equalsAutomationCompositionState(AutomationCompositionState.UNINITIALISED)); - - assertTrue( - ace0.getOrderedState().asState() - .equalsAutomationCompositionOrderedState(AutomationCompositionOrderedState.UNINITIALISED)); - } - @Test void testAutomationCompositionElementLombok() { var ace0 = new AutomationCompositionElement(); @@ -78,9 +62,7 @@ class AutomationCompositionElementTest { ace1.setDefinition(new ToscaConceptIdentifier("defName", "0.0.1")); ace1.setDescription("Description"); ace1.setId(UUID.randomUUID()); - ace1.setOrderedState(AutomationCompositionOrderedState.UNINITIALISED); ace1.setParticipantId(CommonTestData.getParticipantId()); - ace1.setState(AutomationCompositionState.UNINITIALISED); assertThat(ace1.toString()).contains("AutomationCompositionElement("); assertNotEquals(0, ace1.hashCode()); @@ -94,9 +76,7 @@ class AutomationCompositionElementTest { // @formatter:off assertThatThrownBy(() -> ace2.setDefinition(null)). isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> ace2.setId(null)). isInstanceOf(NullPointerException.class); - assertThatThrownBy(() -> ace2.setOrderedState(null)). isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> ace2.setParticipantId(null)).isInstanceOf(NullPointerException.class); - assertThatThrownBy(() -> ace2.setState(null)). isInstanceOf(NullPointerException.class); // @formatter:on assertNotEquals(ace2, ace0); diff --git a/models/src/test/java/org/onap/policy/clamp/models/acm/concepts/AutomationCompositionTest.java b/models/src/test/java/org/onap/policy/clamp/models/acm/concepts/AutomationCompositionTest.java index e32735f07..64dc6f792 100644 --- a/models/src/test/java/org/onap/policy/clamp/models/acm/concepts/AutomationCompositionTest.java +++ b/models/src/test/java/org/onap/policy/clamp/models/acm/concepts/AutomationCompositionTest.java @@ -60,8 +60,6 @@ class AutomationCompositionTest { ac1.setDescription("Description"); ac1.setElements(new LinkedHashMap<>()); ac1.setName("Name"); - ac1.setOrderedState(AutomationCompositionOrderedState.UNINITIALISED); - ac1.setState(AutomationCompositionState.UNINITIALISED); ac1.setVersion("0.0.1"); assertThat(ac1.toString()).contains("AutomationComposition("); @@ -76,20 +74,11 @@ class AutomationCompositionTest { // @formatter:off assertThatThrownBy(() -> ac2.setCompositionId(null)). isInstanceOf(NullPointerException.class); - assertThatThrownBy(() -> ac2.setOrderedState(null)).isInstanceOf(NullPointerException.class); - assertThatThrownBy(() -> ac2.setState(null)). isInstanceOf(NullPointerException.class); // @formatter:on assertEquals(ac2, ac0); - ac1.setCascadedOrderedState(AutomationCompositionOrderedState.PASSIVE); - assertEquals(AutomationCompositionOrderedState.PASSIVE, ac1.getOrderedState()); - ac1.getElements().put(UUID.randomUUID(), new AutomationCompositionElement()); - ac1.setCascadedOrderedState(AutomationCompositionOrderedState.RUNNING); - assertEquals(AutomationCompositionOrderedState.RUNNING, ac1.getOrderedState()); - assertEquals(AutomationCompositionOrderedState.RUNNING, - ac1.getElements().values().iterator().next().getOrderedState()); assertNull(ac0.getElements().get(UUID.randomUUID())); assertNull(ac1.getElements().get(UUID.randomUUID())); diff --git a/models/src/test/java/org/onap/policy/clamp/models/acm/messages/dmaap/participant/AutomationCompositionDeployTest.java b/models/src/test/java/org/onap/policy/clamp/models/acm/messages/dmaap/participant/AutomationCompositionDeployTest.java index 2912dee9b..3f64eadd5 100644 --- a/models/src/test/java/org/onap/policy/clamp/models/acm/messages/dmaap/participant/AutomationCompositionDeployTest.java +++ b/models/src/test/java/org/onap/policy/clamp/models/acm/messages/dmaap/participant/AutomationCompositionDeployTest.java @@ -30,9 +30,7 @@ import java.util.List; import java.util.Map; import java.util.UUID; import org.junit.jupiter.api.Test; -import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement; -import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState; -import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState; +import org.onap.policy.clamp.models.acm.concepts.AcElementDeploy; import org.onap.policy.clamp.models.acm.concepts.ParticipantDeploy; import org.onap.policy.clamp.models.acm.utils.CommonTestData; import org.onap.policy.common.utils.coder.CoderException; @@ -55,16 +53,10 @@ class AutomationCompositionDeployTest { orig.setMessageId(UUID.randomUUID()); orig.setTimestamp(Instant.ofEpochMilli(3000)); - var acElement = new AutomationCompositionElement(); + var acElement = new AcElementDeploy(); acElement.setId(UUID.randomUUID()); var id = new ToscaConceptIdentifier("id", "1.2.3"); acElement.setDefinition(id); - acElement.setDescription("Description"); - acElement.setOrderedState(AutomationCompositionOrderedState.PASSIVE); - acElement.setState(AutomationCompositionState.PASSIVE); - - var participantId = CommonTestData.getParticipantId(); - acElement.setParticipantId(participantId); var property = new ToscaProperty(); property.setName("test"); @@ -75,8 +67,8 @@ class AutomationCompositionDeployTest { acElement.setProperties(propertiesMap); var participantDeploy = new ParticipantDeploy(); - participantDeploy.setParticipantId(participantId); - participantDeploy.setAutomationCompositionElementList(List.of(acElement)); + participantDeploy.setParticipantId(CommonTestData.getParticipantId()); + participantDeploy.setAcElementList(List.of(acElement)); orig.setParticipantUpdatesList(List.of(participantDeploy)); var other = new AutomationCompositionDeploy(orig); diff --git a/models/src/test/java/org/onap/policy/clamp/models/acm/utils/AcmUtilsTest.java b/models/src/test/java/org/onap/policy/clamp/models/acm/utils/AcmUtilsTest.java index c16beaf87..b332d7d44 100644 --- a/models/src/test/java/org/onap/policy/clamp/models/acm/utils/AcmUtilsTest.java +++ b/models/src/test/java/org/onap/policy/clamp/models/acm/utils/AcmUtilsTest.java @@ -24,13 +24,12 @@ 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.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotEquals; 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 static org.junit.jupiter.api.Assertions.fail; import java.io.File; -import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -41,8 +40,9 @@ 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.ParticipantDeploy; import org.onap.policy.clamp.models.acm.document.concepts.DocToscaServiceTemplate; +import org.onap.policy.clamp.models.acm.messages.rest.instantiation.DeployOrder; +import org.onap.policy.clamp.models.acm.messages.rest.instantiation.LockOrder; import org.onap.policy.common.utils.coder.StandardCoder; import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; import org.onap.policy.models.tosca.authorative.concepts.ToscaDataType; @@ -68,25 +68,6 @@ class AcmUtilsTest { assertThat(AcmUtils.isInTransitionalState(DeployState.DEPLOYED, LockState.UNLOCKING)).isTrue(); } - @Test - void testCommonUtilsParticipantUpdate() { - var acElement = new AutomationCompositionElement(); - List participantUpdates = new ArrayList<>(); - assertThat(participantUpdates).isEmpty(); - - AcmUtils.prepareParticipantUpdate(acElement, participantUpdates); - assertThat(participantUpdates).isNotEmpty(); - assertEquals(acElement, participantUpdates.get(0).getAutomationCompositionElementList().get(0)); - - AcmUtils.prepareParticipantUpdate(acElement, participantUpdates); - var participantId = CommonTestData.getParticipantId(); - assertNotEquals(participantId, participantUpdates.get(0).getParticipantId()); - - acElement.setParticipantId(participantId); - AcmUtils.prepareParticipantUpdate(acElement, participantUpdates); - assertEquals(participantId, participantUpdates.get(1).getParticipantId()); - } - @Test void testCheckIfNodeTemplateIsAutomationCompositionElement() { var serviceTemplate = CommonTestData.getToscaServiceTemplate(TOSCA_TEMPLATE_YAML); @@ -109,12 +90,12 @@ class AcmUtilsTest { Map map = new HashMap<>(); var participantId = UUID.randomUUID(); assertThatThrownBy(() -> AcmUtils.prepareParticipantPriming(acElements, map)).hasMessageMatching( - "Element Type org.onap.policy.clamp.acm.PolicyAutomationCompositionElement 1.0.1 not supported"); - map.put(new ToscaConceptIdentifier("org.onap.policy.clamp.acm.PolicyAutomationCompositionElement", "1.0.1"), + "Element Type org.onap.policy.clamp.acm.PolicyAutomationCompositionElement 1.0.0 not supported"); + map.put(new ToscaConceptIdentifier("org.onap.policy.clamp.acm.PolicyAutomationCompositionElement", "1.0.0"), participantId); map.put(new ToscaConceptIdentifier("org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement", - "1.0.1"), participantId); - map.put(new ToscaConceptIdentifier("org.onap.policy.clamp.acm.HttpAutomationCompositionElement", "1.0.1"), + "1.0.0"), participantId); + map.put(new ToscaConceptIdentifier("org.onap.policy.clamp.acm.HttpAutomationCompositionElement", "1.0.0"), participantId); var result = AcmUtils.prepareParticipantPriming(acElements, map); assertThat(result).isNotEmpty().hasSize(1); @@ -159,6 +140,47 @@ class AcmUtilsTest { assertFalse(result.isValid()); } + @Test + void testStateDeployToOrder() { + // from transitional state to order state + assertEquals(DeployOrder.DEPLOY, AcmUtils.stateDeployToOrder(DeployState.DEPLOYING)); + assertEquals(DeployOrder.UNDEPLOY, AcmUtils.stateDeployToOrder(DeployState.UNDEPLOYING)); + assertEquals(DeployOrder.NONE, AcmUtils.stateDeployToOrder(DeployState.DEPLOYED)); + } + + @Test + void testStateLockToOrder() { + // from transitional state to order state + assertEquals(LockOrder.LOCK, AcmUtils.stateLockToOrder(LockState.LOCKING)); + assertEquals(LockOrder.UNLOCK, AcmUtils.stateLockToOrder(LockState.UNLOCKING)); + assertEquals(LockOrder.NONE, AcmUtils.stateLockToOrder(LockState.NONE)); + } + + @Test + void testDeployCompleted() { + // from transitional state to final state + assertEquals(DeployState.DEPLOYED, AcmUtils.deployCompleted(DeployState.DEPLOYING)); + assertEquals(DeployState.UNDEPLOYED, AcmUtils.deployCompleted(DeployState.UNDEPLOYING)); + assertEquals(DeployState.DEPLOYED, AcmUtils.deployCompleted(DeployState.DEPLOYED)); + } + + @Test + void testLockCompleted() { + // from transitional state to final state + assertEquals(LockState.LOCKED, AcmUtils.lockCompleted(DeployState.DEPLOYING, LockState.NONE)); + assertEquals(LockState.LOCKED, AcmUtils.lockCompleted(DeployState.DEPLOYED, LockState.LOCKING)); + assertEquals(LockState.UNLOCKED, AcmUtils.lockCompleted(DeployState.DEPLOYED, LockState.UNLOCKING)); + assertEquals(LockState.NONE, AcmUtils.lockCompleted(DeployState.UNDEPLOYING, LockState.LOCKED)); + } + + @Test + void testIsForward() { + assertTrue(AcmUtils.isForward(DeployState.DEPLOYING, LockState.NONE)); + assertTrue(AcmUtils.isForward(DeployState.DEPLOYED, LockState.UNLOCKING)); + assertFalse(AcmUtils.isForward(DeployState.DEPLOYED, LockState.LOCKING)); + assertFalse(AcmUtils.isForward(DeployState.UNDEPLOYING, LockState.LOCKED)); + } + private AutomationComposition getDummyAutomationComposition() { var automationComposition = new AutomationComposition(); automationComposition.setCompositionId(UUID.randomUUID()); -- cgit 1.2.3-korg