2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021-2022 Nordix Foundation.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.clamp.models.acm.messages.dmaap.participant;
23 import static org.assertj.core.api.Assertions.assertThatThrownBy;
24 import static org.junit.jupiter.api.Assertions.assertEquals;
25 import static org.junit.jupiter.api.Assertions.assertFalse;
26 import static org.junit.jupiter.api.Assertions.assertTrue;
27 import static org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageUtils.assertSerializable;
29 import java.util.UUID;
30 import org.junit.jupiter.api.Test;
31 import org.onap.policy.clamp.models.acm.utils.CommonTestData;
32 import org.onap.policy.common.utils.coder.CoderException;
33 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
35 class ParticipantAckMessageTest {
36 private ParticipantAckMessage message;
38 private static final ToscaConceptIdentifier PTYPE_456 = new ToscaConceptIdentifier("PType", "4.5.6");
39 private static final ToscaConceptIdentifier PTYPE_457 = new ToscaConceptIdentifier("PType", "4.5.7");
42 void testCopyConstructor() throws CoderException {
43 assertThatThrownBy(() -> new ParticipantAckMessage((ParticipantAckMessage) null))
44 .isInstanceOf(NullPointerException.class);
46 // verify with null values
47 message = new ParticipantAckMessage(ParticipantMessageType.PARTICIPANT_STATE_CHANGE);
48 ParticipantAckMessage newmsg = new ParticipantAckMessage(message);
49 newmsg.setResponseTo(message.getResponseTo());
50 assertEquals(message.toString(), newmsg.toString());
52 // verify with all values
53 message = makeMessage();
54 newmsg = new ParticipantAckMessage(message);
55 newmsg.setResponseTo(message.getResponseTo());
56 assertEquals(message.toString(), newmsg.toString());
58 assertSerializable(message, ParticipantAckMessage.class);
62 void testAppliesTo_NullParticipantId() {
63 message = makeMessage();
65 assertThatThrownBy(() -> message.appliesTo(null, null)).isInstanceOf(NullPointerException.class);
66 assertThatThrownBy(() -> message.appliesTo(PTYPE_456, null)).isInstanceOf(NullPointerException.class);
67 var participantId = CommonTestData.getParticipantId();
68 assertThatThrownBy(() -> message.appliesTo(null, participantId)).isInstanceOf(NullPointerException.class);
72 void testAppliesTo_ParticipantIdMatches() {
73 message = makeMessage();
75 // ParticipantId matches
76 assertTrue(message.appliesTo(PTYPE_456, CommonTestData.getParticipantId()));
77 assertFalse(message.appliesTo(PTYPE_456, CommonTestData.getRndParticipantId()));
78 assertFalse(message.appliesTo(PTYPE_457, CommonTestData.getParticipantId()));
82 void testAppliesTo_ParticipantIdNoMatch() {
83 message = makeMessage();
85 // ParticipantId does not match
86 ToscaConceptIdentifier id = new ToscaConceptIdentifier();
88 id.setVersion("3.2.1");
89 assertFalse(message.appliesTo(id, CommonTestData.getRndParticipantId()));
90 message.setParticipantType(null);
91 assertTrue(message.appliesTo(id, CommonTestData.getRndParticipantId()));
94 private ParticipantAckMessage makeMessage() {
95 ParticipantAckMessage msg = new ParticipantAckMessage(ParticipantMessageType.PARTICIPANT_DEREGISTER_ACK);
97 msg.setParticipantType(PTYPE_456);
98 msg.setParticipantId(CommonTestData.getParticipantId());
99 msg.setMessage("Successfull Ack");
101 msg.setResponseTo(UUID.randomUUID());