1 package org.openecomp.sdc.be.components.merge;
3 import org.junit.Before;
5 import org.openecomp.sdc.be.components.utils.ComponentInstanceBuilder;
6 import org.openecomp.sdc.be.components.utils.ObjectGenerator;
7 import org.openecomp.sdc.be.components.utils.RelationsBuilder;
8 import org.openecomp.sdc.be.model.ComponentInstance;
9 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
10 import org.openecomp.sdc.be.model.Resource;
12 import java.util.Arrays;
13 import java.util.LinkedList;
15 import static org.junit.Assert.assertFalse;
16 import static org.junit.Assert.assertTrue;
18 public class RelationsComparatorTest {
20 public static final String INSTANCE1 = "instance1";
21 public static final String INSTANCE2 = "instance2";
22 RelationsComparator testInstance;
24 private RequirementCapabilityRelDef relation1;
25 private RequirementCapabilityRelDef relation2;
26 private RequirementCapabilityRelDef relation3;
27 private RequirementCapabilityRelDef relation4;
28 private ComponentInstance componentInstance1;
29 private ComponentInstance componentInstance2;
33 testInstance = new RelationsComparator();
34 componentInstance1 = new ComponentInstanceBuilder().setName(INSTANCE1).setId(INSTANCE1).build();
35 componentInstance2 = new ComponentInstanceBuilder().setName(INSTANCE2).setId(INSTANCE2).build();
40 public void isRelationsChanged_sameRelationships() throws Exception {
41 Resource oldResource = ObjectGenerator.buildResourceWithRelationships(relation1, relation2, relation3, relation4);
42 oldResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
43 Resource newResource = ObjectGenerator.buildResourceWithRelationships(relation4, relation3, relation1, relation2);
44 newResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
45 assertFalse(testInstance.isRelationsChanged(oldResource, newResource));
49 public void isRelationsChanged_OldResourceNull() throws Exception {
50 Resource oldResource = ObjectGenerator.buildResourceWithRelationships();
51 oldResource.setComponentInstancesRelations(new LinkedList<>());
52 oldResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
53 Resource newResource = ObjectGenerator.buildResourceWithRelationships(relation4, relation3, relation1, relation2);
54 newResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
55 assertTrue(testInstance.isRelationsChanged(oldResource, newResource));
59 public void isRelationsChanged_notSameAmountOfRelations() {
60 Resource oldResource = ObjectGenerator.buildResourceWithRelationships(relation1, relation2);
61 oldResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
62 Resource newResource = ObjectGenerator.buildResourceWithRelationships(relation1, relation2, relation3);
63 newResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
64 assertTrue(testInstance.isRelationsChanged(oldResource, newResource));
68 public void isRelationsChanged_notSameFromNode() throws Exception {
69 RequirementCapabilityRelDef relation2DifType = buildRelation("2", INSTANCE1);
70 relation2DifType.setFromNode(INSTANCE2);
71 isRelationsChangedTest(relation2DifType);
75 public void isRelationsChanged_notSameType() throws Exception {
76 RequirementCapabilityRelDef relation2DifType = buildRelation("2", INSTANCE1);
77 relation2DifType.resolveSingleRelationship().getRelation().getRelationship().setType("someDiffType");
78 isRelationsChangedTest(relation2DifType);
82 public void isRelationsChanged_notSameCapability() throws Exception {
83 RequirementCapabilityRelDef relation2DifType = buildRelation("2", INSTANCE1);
84 relation2DifType.resolveSingleRelationship().getRelation().setCapabilityUid("someDiffUid");
85 isRelationsChangedTest(relation2DifType);
89 public void isRelationsChanged_notSameReqName() throws Exception {
90 RequirementCapabilityRelDef relation2DifType = buildRelation("2", INSTANCE1);
91 relation2DifType.resolveSingleRelationship().getRelation().setRequirement("someDiffReq");
92 isRelationsChangedTest(relation2DifType);
96 public void isRelationsChanged_notSameToNode() throws Exception {
97 RequirementCapabilityRelDef relation2DifType = buildRelation("2", INSTANCE1);
98 relation2DifType.setToNode("someDiffNode");
99 isRelationsChangedTest(relation2DifType);
102 private void isRelationsChangedTest(RequirementCapabilityRelDef relation2DifType) {
103 Resource oldResource = ObjectGenerator.buildResourceWithRelationships(relation1, relation2);
104 oldResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
105 Resource newResource = ObjectGenerator.buildResourceWithRelationships(relation1, relation2DifType);
106 newResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
107 assertTrue(testInstance.isRelationsChanged(oldResource, newResource));
111 private void buildRelations() {
112 relation1 = buildRelation("1", INSTANCE1);
113 relation2 = buildRelation("2", INSTANCE1);
114 relation3 = buildRelation("3", INSTANCE2);
115 relation4 = buildRelation("4", INSTANCE2);
118 private RequirementCapabilityRelDef buildRelation(String postFix, String instance) {
119 return new RelationsBuilder()
120 .setFromNode(instance)
121 .setCapabilityUID("cap" + postFix)
122 .setRelationType("type" + postFix)
123 .setRequirementName("req" + postFix)