2  * ============LICENSE_START=======================================================
 
   3  * Copyright (C) 2021 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.controlloop.models.messages.dmaap.participant;
 
  23 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
  24 import static org.junit.Assert.assertEquals;
 
  25 import static org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageUtils.assertSerializable;
 
  26 import static org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageUtils.removeVariableFields;
 
  28 import java.time.Instant;
 
  29 import java.util.List;
 
  31 import java.util.UUID;
 
  32 import org.junit.jupiter.api.Test;
 
  33 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
 
  34 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
 
  35 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
 
  36 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantUpdates;
 
  37 import org.onap.policy.common.utils.coder.CoderException;
 
  38 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 
  41  * Test the copy constructor.
 
  43 class ControlLoopUpdateTest {
 
  45     void testCopyConstructor() throws CoderException {
 
  46         assertThatThrownBy(() -> new ControlLoopUpdate(null)).isInstanceOf(NullPointerException.class);
 
  48         ControlLoopUpdate orig = new ControlLoopUpdate();
 
  49         // verify with all values
 
  50         ToscaConceptIdentifier id = new ToscaConceptIdentifier("id", "1.2.3");
 
  51         orig.setControlLoopId(id);
 
  52         orig.setParticipantId(null);
 
  53         orig.setMessageId(UUID.randomUUID());
 
  54         orig.setTimestamp(Instant.ofEpochMilli(3000));
 
  56         ControlLoopElement clElement = new ControlLoopElement();
 
  57         clElement.setId(UUID.randomUUID());
 
  58         clElement.setDefinition(id);
 
  59         clElement.setDescription("Description");
 
  60         clElement.setOrderedState(ControlLoopOrderedState.PASSIVE);
 
  61         clElement.setState(ControlLoopState.PASSIVE);
 
  62         clElement.setParticipantId(id);
 
  63         clElement.setParticipantType(id);
 
  65         Map<String, String> commonPropertiesMap = Map.of("Prop1", "PropValue");
 
  66         clElement.setCommonPropertiesMap(commonPropertiesMap);
 
  68         ParticipantUpdates participantUpdates = new ParticipantUpdates();
 
  69         participantUpdates.setParticipantId(id);
 
  70         participantUpdates.setControlLoopElementList(List.of(clElement));
 
  71         orig.setParticipantUpdatesList(List.of(participantUpdates));
 
  73         ControlLoopUpdate other = new ControlLoopUpdate(orig);
 
  75         assertEquals(removeVariableFields(orig.toString()), removeVariableFields(other.toString()));
 
  76         assertSerializable(orig, ControlLoopUpdate.class);