2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.be.components.impl.utils;
23 import com.google.common.collect.ImmutableMap;
24 import org.junit.Test;
25 import org.openecomp.sdc.be.components.utils.PolicyTypeBuilder;
26 import org.openecomp.sdc.be.components.utils.PropertyDataDefinitionBuilder;
27 import org.openecomp.sdc.be.model.PolicyTypeDefinition;
28 import org.openecomp.sdc.be.model.PropertyDefinition;
29 import org.openecomp.sdc.be.model.tosca.constraints.GreaterThanConstraint;
30 import org.openecomp.sdc.be.model.tosca.constraints.MinLengthConstraint;
32 import java.util.ArrayList;
33 import java.util.Arrays;
34 import java.util.Collections;
35 import java.util.List;
37 import static org.assertj.core.api.Assertions.assertThat;
40 public class PolicyTypeImportUtilsTest {
42 private static final String UNIQUE_ID_EXSISTS = "uniqueId";
45 public void isPolicyTypesEquals_whenBothTypesAreNull_returnTrue() {
46 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(null, null)).isTrue();
50 public void isPolicyTypesEquals_whenOneTypeIsNull_returnFalse() {
51 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(new PolicyTypeDefinition(), null)).isFalse();
52 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(null, new PolicyTypeDefinition())).isFalse();
56 public void isPolicyTypesEquals_whenTypesIsSameObject_returnTrue() {
57 PolicyTypeDefinition policyType = new PolicyTypeDefinition();
58 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(policyType, policyType)).isTrue();
62 public void isPolicyTypesEquals_allFieldsEquals_returnTrue() {
63 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(createPolicyTypeWithAllFields(), createPolicyTypeWithAllFields())).isTrue();
67 public void isPolicyTypeEquals_whenTypesAreDifferentInANonCompareFields_returnTrue() {
68 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
69 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
70 type2.setOwnerId("ownerIdNew");
71 type2.setModificationTime(System.currentTimeMillis());
72 type2.setCreationTime(System.currentTimeMillis());
73 type2.setUniqueId("uniqueIdNew");
74 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isTrue();
78 public void isPolicyTypesEquals_whenTypeIsDifferent_returnFalse() {
79 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
80 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
81 type2.setType("newType");
82 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
86 public void whenNameIsDifferent_returnFalse() {
87 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
88 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
89 type2.setName("newName");
90 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
94 public void whenIconIsDifferent_returnFalse() {
95 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
96 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
97 type2.setIcon("newIcon");
98 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
102 public void isPolicyTypesEquals_whenDescriptionIsDifferent_returnFalse() {
103 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
104 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
105 type2.setDescription("newDescription");
106 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
110 public void isPolicyTypesEquals_whenTargetsAreDifferent_returnFalse() {
111 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
112 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
113 type2.setTargets(new ArrayList<>());
114 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
118 public void isPolicyTypesEquals_whenDerivedFromIsDifferent_returnFalse() {
119 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
120 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
121 type2.setDerivedFrom("newDerivedFrom");
122 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
126 public void isPolicyTypesEquals_whenVersionIsDifferent_returnFalse() {
127 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
128 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
129 type2.setVersion("2.0");
130 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
134 public void isPolicyTypesEquals_whenMetadataIsDifferent_returnFalse() {
135 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
136 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
137 type2.setMetadata(ImmutableMap.of("newKey", "newVal"));
138 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
142 public void whenBothPropertiesListNull_returnTrue() {
143 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals( new PolicyTypeDefinition(), new PolicyTypeDefinition())).isTrue();
147 public void whenOnePropertiesListIsNullAndSecondOneIsEmpty_returnTrue() {
148 PolicyTypeDefinition noProperties = new PolicyTypeDefinition();
149 PolicyTypeDefinition emptyProperties = new PolicyTypeBuilder().setProperties(Collections.emptyList()).build();
150 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(noProperties, emptyProperties)).isTrue();
151 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(emptyProperties, noProperties)).isTrue();
155 public void isPolicyTypeEquals_whenPropertiesListNotOfSameSize_returnFalse() {
156 PolicyTypeDefinition noProperties = new PolicyTypeDefinition();
157 PolicyTypeDefinition emptyProperties = new PolicyTypeBuilder().setProperties(Collections.emptyList()).build();
158 PolicyTypeDefinition oneProp = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"))).build();
159 PolicyTypeDefinition twoProps = new PolicyTypeBuilder().setProperties(Arrays.asList(createPropertyDefinitionWithAllFields("prop1"),
160 createPropertyDefinitionWithAllFields("prop2")))
162 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(noProperties, oneProp)).isFalse();
163 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(emptyProperties, oneProp)).isFalse();
164 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(twoProps, oneProp)).isFalse();
168 public void isPolicyTypeEquals_whenPropertiesSamePropertiesList_returnTrue() {
169 List<PropertyDefinition> propList = Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"));
170 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(propList).build();
171 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(propList).build();
172 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isTrue();
176 public void isPolicyTypeEquals_whenPropertiesListFieldsEquals_returnTrue() {
177 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"))).build();
178 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"))).build();
179 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isTrue();
183 public void isPolicyTypeEquals_whenPropertiesListDifferentInANonComparedFields_returnTrue() {
184 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
185 PropertyDefinition prop1DiffNonComparedFields = createPropertyDefinitionWithAllFields("prop1");
186 prop1DiffNonComparedFields.setOwnerId("newOwner");
187 prop1DiffNonComparedFields.setValue("newVal");
188 prop1DiffNonComparedFields.setConstraints(null);
189 prop1DiffNonComparedFields.setUniqueId("newId");
190 prop1DiffNonComparedFields.setHidden(true);
192 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
193 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffNonComparedFields)).build();
194 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isTrue();
198 public void isPolicyTypeEquals_whenPropertiesNotOfSameName_returnFalse() {
199 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"))).build();
200 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop2"))).build();
201 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
205 public void isPolicyTypeEquals_whenPropertiesNotOFSameType_returnFalse() {
206 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
207 PropertyDefinition prop1TypeInteger = createPropertyDefinitionWithAllFields("prop1");
208 prop1TypeInteger.setType("integer");
210 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
211 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1TypeInteger)).build();
212 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
216 public void isPolicyTypeEquals_whenPropertiesNotOfSameDefaultVal_returnFalse() {
217 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
218 PropertyDefinition prop1DiffDefault = createPropertyDefinitionWithAllFields("prop1");
219 prop1DiffDefault.setDefaultValue("newDefVal");
221 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
222 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffDefault)).build();
223 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
227 public void isPolicyTypeEquals_whenPropertiesNotOfSameSchema_returnFalse() {
228 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
229 PropertyDefinition prop1DiffSchema = createPropertyDefinitionWithAllFields("prop1");
230 prop1DiffSchema.setSchema(null);
232 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
233 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffSchema)).build();
234 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
238 public void isPolicyTypeEquals_whenPropertiesIsPasswordFieldNotSame_returnFalse() {
239 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
240 PropertyDefinition prop1DiffIsPassword = createPropertyDefinitionWithAllFields("prop1");
241 prop1DiffIsPassword.setPassword(!prop1.isPassword());
243 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
244 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffIsPassword)).build();
245 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
249 public void isPolicyTypeEquals_whenPropertiesIsRequiredFieldNotSame_returnFalse() {
250 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
251 PropertyDefinition prop1DiffIsRequired = createPropertyDefinitionWithAllFields("prop1");
252 prop1DiffIsRequired.setRequired(!prop1.isRequired());
254 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
255 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffIsRequired)).build();
256 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
260 public void isPolicyTypeEquals_whenPropertiesNotSameDescription_returnFalse() {
261 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
262 PropertyDefinition prop1DiffDescription = createPropertyDefinitionWithAllFields("prop1");
263 prop1DiffDescription.setDescription("newDescription");
265 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
266 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffDescription)).build();
267 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
270 private PolicyTypeDefinition createPolicyTypeWithAllFields() {
271 return new PolicyTypeBuilder()
273 .setDerivedFrom("derivedFrom")
275 .setDescription("description")
277 .setHighestVersion(true)
278 .setModificationTime(System.currentTimeMillis())
279 .setCreationTime(System.currentTimeMillis())
280 .setTargets(getTargets())
284 .setMetadata(ImmutableMap.of("key1", "val1", "key2", "val2"))
288 private PropertyDefinition createPropertyDefinitionWithAllFields(String name) {
289 return new PropertyDataDefinitionBuilder()
290 .setConstraints(Arrays.asList(new GreaterThanConstraint("abc"), new MinLengthConstraint(5)))
292 .setDefaultValue("val1")
296 .setSchemaType("string")
299 .setDescription("description")
300 .setIsPassword(false)
301 .setIsRequired(false)
305 private List<String> getTargets() {
307 return Collections.singletonList(UNIQUE_ID_EXSISTS);