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 isPolicyTypesEquals_whenDescriptionIsDifferent_returnFalse() {
67 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
68 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
69 type2.setDescription("newDescription");
70 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
74 public void isPolicyTypesEquals_whenTargetsAreDifferent_returnFalse() {
75 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
76 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
77 type2.setTargets(new ArrayList<>());
78 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
82 public void isPolicyTypesEquals_whenDerivedFromIsDifferent_returnFalse() {
83 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
84 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
85 type2.setDerivedFrom("newDerivedFrom");
86 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
90 public void isPolicyTypesEquals_whenVersionIsDifferent_returnFalse() {
91 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
92 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
93 type2.setVersion("2.0");
94 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
98 public void isPolicyTypesEquals_whenMetadataIsDifferent_returnFalse() {
99 PolicyTypeDefinition type1 = createPolicyTypeWithAllFields();
100 PolicyTypeDefinition type2 = createPolicyTypeWithAllFields();
101 type2.setMetadata(ImmutableMap.of("newKey", "newVal"));
102 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
106 public void isPolicyTypeEquals_whenPropertiesListNotOfSameSize_returnFalse() {
107 PolicyTypeDefinition noProperties = new PolicyTypeDefinition();
108 PolicyTypeDefinition emptyProperties = new PolicyTypeBuilder().setProperties(Collections.emptyList()).build();
109 PolicyTypeDefinition oneProp = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"))).build();
110 PolicyTypeDefinition twoProps = new PolicyTypeBuilder().setProperties(Arrays.asList(createPropertyDefinitionWithAllFields("prop1"),
111 createPropertyDefinitionWithAllFields("prop2")))
113 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(noProperties, oneProp)).isFalse();
114 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(emptyProperties, oneProp)).isFalse();
115 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(twoProps, oneProp)).isFalse();
119 public void isPolicyTypeEquals_whenPropertiesSamePropertiesList_returnTrue() {
120 List<PropertyDefinition> propList = Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"));
121 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(propList).build();
122 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(propList).build();
123 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isTrue();
127 public void isPolicyTypeEquals_whenPropertiesListFieldsEquals_returnTrue() {
128 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"))).build();
129 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"))).build();
130 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isTrue();
134 public void isPolicyTypeEquals_whenPropertiesListDifferentInANonComparedFields_returnTrue() {
135 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
136 PropertyDefinition prop1DiffNonComparedFields = createPropertyDefinitionWithAllFields("prop1");
137 prop1DiffNonComparedFields.setOwnerId("newOwner");
138 prop1DiffNonComparedFields.setValue("newVal");
139 prop1DiffNonComparedFields.setConstraints(null);
140 prop1DiffNonComparedFields.setUniqueId("newId");
141 prop1DiffNonComparedFields.setHidden(true);
143 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
144 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffNonComparedFields)).build();
145 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isTrue();
149 public void isPolicyTypeEquals_whenPropertiesNotOfSameName_returnFalse() {
150 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop1"))).build();
151 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(createPropertyDefinitionWithAllFields("prop2"))).build();
152 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
156 public void isPolicyTypeEquals_whenPropertiesNotOFSameType_returnFalse() {
157 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
158 PropertyDefinition prop1TypeInteger = createPropertyDefinitionWithAllFields("prop1");
159 prop1TypeInteger.setType("integer");
161 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
162 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1TypeInteger)).build();
163 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
167 public void isPolicyTypeEquals_whenPropertiesNotOfSameDefaultVal_returnFalse() {
168 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
169 PropertyDefinition prop1DiffDefault = createPropertyDefinitionWithAllFields("prop1");
170 prop1DiffDefault.setDefaultValue("newDefVal");
172 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
173 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffDefault)).build();
174 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
178 public void isPolicyTypeEquals_whenPropertiesNotOfSameSchema_returnFalse() {
179 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
180 PropertyDefinition prop1DiffSchema = createPropertyDefinitionWithAllFields("prop1");
181 prop1DiffSchema.setSchema(null);
183 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
184 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffSchema)).build();
185 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
189 public void isPolicyTypeEquals_whenPropertiesIsPasswordFieldNotSame_returnFalse() {
190 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
191 PropertyDefinition prop1DiffIsPassword = createPropertyDefinitionWithAllFields("prop1");
192 prop1DiffIsPassword.setPassword(!prop1.isPassword());
194 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
195 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffIsPassword)).build();
196 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
200 public void isPolicyTypeEquals_whenPropertiesIsRequiredFieldNotSame_returnFalse() {
201 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
202 PropertyDefinition prop1DiffIsRequired = createPropertyDefinitionWithAllFields("prop1");
203 prop1DiffIsRequired.setRequired(!prop1.isRequired());
205 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
206 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffIsRequired)).build();
207 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
211 public void isPolicyTypeEquals_whenPropertiesNotSameDescription_returnFalse() {
212 PropertyDefinition prop1 = createPropertyDefinitionWithAllFields("prop1");
213 PropertyDefinition prop1DiffDescription = createPropertyDefinitionWithAllFields("prop1");
214 prop1DiffDescription.setDescription("newDescription");
216 PolicyTypeDefinition type1 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1)).build();
217 PolicyTypeDefinition type2 = new PolicyTypeBuilder().setProperties(Collections.singletonList(prop1DiffDescription)).build();
218 assertThat(PolicyTypeImportUtils.isPolicyTypesEquals(type1, type2)).isFalse();
221 private PolicyTypeDefinition createPolicyTypeWithAllFields() {
222 return new PolicyTypeBuilder()
224 .setDerivedFrom("derivedFrom")
226 .setDescription("description")
228 .setHighestVersion(true)
229 .setModificationTime(System.currentTimeMillis())
230 .setCreationTime(System.currentTimeMillis())
231 .setTargets(getTargets())
233 .setMetadata(ImmutableMap.of("key1", "val1", "key2", "val2"))
237 private PropertyDefinition createPropertyDefinitionWithAllFields(String name) {
238 return new PropertyDataDefinitionBuilder()
239 .setConstraints(Arrays.asList(new GreaterThanConstraint("abc"), new MinLengthConstraint(5)))
241 .setDefaultValue("val1")
245 .setSchemaType("string")
248 .setDescription("description")
249 .setIsPassword(false)
250 .setIsRequired(false)
254 private List<String> getTargets() {
256 return Collections.singletonList(UNIQUE_ID_EXSISTS);