aboutsummaryrefslogtreecommitdiffstats
path: root/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java')
-rw-r--r--participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java176
1 files changed, 176 insertions, 0 deletions
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java
new file mode 100644
index 000000000..8e22784db
--- /dev/null
+++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java
@@ -0,0 +1,176 @@
+/*-
+ * ============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.acm.participant.intermediary.handler;
+
+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.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+import org.junit.jupiter.api.Test;
+import org.onap.policy.clamp.acm.participant.intermediary.comm.ParticipantMessagePublisher;
+import org.onap.policy.clamp.acm.participant.intermediary.main.parameters.CommonTestData;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantDefinition;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantHealthStatus;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantState;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantAckMessage;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessage;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantRegisterAck;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantUpdate;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+
+class ParticipantHandlerTest {
+
+ private CommonTestData commonTestData = new CommonTestData();
+ private static final String ID_NAME = "org.onap.PM_CDS_Blueprint";
+ private static final String ID_VERSION = "1.0.1";
+
+ @Test
+ void mockParticipantHandlerTest() {
+ var participantHandler = commonTestData.getMockParticipantHandler();
+ assertNull(participantHandler.getParticipant(null, null));
+ assertEquals("org.onap.PM_CDS_Blueprint 1.0.1", participantHandler.getParticipantId().toString());
+
+ var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
+ assertEquals(id, participantHandler.getParticipantId());
+ assertEquals(id, participantHandler.getParticipantType());
+ assertThat(participantHandler.getAcElementDefinitionCommonProperties(id)).isEmpty();
+
+ }
+
+ @Test
+ void handleUpdateTest() {
+ var parameters = CommonTestData.getParticipantParameters();
+ var automationCompositionHander = commonTestData.getMockAutomationCompositionHandler();
+ var publisher = new ParticipantMessagePublisher();
+ var emptyParticipantHandler =
+ new ParticipantHandler(parameters, publisher, automationCompositionHander);
+ var participantUpdateMsg = new ParticipantUpdate();
+
+ assertThatThrownBy(() ->
+ emptyParticipantHandler.handleParticipantUpdate(participantUpdateMsg))
+ .isInstanceOf(RuntimeException.class);
+
+ var participantHandler = commonTestData.getMockParticipantHandler();
+
+ var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
+ participantUpdateMsg.setAutomationCompositionId(id);
+ participantUpdateMsg.setParticipantId(id);
+ participantUpdateMsg.setParticipantType(id);
+ participantUpdateMsg.setMessageId(UUID.randomUUID());
+ participantUpdateMsg.setTimestamp(Instant.ofEpochMilli(3000));
+
+ var heartbeatF = participantHandler.makeHeartbeat(false);
+ assertEquals(id, heartbeatF.getParticipantId());
+ assertEquals(ParticipantState.UNKNOWN, heartbeatF.getParticipantStatistics().getState());
+ assertThat(heartbeatF.getAutomationCompositionInfoList()).isEmpty();
+
+ participantHandler.handleParticipantUpdate(participantUpdateMsg);
+ assertThat(participantHandler.getAcElementDefinitionCommonProperties(id)).isEmpty();
+
+ var heartbeatT = participantHandler.makeHeartbeat(true);
+ assertEquals(id, heartbeatT.getParticipantId());
+ assertEquals(ParticipantState.TERMINATED, heartbeatT.getParticipantStatistics().getState());
+ assertThat(heartbeatT.getParticipantDefinitionUpdates()).isNotEmpty();
+ assertEquals(id, heartbeatT.getParticipantDefinitionUpdates().get(0).getParticipantId());
+
+ var pum = setListParticipantDefinition(participantUpdateMsg);
+ participantHandler.handleParticipantUpdate(pum);
+ var heartbeatTAfterUpdate = participantHandler.makeHeartbeat(true);
+ assertEquals(id, heartbeatTAfterUpdate.getParticipantId());
+ assertEquals(ParticipantState.PASSIVE, heartbeatTAfterUpdate.getParticipantStatistics().getState());
+
+ }
+
+ private ParticipantUpdate setListParticipantDefinition(ParticipantUpdate participantUpdateMsg) {
+ var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
+ List<ParticipantDefinition> participantDefinitionUpdates = new ArrayList<>();
+ var def = new ParticipantDefinition();
+ def.setParticipantId(id);
+ def.setParticipantType(id);
+ participantDefinitionUpdates.add(def);
+ participantUpdateMsg.setParticipantDefinitionUpdates(participantDefinitionUpdates);
+ return participantUpdateMsg;
+ }
+
+ @Test
+ void handleParticipantTest() {
+ var participantHandler = commonTestData.getMockParticipantHandler();
+ var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
+ var p = participantHandler.getParticipant(id.getName(), id.getVersion());
+ assertEquals(ParticipantState.UNKNOWN, p.getParticipantState());
+
+ participantHandler.updateParticipantState(id, ParticipantState.PASSIVE);
+ var p2 = participantHandler.getParticipant(id.getName(), id.getVersion());
+ assertEquals(ParticipantState.PASSIVE, p2.getParticipantState());
+
+ var participantRegisterAckMsg = new ParticipantRegisterAck();
+ participantRegisterAckMsg.setState(ParticipantState.TERMINATED);
+ participantHandler.handleParticipantRegisterAck(participantRegisterAckMsg);
+ assertEquals(ParticipantHealthStatus.HEALTHY, participantHandler.makeHeartbeat(false).getHealthStatus());
+
+ var emptyid = new ToscaConceptIdentifier("", ID_VERSION);
+ assertNull(participantHandler.updateParticipantState(emptyid, ParticipantState.PASSIVE));
+
+ var sameid = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
+ var participant = participantHandler.updateParticipantState(sameid, ParticipantState.PASSIVE);
+ assertEquals(participant.getDefinition(), sameid);
+
+ }
+
+ @Test
+ void checkAppliesTo() {
+ var participantHandler = commonTestData.getMockParticipantHandler();
+ var participantAckMsg =
+ new ParticipantAckMessage(ParticipantMessageType.AUTOMATION_COMPOSITION_UPDATE);
+ assertTrue(participantHandler.appliesTo(participantAckMsg));
+
+ var participantMsg =
+ new ParticipantMessage(ParticipantMessageType.PARTICIPANT_STATUS);
+ assertTrue(participantHandler.appliesTo(participantMsg));
+
+ var emptyid = new ToscaConceptIdentifier("", ID_VERSION);
+ participantMsg.setParticipantType(emptyid);
+ assertFalse(participantHandler.appliesTo(participantMsg));
+
+ }
+
+ @Test
+ void getAutomationCompositionInfoListTest() throws CoderException {
+ var participantHandler = commonTestData.getParticipantHandlerAutomationCompositions();
+ var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
+ participantHandler.sendHeartbeat();
+ assertEquals(id, participantHandler.makeHeartbeat(false)
+ .getAutomationCompositionInfoList()
+ .get(0)
+ .getAutomationCompositionId());
+
+ }
+
+}