2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2020 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.models.tosca.simple.concepts;
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.assertj.core.api.Assertions.assertThatThrownBy;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNotNull;
28 import java.util.ArrayList;
29 import java.util.LinkedHashMap;
30 import java.util.List;
32 import org.junit.Test;
33 import org.onap.policy.models.base.PfConceptKey;
34 import org.onap.policy.models.base.PfValidationResult;
35 import org.onap.policy.models.tosca.authorative.concepts.ToscaCapabilityAssignment;
38 * DAO test for JpaToscaCapabilityAssignment.
40 public class JpaToscaCapabilityAssignmentTest {
42 private static final String KEY_IS_NULL = "key is marked .*on.*ull but is null";
45 public void testPropertyPojo() {
46 assertNotNull(new JpaToscaCapabilityAssignment());
47 assertNotNull(new JpaToscaCapabilityAssignment(new PfConceptKey()));
48 assertNotNull(new JpaToscaCapabilityAssignment(new JpaToscaCapabilityAssignment()));
49 assertNotNull(new JpaToscaCapabilityAssignment(new ToscaCapabilityAssignment()));
51 assertThatThrownBy(() -> new JpaToscaCapabilityAssignment((PfConceptKey) null)).hasMessageMatching(KEY_IS_NULL);
52 assertThatThrownBy(() -> new JpaToscaCapabilityAssignment((JpaToscaCapabilityAssignment) null))
53 .hasMessageMatching("copyConcept is marked .*on.*ull but is null");
54 assertThatThrownBy(() -> new JpaToscaCapabilityAssignment((ToscaCapabilityAssignment) null))
55 .hasMessageMatching("authorativeConcept is marked .*on.*ull but is null");
57 PfConceptKey caKey = new PfConceptKey("tParentKey", "0.0.1");
59 JpaToscaCapabilityAssignment caNull = new JpaToscaCapabilityAssignment(caKey);
60 caNull.setProperties(null);
61 caNull.setAttributes(null);
62 caNull.setOccurrences(null);
64 assertEquals(caNull, new JpaToscaCapabilityAssignment(caNull));
66 JpaToscaCapabilityAssignment ca = new JpaToscaCapabilityAssignment(caKey);
68 assertEquals(ca, new JpaToscaCapabilityAssignment(ca));
69 assertEquals(caKey, ca.getKeys().get(0));
72 ca.validate(new PfValidationResult());
73 assertThat(ca.getProperties()).isNullOrEmpty();
74 assertThat(ca.getAttributes()).isNullOrEmpty();
76 ca.setProperties(null);
77 ca.setAttributes(null);
78 ca.setOccurrences(null);
80 ca.validate(new PfValidationResult());
81 assertEquals(null, ca.getProperties());
82 assertEquals(null, ca.getAttributes());
84 Map<String, String> properties = new LinkedHashMap<>();
85 properties.put("Key0", " Untrimmed Value ");
86 ca.setProperties(properties);
88 Map<String, String> attributes = new LinkedHashMap<>();
89 attributes.put("Key0", " Untrimmed Value ");
90 ca.setAttributes(attributes);
92 List<Integer> occurrences = new ArrayList<>();
93 occurrences.add(12345);
94 ca.setOccurrences(occurrences);
97 ca.validate(new PfValidationResult());
98 assertEquals("Untrimmed Value", ca.getProperties().get("Key0"));
99 assertEquals("Untrimmed Value", ca.getAttributes().get("Key0"));
101 ca.getProperties().put("Key1", null);
102 ca.getAttributes().put("Key1", null);
103 ca.getOccurrences().add(null);
104 ca.getOccurrences().add(-12345);
105 PfValidationResult result = ca.validate(new PfValidationResult());
106 assertThat(result.toString()).contains("capability assignment property Key1 value may not be null");
107 assertThat(result.toString()).contains("capability assignment attribute Key1 value may not be null");
108 assertThat(result.toString()).contains("capability assignment occurrence value may not be negative");
112 public void testCompareTo() {
113 assertEquals(-1, new JpaToscaCapabilityAssignment().compareTo(null));
114 assertEquals(0, new JpaToscaCapabilityAssignment().compareTo(new JpaToscaCapabilityAssignment()));
116 JpaToscaCapabilityAssignment ca = new JpaToscaCapabilityAssignment();
117 assertEquals(0, ca.compareTo(ca));
118 assertEquals(18, ca.compareTo(new PfConceptKey()));
120 JpaToscaCapabilityAssignment ca2 = new JpaToscaCapabilityAssignment();
121 ca2.getKey().setName("ca2");
122 assertEquals(-21, ca.compareTo(ca2));
124 ca.getKey().setName("ca");
125 ca2.getKey().setName("ca");
127 ca.setProperties(new LinkedHashMap<>());
128 ca2.setProperties(new LinkedHashMap<>());
129 ca.getProperties().put("Key0", "Value0");
130 assertEquals(-1737938642, ca.compareTo(ca2));
131 ca2.getProperties().put("Key0", "Value0");
132 assertEquals(0, ca.compareTo(ca2));
134 ca.setAttributes(new LinkedHashMap<>());
135 ca2.setAttributes(new LinkedHashMap<>());
136 ca.getAttributes().put("Key0", "Value0");
137 assertEquals(-1737938642, ca.compareTo(ca2));
138 ca2.getAttributes().put("Key0", "Value0");
139 assertEquals(0, ca.compareTo(ca2));
141 ca.setOccurrences(new ArrayList<>());
142 ca2.setOccurrences(new ArrayList<>());
143 ca.getOccurrences().add(12345);
144 assertEquals(12375, ca.compareTo(ca2));
145 ca2.getOccurrences().add(12345);
146 assertEquals(0, ca.compareTo(ca2));
150 public void testAuthorative() {
151 ToscaCapabilityAssignment tca =
152 new JpaToscaCapabilityAssignment(new ToscaCapabilityAssignment()).toAuthorative();
154 JpaToscaCapabilityAssignment jtca = new JpaToscaCapabilityAssignment(tca);
155 ToscaCapabilityAssignment tca2 = jtca.toAuthorative();
156 assertEquals(tca, tca2);