2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2020 Nordix Foundation.
4 * Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.models.tosca.simple.concepts;
24 import static org.assertj.core.api.Assertions.assertThat;
25 import static org.assertj.core.api.Assertions.assertThatThrownBy;
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertNotNull;
29 import java.util.ArrayList;
30 import java.util.LinkedHashMap;
31 import java.util.List;
33 import org.junit.Test;
34 import org.onap.policy.models.base.PfConceptKey;
35 import org.onap.policy.models.base.Validated;
36 import org.onap.policy.models.tosca.authorative.concepts.ToscaCapabilityAssignment;
39 * DAO test for JpaToscaCapabilityAssignment.
41 public class JpaToscaCapabilityAssignmentTest {
43 private static final String KEY_IS_NULL = "key is marked .*on.*ull but is null";
46 public void testPropertyPojo() {
47 assertNotNull(new JpaToscaCapabilityAssignment());
48 assertNotNull(new JpaToscaCapabilityAssignment(new PfConceptKey()));
49 assertNotNull(new JpaToscaCapabilityAssignment(new JpaToscaCapabilityAssignment()));
50 assertNotNull(new JpaToscaCapabilityAssignment(new ToscaCapabilityAssignment()));
52 assertThatThrownBy(() -> new JpaToscaCapabilityAssignment((PfConceptKey) null)).hasMessageMatching(KEY_IS_NULL);
53 assertThatThrownBy(() -> new JpaToscaCapabilityAssignment((JpaToscaCapabilityAssignment) null))
54 .hasMessageMatching("copyConcept is marked .*on.*ull but is null");
55 assertThatThrownBy(() -> new JpaToscaCapabilityAssignment((ToscaCapabilityAssignment) null))
56 .hasMessageMatching("authorativeConcept is marked .*on.*ull but is null");
58 PfConceptKey caKey = new PfConceptKey("tParentKey", "0.0.1");
60 JpaToscaCapabilityAssignment caNull = new JpaToscaCapabilityAssignment(caKey);
61 caNull.setProperties(null);
62 caNull.setAttributes(null);
63 caNull.setOccurrences(null);
65 assertEquals(caNull, new JpaToscaCapabilityAssignment(caNull));
67 JpaToscaCapabilityAssignment ca = new JpaToscaCapabilityAssignment(caKey);
69 assertEquals(ca, new JpaToscaCapabilityAssignment(ca));
70 assertEquals(caKey, ca.getKeys().get(0));
74 assertThat(ca.getProperties()).isNullOrEmpty();
75 assertThat(ca.getAttributes()).isNullOrEmpty();
77 ca.setProperties(null);
78 ca.setAttributes(null);
79 ca.setOccurrences(null);
82 assertEquals(null, ca.getProperties());
83 assertEquals(null, ca.getAttributes());
85 Map<String, String> properties = new LinkedHashMap<>();
86 properties.put("Key0", " Untrimmed Value ");
87 ca.setProperties(properties);
89 Map<String, String> attributes = new LinkedHashMap<>();
90 attributes.put("Key0", " Untrimmed Value ");
91 ca.setAttributes(attributes);
93 List<Integer> occurrences = new ArrayList<>();
94 occurrences.add(12345);
95 ca.setOccurrences(occurrences);
99 assertEquals("Untrimmed Value", ca.getProperties().get("Key0"));
100 assertEquals("Untrimmed Value", ca.getAttributes().get("Key0"));
102 ca.getProperties().put("Key1", null);
103 ca.getAttributes().put("Key1", null);
104 ca.getOccurrences().add(null);
105 ca.getOccurrences().add(-12345);
106 assertThat(ca.validate("").getResult())
107 .contains("properties").contains("Key1").contains(Validated.IS_NULL)
108 .contains("attributes").contains("Key1").contains(Validated.IS_NULL)
109 .contains("occurrence").contains("value").contains("is below the minimum value: 0");
113 public void testCompareTo() {
114 assertEquals(-1, new JpaToscaCapabilityAssignment().compareTo(null));
115 assertEquals(0, new JpaToscaCapabilityAssignment().compareTo(new JpaToscaCapabilityAssignment()));
117 JpaToscaCapabilityAssignment ca = new JpaToscaCapabilityAssignment();
118 assertEquals(0, ca.compareTo(ca));
119 assertEquals(18, ca.compareTo(new PfConceptKey()));
121 JpaToscaCapabilityAssignment ca2 = new JpaToscaCapabilityAssignment();
122 ca2.getKey().setName("ca2");
123 assertEquals(-21, ca.compareTo(ca2));
125 ca.getKey().setName("ca");
126 ca2.getKey().setName("ca");
128 ca.setProperties(new LinkedHashMap<>());
129 ca2.setProperties(new LinkedHashMap<>());
130 ca.getProperties().put("Key0", "Value0");
131 assertEquals(-1737938642, ca.compareTo(ca2));
132 ca2.getProperties().put("Key0", "Value0");
133 assertEquals(0, ca.compareTo(ca2));
135 ca.setAttributes(new LinkedHashMap<>());
136 ca2.setAttributes(new LinkedHashMap<>());
137 ca.getAttributes().put("Key0", "Value0");
138 assertEquals(-1737938642, ca.compareTo(ca2));
139 ca2.getAttributes().put("Key0", "Value0");
140 assertEquals(0, ca.compareTo(ca2));
142 ca.setOccurrences(new ArrayList<>());
143 ca2.setOccurrences(new ArrayList<>());
144 ca.getOccurrences().add(12345);
145 assertEquals(12375, ca.compareTo(ca2));
146 ca2.getOccurrences().add(12345);
147 assertEquals(0, ca.compareTo(ca2));
151 public void testAuthorative() {
152 ToscaCapabilityAssignment tca =
153 new JpaToscaCapabilityAssignment(new ToscaCapabilityAssignment()).toAuthorative();
155 JpaToscaCapabilityAssignment jtca = new JpaToscaCapabilityAssignment(tca);
156 ToscaCapabilityAssignment tca2 = jtca.toAuthorative();
157 assertEquals(tca, tca2);