summaryrefslogtreecommitdiffstats
path: root/participant
diff options
context:
space:
mode:
Diffstat (limited to 'participant')
-rw-r--r--participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandlerTest.java118
-rw-r--r--participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/main/parameters/CommonTestData.java18
2 files changed, 135 insertions, 1 deletions
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandlerTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandlerTest.java
new file mode 100644
index 000000000..63db364ca
--- /dev/null
+++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandlerTest.java
@@ -0,0 +1,118 @@
+/*-
+ * ============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.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.assertNull;
+
+import java.time.Instant;
+import java.util.UUID;
+import org.junit.jupiter.api.Test;
+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.messages.dmaap.participant.ParticipantRegisterAck;
+import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus;
+import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdate;
+import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantMessagePublisher;
+import org.onap.policy.clamp.controlloop.participant.intermediary.main.parameters.CommonTestData;
+import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters;
+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() {
+ ParticipantHandler participantHandler = commonTestData.getMockParticipantHandler();
+ assertNull(participantHandler.getParticipant(null, null));
+ assertEquals("org.onap.PM_CDS_Blueprint 1.0.1", participantHandler.getParticipantId().toString());
+
+ ToscaConceptIdentifier id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
+ assertEquals(id, participantHandler.getParticipantId());
+ assertEquals(id, participantHandler.getParticipantType());
+ assertThat(participantHandler.getClElementDefinitionCommonProperties(id)).isEmpty();
+
+ }
+
+ @Test
+ void handleUpdateTest() {
+ ParticipantParameters parameters = CommonTestData.getParticipantParameters();
+ ControlLoopHandler controlLoopHander = commonTestData.getMockControlLoopHandler();
+ ParticipantMessagePublisher publisher = new ParticipantMessagePublisher();
+ ParticipantHandler emptyParticipantHandler =
+ new ParticipantHandler(parameters, publisher, controlLoopHander);
+ ParticipantUpdate participantUpdateMsg = new ParticipantUpdate();
+
+ assertThatThrownBy(() ->
+ emptyParticipantHandler.handleParticipantUpdate(participantUpdateMsg))
+ .isInstanceOf(RuntimeException.class);
+
+ ParticipantHandler participantHandler = commonTestData.getMockParticipantHandler();
+ ToscaConceptIdentifier id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
+ participantUpdateMsg.setControlLoopId(id);
+ participantUpdateMsg.setParticipantId(id);
+ participantUpdateMsg.setParticipantType(id);
+ participantUpdateMsg.setMessageId(UUID.randomUUID());
+ participantUpdateMsg.setTimestamp(Instant.ofEpochMilli(3000));
+
+
+ ParticipantStatus heartbeatF = participantHandler.makeHeartbeat(false);
+ assertEquals(id, heartbeatF.getParticipantId());
+ assertEquals(ParticipantState.UNKNOWN, heartbeatF.getParticipantStatistics().getState());
+ assertThat(heartbeatF.getControlLoopInfoList()).isEmpty();
+
+ participantHandler.handleParticipantUpdate(participantUpdateMsg);
+ assertThat(participantHandler.getClElementDefinitionCommonProperties(id)).isEmpty();
+
+ ParticipantStatus 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());
+
+ }
+
+ @Test
+ void handleParticipantTest() {
+ ParticipantHandler participantHandler = commonTestData.getMockParticipantHandler();
+ ToscaConceptIdentifier id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
+ Participant p = participantHandler.getParticipant(id.getName(), id.getVersion());
+ assertEquals(ParticipantState.UNKNOWN, p.getParticipantState());
+
+ participantHandler.updateParticipantState(id, ParticipantState.PASSIVE);
+ Participant p2 = participantHandler.getParticipant(id.getName(), id.getVersion());
+ assertEquals(ParticipantState.PASSIVE, p2.getParticipantState());
+
+ ParticipantRegisterAck participantRegisterAckMsg = new ParticipantRegisterAck();
+ participantRegisterAckMsg.setState(ParticipantState.TERMINATED);
+ participantHandler.handleParticipantRegisterAck(participantRegisterAckMsg);
+ assertEquals(ParticipantHealthStatus.HEALTHY, participantHandler.makeHeartbeat(false).getHealthStatus());
+
+ }
+
+}
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/main/parameters/CommonTestData.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/main/parameters/CommonTestData.java
index ae20f4b7f..af88b5a8a 100644
--- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/main/parameters/CommonTestData.java
+++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/main/parameters/CommonTestData.java
@@ -29,7 +29,9 @@ import org.mockito.Mockito;
import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantMessagePublisher;
import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ControlLoopHandler;
import org.onap.policy.clamp.controlloop.participant.intermediary.handler.DummyParticipantParameters;
+import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantIntermediaryParameters;
+import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters;
import org.onap.policy.common.endpoints.event.comm.TopicSink;
import org.onap.policy.common.endpoints.parameters.TopicParameters;
import org.onap.policy.common.utils.coder.Coder;
@@ -45,7 +47,6 @@ public class CommonTestData {
public static final String DESCRIPTION = "Participant description";
public static final long TIME_INTERVAL = 2000;
public static final List<TopicParameters> TOPIC_PARAMS = Arrays.asList(getTopicParams());
-
public static final Coder CODER = new StandardCoder();
private static final Object lockit = new Object();
@@ -168,4 +169,19 @@ public class CommonTestData {
getParticipantParameters(),
getParticipantMessagePublisher());
}
+
+ /**
+ * Returns a mocked ParticipantHandler for test cases.
+ *
+ * @return participant Handler
+ */
+ public ParticipantHandler getMockParticipantHandler() {
+ ParticipantParameters parameters = getParticipantParameters();
+ ControlLoopHandler controlLoopHander = getMockControlLoopHandler();
+ ParticipantMessagePublisher publisher = new ParticipantMessagePublisher();
+ publisher.active(Collections.singletonList(Mockito.mock(TopicSink.class)));
+ ParticipantHandler participantHandler = new ParticipantHandler(parameters, publisher, controlLoopHander);
+ return participantHandler;
+ }
+
}