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;
14 import static org.junit.Assert.assertFalse;
15 import static org.junit.Assert.assertTrue;
17 public class RelationsComparatorTest {
19 public static final String INSTANCE1 = "instance1";
20 public static final String INSTANCE2 = "instance2";
21 RelationsComparator testInstance;
23 private RequirementCapabilityRelDef relation1;
24 private RequirementCapabilityRelDef relation2;
25 private RequirementCapabilityRelDef relation3;
26 private RequirementCapabilityRelDef relation4;
27 private ComponentInstance componentInstance1;
28 private ComponentInstance componentInstance2;
32 testInstance = new RelationsComparator();
33 componentInstance1 = new ComponentInstanceBuilder().setName(INSTANCE1).setId(INSTANCE1).build();
34 componentInstance2 = new ComponentInstanceBuilder().setName(INSTANCE2).setId(INSTANCE2).build();
39 public void isRelationsChanged_sameRelationships() throws Exception {
40 Resource oldResource = ObjectGenerator.buildResourceWithRelationships(relation1, relation2, relation3, relation4);
41 oldResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
42 Resource newResource = ObjectGenerator.buildResourceWithRelationships(relation4, relation3, relation1, relation2);
43 newResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
44 assertFalse(testInstance.isRelationsChanged(oldResource, newResource));
48 public void isRelationsChanged_notSameAmountOfRelations() {
49 Resource oldResource = ObjectGenerator.buildResourceWithRelationships(relation1, relation2);
50 oldResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
51 Resource newResource = ObjectGenerator.buildResourceWithRelationships(relation1, relation2, relation3);
52 newResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
53 assertTrue(testInstance.isRelationsChanged(oldResource, newResource));
57 public void isRelationsChanged_notSameFromNode() throws Exception {
58 RequirementCapabilityRelDef relation2DifType = buildRelation("2", INSTANCE1);
59 relation2DifType.setFromNode(INSTANCE2);
60 isRelationsChangedTest(relation2DifType);
64 public void isRelationsChanged_notSameType() throws Exception {
65 RequirementCapabilityRelDef relation2DifType = buildRelation("2", INSTANCE1);
66 relation2DifType.resolveSingleRelationship().getRelation().getRelationship().setType("someDiffType");
67 isRelationsChangedTest(relation2DifType);
71 public void isRelationsChanged_notSameCapability() throws Exception {
72 RequirementCapabilityRelDef relation2DifType = buildRelation("2", INSTANCE1);
73 relation2DifType.resolveSingleRelationship().getRelation().setCapabilityUid("someDiffUid");
74 isRelationsChangedTest(relation2DifType);
78 public void isRelationsChanged_notSameReqName() throws Exception {
79 RequirementCapabilityRelDef relation2DifType = buildRelation("2", INSTANCE1);
80 relation2DifType.resolveSingleRelationship().getRelation().setRequirement("someDiffReq");
81 isRelationsChangedTest(relation2DifType);
85 public void isRelationsChanged_notSameToNode() throws Exception {
86 RequirementCapabilityRelDef relation2DifType = buildRelation("2", INSTANCE1);
87 relation2DifType.setToNode("someDiffNode");
88 isRelationsChangedTest(relation2DifType);
91 private void isRelationsChangedTest(RequirementCapabilityRelDef relation2DifType) {
92 Resource oldResource = ObjectGenerator.buildResourceWithRelationships(relation1, relation2);
93 oldResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
94 Resource newResource = ObjectGenerator.buildResourceWithRelationships(relation1, relation2DifType);
95 newResource.setComponentInstances(Arrays.asList(componentInstance1, componentInstance2));
96 assertTrue(testInstance.isRelationsChanged(oldResource, newResource));
100 private void buildRelations() {
101 relation1 = buildRelation("1", INSTANCE1);
102 relation2 = buildRelation("2", INSTANCE1);
103 relation3 = buildRelation("3", INSTANCE2);
104 relation4 = buildRelation("4", INSTANCE2);
107 private RequirementCapabilityRelDef buildRelation(String postFix, String instance) {
108 return new RelationsBuilder()
109 .setFromNode(instance)
110 .setCapabilityUID("cap" + postFix)
111 .setRelationType("type" + postFix)
112 .setRequirementName("req" + postFix)