1 package org.openecomp.sdc.be.components.impl.utils;
3 import com.google.common.collect.ImmutableMap;
5 import org.openecomp.sdc.be.components.utils.PolicyTypeBuilder;
6 import org.openecomp.sdc.be.components.utils.PropertyDataDefinitionBuilder;
7 import org.openecomp.sdc.be.model.PolicyTypeDefinition;
8 import org.openecomp.sdc.be.model.PropertyDefinition;
9 import org.openecomp.sdc.be.model.tosca.constraints.GreaterThanConstraint;
10 import org.openecomp.sdc.be.model.tosca.constraints.MinLengthConstraint;
12 import java.util.ArrayList;
13 import java.util.Arrays;
14 import java.util.Collections;
15 import java.util.List;
17 import static org.assertj.core.api.Assertions.assertThat;
20 public class PolicyTypeImportUtilsTest {
22 private static final String UNIQUE_ID_EXSISTS = "uniqueId";
25 public void isPolicyTypesEquals_whenBothTypesAreNull_returnTrue() {
26 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(null, null)).isTrue();
30 public void isPolicyTypesEquals_whenOneTypeIsNull_returnFalse() {
31 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(new PolicyTypeDefinition(), null)).isFalse();
32 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(null, new PolicyTypeDefinition())).isFalse();
36 public void isPolicyTypesEquals_whenTypesIsSameObject_returnTrue() {
37 PolicyTypeDefinition policyType = new PolicyTypeDefinition();
38 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(policyType, policyType)).isTrue();
42 public void isPolicyTypesEquals_allFieldsEquals_returnTrue() {
43 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(createPolicyTypeWithAllFields(), createPolicyTypeWithAllFields())).isTrue();
47 public void isPolicyTypeEquals_whenTypesAreDifferentInANonCompareFields_returnTrue() {
48 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
49 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
50 type2.setOwnerId("ownerIdNew");
51 type2.setModificationTime(System.currentTimeMillis());
52 type2.setCreationTime(System.currentTimeMillis());
53 type2.setUniqueId("uniqueIdNew");
54 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isTrue();
58 public void isPolicyTypesEquals_whenTypeIsDifferent_returnFalse() {
59 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
60 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
61 type2.setType("newType");
62 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
66 public void whenNameIsDifferent_returnFalse() {
67 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
68 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
69 type2.setName("newName");
70 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
74 public void whenIconIsDifferent_returnFalse() {
75 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
76 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
77 type2.setIcon("newIcon");
78 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
82 public void isPolicyTypesEquals_whenDescriptionIsDifferent_returnFalse() {
83 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
84 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
85 type2.setDescription("newDescription");
86 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
90 public void isPolicyTypesEquals_whenTargetsAreDifferent_returnFalse() {
91 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
92 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
93 type2.setTargets(new ArrayList<>());
94 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
98 public void isPolicyTypesEquals_whenDerivedFromIsDifferent_returnFalse() {
99 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
100 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
101 type2.setDerivedFrom("newDerivedFrom");
102 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
106 public void isPolicyTypesEquals_whenVersionIsDifferent_returnFalse() {
107 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
108 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
109 type2.setVersion("2.0");
110 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
114 public void isPolicyTypesEquals_whenMetadataIsDifferent_returnFalse() {
115 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
116 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
117 type2.setMetadata(ImmutableMap.of("newKey", "newVal"));
118 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
122 public void whenBothPropertiesListNull_returnTrue() {
123 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals( new PolicyTypeDefinition(), new PolicyTypeDefinition())).isTrue();
127 public void whenOnePropertiesListIsNullAndSecondOneIsEmpty_returnTrue() {
128 PolicyTypeDefinition noProperties = new PolicyTypeDefinition();
129 PolicyTypeDefinition emptyProperties = new PolicyTypeBuilder().setProperties(Collections.emptyList()).build();
130 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(noProperties, emptyProperties)).isTrue();
131 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(emptyProperties, noProperties)).isTrue();
135 public void isPolicyTypeEquals_whenPropertiesListNotOfSameSize_returnFalse() {
136 PolicyTypeDefinition noProperties = new PolicyTypeDefinition();
137 PolicyTypeDefinition emptyProperties = new PolicyTypeBuilder().setProperties(Collections.emptyList()).build();
138 PolicyTypeDefinition oneProp = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"))).build();
139 PolicyTypeDefinition twoProps = new PolicyTypeBuilder().setProperties(Arrays.asList(createPropertyDefinitionWithAllFields("prop1"),
140 createPropertyDefinitionWithAllFields("prop2")))
142 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(noProperties, oneProp)).isFalse();
143 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(emptyProperties, oneProp)).isFalse();
144 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(twoProps, oneProp)).isFalse();
148 public void isPolicyTypeEquals_whenPropertiesSamePropertiesList_returnTrue() {
149 List<PropertyDefinition> propList = Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"));
150 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(propList).build();
151 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(propList).build();
152 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isTrue();
156 public void isPolicyTypeEquals_whenPropertiesListFieldsEquals_returnTrue() {
157 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"))).build();
158 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"))).build();
159 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isTrue();
163 public void isPolicyTypeEquals_whenPropertiesListDifferentInANonComparedFields_returnTrue() {
164 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
165 PropertyDefinition prop1DiffNonComparedFields = createPropertyDefinitionWithAllFields("prop1");
166 prop1DiffNonComparedFields.setOwnerId("newOwner");
167 prop1DiffNonComparedFields.setValue("newVal");
168 prop1DiffNonComparedFields.setConstraints(null);
169 prop1DiffNonComparedFields.setUniqueId("newId");
170 prop1DiffNonComparedFields.setHidden(true);
172 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
173 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffNonComparedFields)).build();
174 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isTrue();
178 public void isPolicyTypeEquals_whenPropertiesNotOfSameName_returnFalse() {
179 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"))).build();
180 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop2"))).build();
181 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
185 public void isPolicyTypeEquals_whenPropertiesNotOFSameType_returnFalse() {
186 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
187 PropertyDefinition prop1TypeInteger = createPropertyDefinitionWithAllFields("prop1");
188 prop1TypeInteger.setType("integer");
190 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
191 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1TypeInteger)).build();
192 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
196 public void isPolicyTypeEquals_whenPropertiesNotOfSameDefaultVal_returnFalse() {
197 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
198 PropertyDefinition prop1DiffDefault = createPropertyDefinitionWithAllFields("prop1");
199 prop1DiffDefault.setDefaultValue("newDefVal");
201 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
202 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffDefault)).build();
203 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
207 public void isPolicyTypeEquals_whenPropertiesNotOfSameSchema_returnFalse() {
208 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
209 PropertyDefinition prop1DiffSchema = createPropertyDefinitionWithAllFields("prop1");
210 prop1DiffSchema.setSchema(null);
212 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
213 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffSchema)).build();
214 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
218 public void isPolicyTypeEquals_whenPropertiesIsPasswordFieldNotSame_returnFalse() {
219 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
220 PropertyDefinition prop1DiffIsPassword = createPropertyDefinitionWithAllFields("prop1");
221 prop1DiffIsPassword.setPassword(!prop1.isPassword());
223 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
224 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffIsPassword)).build();
225 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
229 public void isPolicyTypeEquals_whenPropertiesIsRequiredFieldNotSame_returnFalse() {
230 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
231 PropertyDefinition prop1DiffIsRequired = createPropertyDefinitionWithAllFields("prop1");
232 prop1DiffIsRequired.setRequired(!prop1.isRequired());
234 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
235 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffIsRequired)).build();
236 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
240 public void isPolicyTypeEquals_whenPropertiesNotSameDescription_returnFalse() {
241 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
242 PropertyDefinition prop1DiffDescription = createPropertyDefinitionWithAllFields("prop1");
243 prop1DiffDescription.setDescription("newDescription");
245 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
246 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffDescription)).build();
247 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
250 private PolicyTypeDefinition createPolicyTypeWithAllFields() {
251 return new PolicyTypeBuilder()
253 .setDerivedFrom("derivedFrom")
255 .setDescription("description")
257 .setHighestVersion(true)
258 .setModificationTime(System.currentTimeMillis())
259 .setCreationTime(System.currentTimeMillis())
260 .setTargets(getTargets())
264 .setMetadata(ImmutableMap.of("key1", "val1", "key2", "val2"))
268 private PropertyDefinition createPropertyDefinitionWithAllFields(String name) {
269 return new PropertyDataDefinitionBuilder()
270 .setConstraints(Arrays.asList(new GreaterThanConstraint("abc"), new MinLengthConstraint(5)))
272 .setDefaultValue("val1")
276 .setSchemaType("string")
279 .setDescription("description")
280 .setIsPassword(false)
281 .setIsRequired(false)
285 private List<String> getTargets() {
287 return Collections.singletonList(UNIQUE_ID_EXSISTS);