2  * ============LICENSE_START=======================================================
\r 
   3  *  Copyright (C) 2025 OpenInfra Foundation Europe. All rights reserved.
\r 
   4  * ================================================================================
\r 
   5  * Licensed under the Apache License, Version 2.0 (the "License");
\r 
   6  * you may not use this file except in compliance with the License.
\r 
   7  * You may obtain a copy of the License at
\r 
   9  *      http://www.apache.org/licenses/LICENSE-2.0
\r 
  11  * Unless required by applicable law or agreed to in writing, software
\r 
  12  * distributed under the License is distributed on an "AS IS" BASIS,
\r 
  13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r 
  14  * See the License for the specific language governing permissions and
\r 
  15  * limitations under the License.
\r 
  17  * SPDX-License-Identifier: Apache-2.0
\r 
  18  * ============LICENSE_END=========================================================
\r 
  21 package org.onap.policy.clamp.models.acm.persistence.concepts;
\r 
  23 import static org.assertj.core.api.Assertions.assertThatThrownBy;
\r 
  24 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
\r 
  25 import static org.junit.jupiter.api.Assertions.assertEquals;
\r 
  27 import java.util.HashMap;
\r 
  28 import java.util.LinkedHashMap;
\r 
  29 import java.util.Map;
\r 
  30 import java.util.UUID;
\r 
  31 import java.util.function.UnaryOperator;
\r 
  32 import org.junit.jupiter.api.Test;
\r 
  33 import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionRollback;
\r 
  34 import org.onap.policy.models.base.PfUtils;
\r 
  37 class JpaAutomationCompositionRollbackTest {
\r 
  39     private static final String NULL_INSTANCE_ID_ERROR = "instanceId is marked .*ull but is null";
\r 
  40     private static final String NULL_ERROR = " is marked .*ull but is null";
\r 
  41     private static final String INSTANCE_ID = "709c62b3-8918-41b9-a747-d21eb79c6c20";
\r 
  42     private static final String COMPOSITION_ID = "709c62b3-8918-41b9-a747-e21eb79c6c41";
\r 
  45     void testJpaAutomationCompositionRollbackConstructor() {
\r 
  46         assertThatThrownBy(() -> {
\r 
  47             new JpaAutomationCompositionRollback((JpaAutomationCompositionRollback) null);
\r 
  48         }).hasMessageMatching("copyConcept" + NULL_ERROR);
\r 
  50         assertThatThrownBy(() -> {
\r 
  51             new JpaAutomationCompositionRollback((AutomationCompositionRollback) null);
\r 
  52         }).hasMessageMatching("authorativeConcept" + NULL_ERROR);
\r 
  54         assertThatThrownBy(() -> {
\r 
  55             new JpaAutomationCompositionRollback(null, null, null);
\r 
  56         }).hasMessageMatching(NULL_INSTANCE_ID_ERROR);
\r 
  58         assertThatThrownBy(() -> {
\r 
  59             new JpaAutomationCompositionRollback(INSTANCE_ID, null, null);
\r 
  60         }).hasMessageMatching("compositionId" + NULL_ERROR);
\r 
  62         assertThatThrownBy(() -> {
\r 
  63             new JpaAutomationCompositionRollback(INSTANCE_ID, COMPOSITION_ID, null);
\r 
  64         }).hasMessageMatching("elements" + NULL_ERROR);
\r 
  66         assertDoesNotThrow(() -> new JpaAutomationCompositionRollback());
\r 
  67         Map<String, Object> map = new LinkedHashMap<>();
\r 
  68         map.put("test", "test");
\r 
  69         assertDoesNotThrow(() -> new JpaAutomationCompositionRollback(INSTANCE_ID, COMPOSITION_ID, map));
\r 
  73     void testJpaAutomationCompositionRollback() {
\r 
  74         var automationCompositionRollback = createAutomationCompositionRollbackInstance();
\r 
  75         var jpaAutomationCompositionRollback = new JpaAutomationCompositionRollback(automationCompositionRollback);
\r 
  78         assertEquals(automationCompositionRollback, jpaAutomationCompositionRollback.toAuthorative());
\r 
  79         assertDoesNotThrow(() -> new JpaAutomationCompositionRollback(jpaAutomationCompositionRollback));
\r 
  83     void testJpaCompositionRollbackCompareTo() {
\r 
  84         var jpaAutomationCompositionRollback =
\r 
  85                 new JpaAutomationCompositionRollback(createAutomationCompositionRollbackInstance());
\r 
  87         var otherJpaAutomationComposition =
\r 
  88                 new JpaAutomationCompositionRollback(jpaAutomationCompositionRollback);
\r 
  90         assertEquals(0, jpaAutomationCompositionRollback.compareTo(otherJpaAutomationComposition));
\r 
  91         assertEquals(-1, jpaAutomationCompositionRollback.compareTo(null));
\r 
  92         assertEquals(0, jpaAutomationCompositionRollback.compareTo(jpaAutomationCompositionRollback));
\r 
  95     private AutomationCompositionRollback createAutomationCompositionRollbackInstance() {
\r 
  96         var testAcmRollback = new AutomationCompositionRollback();
\r 
  97         testAcmRollback.setInstanceId(UUID.fromString(INSTANCE_ID));
\r 
  98         testAcmRollback.setCompositionId(UUID.fromString(COMPOSITION_ID));
\r 
  99         Map<String, Object> map = new HashMap<>();
\r 
 100         map.put("test", "test");
\r 
 101         testAcmRollback.setElements(PfUtils.mapMap(map, UnaryOperator.identity()));
\r 
 103         return testAcmRollback;
\r