2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2020-2021 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 ToscaCapabilityAssignment tca = new ToscaCapabilityAssignment();
49 tca.setVersion("1.2.3");
50 tca.setType("planet");
51 tca.setTypeVersion("4.5.6");
53 assertNotNull(new JpaToscaCapabilityAssignment());
54 assertNotNull(new JpaToscaCapabilityAssignment(new PfConceptKey()));
55 assertNotNull(new JpaToscaCapabilityAssignment(new JpaToscaCapabilityAssignment()));
56 assertNotNull(new JpaToscaCapabilityAssignment(tca));
58 assertThatThrownBy(() -> new JpaToscaCapabilityAssignment((PfConceptKey) null)).hasMessageMatching(KEY_IS_NULL);
59 assertThatThrownBy(() -> new JpaToscaCapabilityAssignment((JpaToscaCapabilityAssignment) null))
60 .hasMessageMatching("copyConcept is marked .*on.*ull but is null");
61 assertThatThrownBy(() -> new JpaToscaCapabilityAssignment((ToscaCapabilityAssignment) null))
62 .hasMessageMatching("authorativeConcept is marked .*on.*ull but is null");
64 PfConceptKey caKey = new PfConceptKey("tParentKey", "0.0.1");
66 JpaToscaCapabilityAssignment caNull = new JpaToscaCapabilityAssignment(caKey);
67 caNull.setProperties(null);
68 caNull.setAttributes(null);
69 caNull.setOccurrences(null);
71 assertEquals(caNull, new JpaToscaCapabilityAssignment(caNull));
73 JpaToscaCapabilityAssignment ca = new JpaToscaCapabilityAssignment(caKey);
75 assertEquals(ca, new JpaToscaCapabilityAssignment(ca));
76 assertEquals(caKey, ca.getKeys().get(0));
80 assertThat(ca.getProperties()).isNullOrEmpty();
81 assertThat(ca.getAttributes()).isNullOrEmpty();
83 ca.setProperties(null);
84 ca.setAttributes(null);
85 ca.setOccurrences(null);
88 assertEquals(null, ca.getProperties());
89 assertEquals(null, ca.getAttributes());
91 Map<String, String> properties = new LinkedHashMap<>();
92 properties.put("Key0", " Untrimmed Value ");
93 ca.setProperties(properties);
95 Map<String, String> attributes = new LinkedHashMap<>();
96 attributes.put("Key0", " Untrimmed Value ");
97 ca.setAttributes(attributes);
99 List<Integer> occurrences = new ArrayList<>();
100 occurrences.add(12345);
101 ca.setOccurrences(occurrences);
105 assertEquals("Untrimmed Value", ca.getProperties().get("Key0"));
106 assertEquals("Untrimmed Value", ca.getAttributes().get("Key0"));
108 ca.getProperties().put("Key1", null);
109 ca.getAttributes().put("Key1", null);
110 ca.getOccurrences().add(null);
111 ca.getOccurrences().add(-12345);
112 assertThat(ca.validate("").getResult())
113 .contains("properties").contains("Key1").contains(Validated.IS_NULL)
114 .contains("attributes").contains("Key1").contains(Validated.IS_NULL)
115 .contains("occurrence").contains("value").contains("is below the minimum value: 0");
119 public void testCompareTo() {
120 assertEquals(-1, new JpaToscaCapabilityAssignment().compareTo(null));
121 assertEquals(0, new JpaToscaCapabilityAssignment().compareTo(new JpaToscaCapabilityAssignment()));
123 JpaToscaCapabilityAssignment ca = new JpaToscaCapabilityAssignment();
124 assertEquals(0, ca.compareTo(ca));
125 assertEquals(18, ca.compareTo(new PfConceptKey()));
127 JpaToscaCapabilityAssignment ca2 = new JpaToscaCapabilityAssignment();
128 ca2.getKey().setName("ca2");
129 assertEquals(-21, ca.compareTo(ca2));
131 ca.getKey().setName("ca");
132 ca2.getKey().setName("ca");
134 ca.setProperties(new LinkedHashMap<>());
135 ca2.setProperties(new LinkedHashMap<>());
136 ca.getProperties().put("Key0", "Value0");
137 assertEquals(-1737938642, ca.compareTo(ca2));
138 ca2.getProperties().put("Key0", "Value0");
139 assertEquals(0, ca.compareTo(ca2));
141 ca.setAttributes(new LinkedHashMap<>());
142 ca2.setAttributes(new LinkedHashMap<>());
143 ca.getAttributes().put("Key0", "Value0");
144 assertEquals(-1737938642, ca.compareTo(ca2));
145 ca2.getAttributes().put("Key0", "Value0");
146 assertEquals(0, ca.compareTo(ca2));
148 ca.setOccurrences(new ArrayList<>());
149 ca2.setOccurrences(new ArrayList<>());
150 ca.getOccurrences().add(12345);
151 assertEquals(12375, ca.compareTo(ca2));
152 ca2.getOccurrences().add(12345);
153 assertEquals(0, ca.compareTo(ca2));
157 public void testAuthorative() {
158 ToscaCapabilityAssignment tca = new ToscaCapabilityAssignment();
159 tca.setName("world");
160 tca.setVersion("1.2.3");
161 tca.setType("planet");
162 tca.setTypeVersion("4.5.6");
164 ToscaCapabilityAssignment tcaConsTo =
165 new JpaToscaCapabilityAssignment(tca).toAuthorative();
167 assertEquals(tca, tcaConsTo);
169 JpaToscaCapabilityAssignment jtca = new JpaToscaCapabilityAssignment(tcaConsTo);
170 ToscaCapabilityAssignment tcaFromTo = jtca.toAuthorative();
171 assertEquals(tca, tcaFromTo);