aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance')
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceArtifactsMergeTest.java24
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesMergeBLTest.java36
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesPropertiesMergeTest.java (renamed from catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabiliteisPropertiesMergeTest.java)24
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceHeatEnvMergeTest.java20
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceInputsRedeclareHandlerTest.java132
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceMergeDataBusinessLogicTest.java28
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstancePropsAndInputsMergeTest.java49
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceRelationMergeTest.java354
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ContainerRelationsMergeInfoTest.java34
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/DataForMergeHolderTest.java17
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ExternalRefsMergeBLTest.java97
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/RelationMergeInfoTest.java46
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/VfRelationsMergeInfoTest.java52
13 files changed, 561 insertions, 352 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceArtifactsMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceArtifactsMergeTest.java
index 3f3fc26558..d4d79b94ce 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceArtifactsMergeTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceArtifactsMergeTest.java
@@ -1,13 +1,6 @@
package org.openecomp.sdc.be.components.merge.instance;
-import static junit.framework.TestCase.assertEquals;
-import static org.mockito.Mockito.when;
-
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
+import fj.data.Either;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
@@ -16,17 +9,18 @@ import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic;
import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationInfo;
-import org.openecomp.sdc.be.model.ArtifactDefinition;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ComponentInstance;
-import org.openecomp.sdc.be.model.Operation;
-import org.openecomp.sdc.be.model.Resource;
-import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.model.*;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
import org.openecomp.sdc.exception.ResponseFormat;
-import fj.data.Either;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import static junit.framework.TestCase.assertEquals;
+import static org.mockito.Mockito.when;
public class ComponentInstanceArtifactsMergeTest {
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesMergeBLTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesMergeBLTest.java
index adf19011db..af6b72ef5d 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesMergeBLTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesMergeBLTest.java
@@ -1,21 +1,7 @@
package org.openecomp.sdc.be.components.merge.instance;
-import static java.util.Collections.emptyMap;
-import static java.util.Collections.singletonList;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyList;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
-import static org.mockito.Mockito.when;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
+import com.google.common.collect.ImmutableMap;
+import fj.data.Either;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -34,20 +20,24 @@ import org.openecomp.sdc.be.components.utils.ResourceBuilder;
import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.impl.ComponentsUtils;
-import org.openecomp.sdc.be.model.CapabilityDefinition;
-import org.openecomp.sdc.be.model.ComponentInstance;
-import org.openecomp.sdc.be.model.ComponentInstanceProperty;
-import org.openecomp.sdc.be.model.ComponentParametersView;
-import org.openecomp.sdc.be.model.Resource;
+import org.openecomp.sdc.be.model.*;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
import org.openecomp.sdc.common.api.ConfigurationSource;
import org.openecomp.sdc.common.impl.ExternalConfiguration;
import org.openecomp.sdc.common.impl.FSConfigurationSource;
-import com.google.common.collect.ImmutableMap;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
-import fj.data.Either;
+import static java.util.Collections.emptyMap;
+import static java.util.Collections.singletonList;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyList;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class ComponentInstanceCapabilitiesMergeBLTest {
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabiliteisPropertiesMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesPropertiesMergeTest.java
index 9b88ecb157..4c803a6148 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabiliteisPropertiesMergeTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesPropertiesMergeTest.java
@@ -1,11 +1,6 @@
package org.openecomp.sdc.be.components.merge.instance;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.when;
-
-import java.util.Collections;
-import java.util.List;
-
+import fj.data.Either;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -14,21 +9,20 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.impl.ComponentsUtils;
-import org.openecomp.sdc.be.model.CapabilityDefinition;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ComponentInstance;
-import org.openecomp.sdc.be.model.Resource;
-import org.openecomp.sdc.be.model.Service;
-import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.model.*;
import org.openecomp.sdc.exception.ResponseFormat;
-import fj.data.Either;
+import java.util.Collections;
+import java.util.List;
+
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
-public class ComponentInstanceCapabiliteisPropertiesMergeTest {
+public class ComponentInstanceCapabilitiesPropertiesMergeTest {
@InjectMocks
- private ComponentInstanceCapabiliteisPropertiesMerge testInstance;
+ private ComponentInstanceCapabilitiesPropertiesMerge testInstance;
@Mock
private ComponentCapabilitiesPropertiesMergeBL capabilitiesPropertiesMergeBL;
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceHeatEnvMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceHeatEnvMergeTest.java
index f5cd924957..89843420d3 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceHeatEnvMergeTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceHeatEnvMergeTest.java
@@ -1,13 +1,6 @@
package org.openecomp.sdc.be.components.merge.instance;
-import static org.mockito.Mockito.when;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
+import fj.data.Either;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
@@ -26,7 +19,14 @@ import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
import org.openecomp.sdc.common.api.ArtifactTypeEnum;
-import fj.data.Either;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static org.mockito.ArgumentMatchers.isNull;
+import static org.mockito.Mockito.when;
public class ComponentInstanceHeatEnvMergeTest {
@@ -71,7 +71,7 @@ public class ComponentInstanceHeatEnvMergeTest {
when(artifactsBusinessLogicMock.updateResourceInstanceArtifactNoContent(Mockito.eq(instanceId), Mockito.eq(resource),
Mockito.eq(USER), Mockito.eq(json),
Mockito.refEq(artifactUpdateOperation),
- Mockito.isNull(ArtifactDefinition.class)))
+ isNull()))
.thenReturn(Either.left(Either.left(new ArtifactDefinition())));
}
}
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceInputsRedeclareHandlerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceInputsRedeclareHandlerTest.java
new file mode 100644
index 0000000000..2e5128c180
--- /dev/null
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceInputsRedeclareHandlerTest.java
@@ -0,0 +1,132 @@
+package org.openecomp.sdc.be.components.merge.instance;
+
+import fj.data.Either;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.openecomp.sdc.be.auditing.impl.AuditingManager;
+import org.openecomp.sdc.be.components.merge.input.DeclaredInputsResolver;
+import org.openecomp.sdc.be.components.merge.input.InputsValuesMergingBusinessLogic;
+import org.openecomp.sdc.be.components.utils.AnnotationBuilder;
+import org.openecomp.sdc.be.components.utils.InputsBuilder;
+import org.openecomp.sdc.be.components.utils.ResourceBuilder;
+import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.datatypes.elements.Annotation;
+import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
+import org.openecomp.sdc.be.impl.ComponentsUtils;
+import org.openecomp.sdc.be.model.InputDefinition;
+import org.openecomp.sdc.be.model.Resource;
+import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import static java.util.Arrays.asList;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.anyList;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import static org.openecomp.sdc.be.components.utils.Conditions.hasPropertiesWithNames;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ComponentInstanceInputsRedeclareHandlerTest {
+
+ private static final String RESOURCE_ID = "resourceID";
+ private ComponentInstanceInputsRedeclareHandler testInstance;
+ @Mock
+ private ToscaOperationFacade toscaOperationFacade;
+ @Mock
+ private DeclaredInputsResolver declaredInputsResolver;
+ @Mock
+ private InputsValuesMergingBusinessLogic inputsValuesMergingBusinessLogic;
+ @Captor
+ private ArgumentCaptor<Map<String, List<PropertyDataDefinition>>> getInputPropertiesCaptor;
+ private Resource currContainer;
+ private List<InputDefinition> prevDeclaredInputs;
+ private Annotation annotation1, annotation2, annotation3;
+
+ @Before
+ public void setUp() throws Exception {
+ testInstance = new ComponentInstanceInputsRedeclareHandler(declaredInputsResolver, toscaOperationFacade, new ComponentsUtils(mock(AuditingManager.class)), inputsValuesMergingBusinessLogic);
+ currContainer = new ResourceBuilder()
+ .addInstanceProperty("inst1", "prop1")
+ .addInstanceProperty("inst1", "prop2")
+ .addInstanceInput("inst2", "prop3")
+ .setUniqueId(RESOURCE_ID)
+ .build();
+
+ annotation1 = AnnotationBuilder.create()
+ .setName("annotation1")
+ .build();
+
+ annotation2 = AnnotationBuilder.create()
+ .setName("annotation2")
+ .build();
+
+ annotation3 = AnnotationBuilder.create()
+ .setName("annotation3")
+ .build();
+
+ InputDefinition declaredInput1 = InputsBuilder.create()
+ .setPropertyId("prop1")
+ .setName("input1")
+ .addAnnotation(annotation1)
+ .addAnnotation(annotation2)
+ .build();
+
+ InputDefinition declaredInput2 = InputsBuilder.create()
+ .setPropertyId("prop2")
+ .setName("input2")
+ .addAnnotation(annotation3)
+ .build();
+
+ prevDeclaredInputs = asList(declaredInput1, declaredInput2);
+ }
+
+ @Test
+ public void redeclareOnlyPropertiesForGivenInstance() {
+ Resource originInstanceType = new Resource();
+ when(declaredInputsResolver.getPreviouslyDeclaredInputsToMerge(anyList(), eq(currContainer), getInputPropertiesCaptor.capture())).thenReturn(prevDeclaredInputs);
+ when(toscaOperationFacade.updateInputsToComponent(prevDeclaredInputs, RESOURCE_ID)).thenReturn(Either.left(null));
+ ActionStatus actionStatus = testInstance.redeclareComponentInputsForInstance(currContainer, "inst1", originInstanceType, Collections.emptyList());
+ assertThat(actionStatus).isEqualTo(ActionStatus.OK);
+ verifyInstanceSpecificPropertiesPassedToDeclaredInputsResolver();
+ }
+
+ @Test
+ public void updateInputsWithAnnotationsFromOriginInstanceType() {
+ InputDefinition input1 = InputsBuilder.create()
+ .addAnnotation(annotation2)
+ .addAnnotation(annotation3)
+ .setName("prop1")
+ .build();
+
+ InputDefinition input2 = InputsBuilder.create()
+ .setName("prop2")
+ .build();
+ Resource originInstanceType = new ResourceBuilder()
+ .addInput(input1)
+ .addInput(input2)
+ .build();
+
+ when(declaredInputsResolver.getPreviouslyDeclaredInputsToMerge(anyList(), eq(currContainer), getInputPropertiesCaptor.capture())).thenReturn(prevDeclaredInputs);
+ when(toscaOperationFacade.updateInputsToComponent(prevDeclaredInputs, RESOURCE_ID)).thenReturn(Either.left(null));
+ ActionStatus actionStatus = testInstance.redeclareComponentInputsForInstance(currContainer, "inst1", originInstanceType, Collections.emptyList());
+ assertThat(actionStatus).isEqualTo(ActionStatus.OK);
+ assertThat(prevDeclaredInputs)
+ .extracting("annotations")
+ .containsExactlyInAnyOrder(asList(annotation1, annotation3, annotation2), asList(annotation3));
+ }
+
+ private void verifyInstanceSpecificPropertiesPassedToDeclaredInputsResolver() {
+ Map<String, List<PropertyDataDefinition>> allResourceProps = getInputPropertiesCaptor.getValue();
+ assertThat(allResourceProps)
+ .hasEntrySatisfying("inst1", hasPropertiesWithNames("prop1", "prop2"));
+ }
+} \ No newline at end of file
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceMergeDataBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceMergeDataBusinessLogicTest.java
index 79064bce50..345e93051e 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceMergeDataBusinessLogicTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceMergeDataBusinessLogicTest.java
@@ -1,35 +1,23 @@
package org.openecomp.sdc.be.components.merge.instance;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
-import static org.mockito.Mockito.when;
-
-import java.util.Arrays;
-
+import fj.data.Either;
import org.junit.Before;
import org.junit.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
+import org.mockito.*;
import org.openecomp.sdc.be.components.utils.ResourceBuilder;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.impl.ComponentsUtils;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ComponentInstance;
-import org.openecomp.sdc.be.model.ComponentParametersView;
-import org.openecomp.sdc.be.model.Resource;
-import org.openecomp.sdc.be.model.Service;
-import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.model.*;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
import org.openecomp.sdc.exception.ResponseFormat;
-import fj.data.Either;
+import java.util.Arrays;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.mockito.Mockito.*;
public class ComponentInstanceMergeDataBusinessLogicTest {
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstancePropsAndInputsMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstancePropsAndInputsMergeTest.java
index 0efbf5fc5b..c6e5bed950 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstancePropsAndInputsMergeTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstancePropsAndInputsMergeTest.java
@@ -1,42 +1,25 @@
package org.openecomp.sdc.be.components.merge.instance;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyList;
-import static org.mockito.ArgumentMatchers.anyListOf;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.verifyZeroInteractions;
-import static org.mockito.Mockito.when;
-
-import java.util.List;
-
+import fj.data.Either;
import org.junit.Before;
import org.junit.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.openecomp.sdc.be.components.merge.input.ComponentInputsMergeBL;
+import org.mockito.*;
import org.openecomp.sdc.be.components.utils.ObjectGenerator;
import org.openecomp.sdc.be.components.utils.ResourceBuilder;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.impl.ComponentsUtils;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ComponentInstanceInput;
-import org.openecomp.sdc.be.model.ComponentInstanceProperty;
-import org.openecomp.sdc.be.model.ComponentParametersView;
-import org.openecomp.sdc.be.model.InputDefinition;
-import org.openecomp.sdc.be.model.Resource;
-import org.openecomp.sdc.be.model.Service;
-import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.model.*;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
import org.openecomp.sdc.exception.ResponseFormat;
-import fj.data.Either;
+import java.util.List;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.when;
public class ComponentInstancePropsAndInputsMergeTest {
private static final String INSTANCE_ID1 = "inst1";
@@ -58,7 +41,7 @@ public class ComponentInstancePropsAndInputsMergeTest {
private ComponentInstanceInputsMergeBL componentInstanceInputsMergeBL;
@Mock
- private ComponentInputsMergeBL componentInputsMergeBL;
+ private ComponentInstanceInputsRedeclareHandler componentInstanceInputsRedeclareHandler;
private Resource resourceToUpdate;
@@ -95,13 +78,15 @@ public class ComponentInstancePropsAndInputsMergeTest {
dataForMergeHolder.setOrigComponentInputs(oldInputs);
dataForMergeHolder.setOrigComponentInstanceProperties(oldInstProps);
dataForMergeHolder.setOrigComponentInstanceInputs(oldInstInputs);
+ Resource currInstanceOriginType = new Resource();
+ dataForMergeHolder.setCurrInstanceNode(currInstanceOriginType);
ArgumentCaptor<ComponentParametersView> parametersViewCaptor = ArgumentCaptor.forClass(ComponentParametersView.class);
when(toscaOperationFacade.getToscaElement(Mockito.eq("resourceId"), parametersViewCaptor.capture())).thenReturn(Either.left(resourceToUpdate));
when(componentInstanceInputsMergeBL.mergeComponentInstanceInputs(oldInstInputs, oldInputs, resourceToUpdate, INSTANCE_ID1)).thenReturn(ActionStatus.OK);
when(componentInstancePropertiesMergeBL.mergeComponentInstanceProperties(oldInstProps, oldInputs, resourceToUpdate, INSTANCE_ID1)).thenReturn(ActionStatus.OK);
- when(componentInputsMergeBL.redeclareComponentInputsForInstance(oldInputs, resourceToUpdate, INSTANCE_ID1)).thenReturn(ActionStatus.OK);
+ when(componentInstanceInputsRedeclareHandler.redeclareComponentInputsForInstance(resourceToUpdate, INSTANCE_ID1, currInstanceOriginType, oldInputs)).thenReturn(ActionStatus.OK);
Either<Component, ResponseFormat> mergeResult = testInstance.mergeDataAfterCreate(USER, dataForMergeHolder, resourceToUpdate, INSTANCE_ID1);
assertEquals(mergeResult.left().value(), resourceToUpdate);
assertComponentFilter(parametersViewCaptor.getValue());
@@ -111,10 +96,10 @@ public class ComponentInstancePropsAndInputsMergeTest {
public void mergeDataAfterCreate_failedToMergeComponentInstanceInputs() throws Exception {
ResponseFormat errorResponse = new ResponseFormat();
when(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR)).thenReturn(errorResponse);
- when(componentInstanceInputsMergeBL.mergeComponentInstanceInputs(anyListOf(ComponentInstanceInput.class), anyListOf(InputDefinition.class), any(Component.class), anyString())).thenReturn(ActionStatus.GENERAL_ERROR);
+ when(componentInstanceInputsMergeBL.mergeComponentInstanceInputs(anyList(), anyList(), any(Component.class), anyString())).thenReturn(ActionStatus.GENERAL_ERROR);
Either<Component, ResponseFormat> mergeResult = testInstance.mergeDataAfterCreate(USER, new DataForMergeHolder(), new Service(), "inst1");
assertEquals(errorResponse, mergeResult.right().value());
- verifyZeroInteractions(componentInputsMergeBL, componentInstancePropertiesMergeBL, toscaOperationFacade);
+ verifyZeroInteractions(componentInstanceInputsRedeclareHandler, componentInstancePropertiesMergeBL, toscaOperationFacade);
}
@Test
@@ -125,7 +110,7 @@ public class ComponentInstancePropsAndInputsMergeTest {
when(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR)).thenReturn(errorResponse);
Either<Component, ResponseFormat> mergeResult = testInstance.mergeDataAfterCreate(USER, new DataForMergeHolder(), new Service(), "inst1");
assertEquals(errorResponse, mergeResult.right().value());
- verifyZeroInteractions(componentInputsMergeBL, toscaOperationFacade);
+ verifyZeroInteractions(componentInstanceInputsRedeclareHandler, toscaOperationFacade);
}
@Test
@@ -140,7 +125,7 @@ public class ComponentInstancePropsAndInputsMergeTest {
dataHolder.setOrigComponentInputs(ObjectGenerator.buildInputs("input1", "input2"));
Either<Component, ResponseFormat> mergeResult = testInstance.mergeDataAfterCreate(USER, dataHolder, new Service(), "inst1");
assertEquals(errorResponse, mergeResult.right().value());
- verifyZeroInteractions(componentInputsMergeBL);
+ verifyZeroInteractions(componentInstanceInputsRedeclareHandler);
}
private void assertComponentFilter(ComponentParametersView value) {
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceRelationMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceRelationMergeTest.java
index b341052d9e..1b6aa00c69 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceRelationMergeTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceRelationMergeTest.java
@@ -1,18 +1,6 @@
package org.openecomp.sdc.be.components.merge.instance;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.IntStream;
-
+import fj.data.Either;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -21,24 +9,27 @@ import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
+import org.openecomp.sdc.be.components.impl.utils.ExceptionUtils;
import org.openecomp.sdc.be.components.merge.utils.MergeInstanceUtils;
+import org.openecomp.sdc.be.components.utils.GroupDefinitionBuilder;
+import org.openecomp.sdc.be.components.utils.ResourceBuilder;
+import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
-import org.openecomp.sdc.be.model.CapabilityDefinition;
-import org.openecomp.sdc.be.model.CapabilityRequirementRelationship;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ComponentInstance;
-import org.openecomp.sdc.be.model.RelationshipImpl;
-import org.openecomp.sdc.be.model.RelationshipInfo;
-import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
-import org.openecomp.sdc.be.model.RequirementDefinition;
-import org.openecomp.sdc.be.model.Resource;
-import org.openecomp.sdc.be.model.Service;
-import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.impl.ComponentsUtils;
+import org.openecomp.sdc.be.model.*;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+import org.openecomp.sdc.exception.ResponseFormat;
-import fj.data.Either;
+import java.util.*;
+import java.util.stream.IntStream;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.tuple;
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class ComponentInstanceRelationMergeTest {
@@ -53,26 +44,29 @@ public class ComponentInstanceRelationMergeTest {
private RequirementCapabilityRelDef requirementDef2;
private RequirementCapabilityRelDef capabilityDef1;
private RequirementCapabilityRelDef capabilityDef2;
-
+ private RequirementCapabilityRelDef capabilityDef3;
+
+ @Mock
+ private ComponentsUtils componentsUtils;
+
@Mock
private ToscaOperationFacade toscaOperationFacade;
@Mock
private User user;
+ @Mock
+ private ExceptionUtils exceptionUtils;
+
@Captor
- ArgumentCaptor<VfRelationsMergeInfo> argumentCaptor;
-
-
+ private ArgumentCaptor<ContainerRelationsMergeInfo> argumentCaptor;
+
+
@Before
public void startUp() {
- compInstanceRelationMerge = new ComponentInstanceRelationMerge();
- compInstanceRelationMerge.setToscaOperationFacade(toscaOperationFacade);
-
- MergeInstanceUtils mergeInstanceUtils = new MergeInstanceUtils();
- mergeInstanceUtils.setToscaOperationFacade(toscaOperationFacade);
- compInstanceRelationMerge.setMergeInstanceUtils(mergeInstanceUtils);
-
+ MergeInstanceUtils mergeInstanceUtils = new MergeInstanceUtils(toscaOperationFacade, exceptionUtils);
+ compInstanceRelationMerge = new ComponentInstanceRelationMerge(componentsUtils, mergeInstanceUtils, toscaOperationFacade);
+
containerComponent = new Service();
List<RequirementCapabilityRelDef> resourceInstancesRelations = new ArrayList<>();
@@ -80,26 +74,56 @@ public class ComponentInstanceRelationMergeTest {
resourceInstancesRelations.add(requirementDef1);
requirementDef2 = createRequirementDef("SRV1.VF1.VFI_1", "SRV1.VF3.VFI_1", "SRV1.VF1.VFC_2.VFCI_2", "Requirement2");
resourceInstancesRelations.add(requirementDef2);
-
-
+
+
capabilityDef1 = createCapabilityDef("SRV1.VF4.VFI_1", "SRV1.VF1.VFI_1", "SRV1.VF1.VFC_3.VFCI_3", "Capability3");
resourceInstancesRelations.add(capabilityDef1);
capabilityDef2 = createCapabilityDef("SRV1.VF5.VFI_1", "SRV1.VF1.VFI_1", "SRV1.VF1.VFC_4.VFCI_1", "Capability4");
resourceInstancesRelations.add(capabilityDef2);
- containerComponent.setComponentInstancesRelations(resourceInstancesRelations );
+ capabilityDef3 = createCapabilityDef("SRV1.VF5.VFI_1", "SRV1.VF1.VFI_1", "grp1Id", "Capability5");
+ resourceInstancesRelations.add(capabilityDef3);
+
+ containerComponent.setComponentInstancesRelations(resourceInstancesRelations );
+
currentResourceInstance = new ComponentInstance();
currentResourceInstance.setUniqueId("SRV1.VF1.VFI_1");
currentResourceInstance.setComponentUid("SRV1.VF1");
currentResourceInstance.setIsProxy(false);
-
+
updatedContainerComponent = new Service();
updatedContainerComponent.setUniqueId("123123123123123123");
}
-
+
@Test
public void testSaveDataBeforeMerge() {
+ Resource vf = new ResourceBuilder()
+ .setResourceType(ResourceTypeEnum.VF)
+ .setComponentType(ComponentTypeEnum.RESOURCE)
+ .addComponentInstance(createVfci("vfc_A", "SRV1.VF1.VFC_1.VFCI_1", "SRV1.VF1.VFC_1", true))
+ .addComponentInstance(createVfci("vfc_B", "SRV1.VF1.VFC_2.VFCI_2", "SRV1.VF1.VFC_2", true))
+ .addComponentInstance(createVfci("vfc_C", "SRV1.VF1.VFC_3.VFCI_3", "SRV1.VF1.VFC_3", false))
+ .addComponentInstance(createVfci("vfc_D", "SRV1.VF1.VFC_4.VFCI_1", "SRV1.VF1.VFC_4", true))
+ .addGroup(createGroup("grp1", "grp1Id"))
+ .build();
+
+ compInstanceRelationMerge.saveDataBeforeMerge(dataHolder, containerComponent, currentResourceInstance, vf);
+
+ verify(dataHolder).setVfRelationsInfo(argumentCaptor.capture());
+ ContainerRelationsMergeInfo relationsMergeInfo = argumentCaptor.getValue();
+ List<RelationMergeInfo> fromRelationsMergeInfo = relationsMergeInfo.getFromRelationsInfo();
+ List<RelationMergeInfo> toRelationsMergeInfo = relationsMergeInfo.getToRelationsInfo();
+
+ assertNotNull("Expected not null list of relations merge info", fromRelationsMergeInfo);
+ assertNotNull("Expected not null list of relations merge info", toRelationsMergeInfo);
+
+ assertEquals("Expected 2 elements", 2, fromRelationsMergeInfo.size());
+ assertEquals("Expected 2 elements", 2, toRelationsMergeInfo.size());
+ }
+
+ @Test
+ public void testSaveDataBeforeMerge_RelationsNull() {
Resource vf = new Resource();
List<ComponentInstance> vfcInstances = new ArrayList<>();
@@ -110,32 +134,91 @@ public class ComponentInstanceRelationMergeTest {
vf.setComponentInstances(vfcInstances);
vf.setComponentType(ComponentTypeEnum.RESOURCE);
vf.setResourceType(ResourceTypeEnum.VF);
-
+
+ containerComponent.setComponentInstancesRelations(null);
compInstanceRelationMerge.saveDataBeforeMerge(dataHolder, containerComponent, currentResourceInstance, vf);
-
- verify(dataHolder).setVfRelationsInfo(argumentCaptor.capture());
- VfRelationsMergeInfo relationsMergeInfo = argumentCaptor.getValue();
- List<RelationMergeInfo> fromRelationsMergeInfo = relationsMergeInfo.getFromRelationsInfo();
- List<RelationMergeInfo> toRelationsMergeInfo = relationsMergeInfo.getToRelationsInfo();
-
- assertNotNull("Expected not null list of relations merge info", fromRelationsMergeInfo);
- assertNotNull("Expected not null list of relations merge info", toRelationsMergeInfo);
-
- assertEquals("Expected 2 elements", 2, fromRelationsMergeInfo.size());
- assertEquals("Expected 1 elements", 1, toRelationsMergeInfo.size());
+
+ verify(dataHolder, Mockito.never()).setVfRelationsInfo(Mockito.any());
}
+
+ @Test
+ public void testSaveDataBeforeMerge_RelationsEmptyList() {
+ Resource vf = new Resource();
+ List<ComponentInstance> vfcInstances = new ArrayList<>();
+ vfcInstances.add(createVfci("vfc_A", "SRV1.VF1.VFC_1.VFCI_1", "SRV1.VF1.VFC_1", true));
+ vfcInstances.add(createVfci("vfc_B", "SRV1.VF1.VFC_2.VFCI_2", "SRV1.VF1.VFC_2", true));
+ vfcInstances.add(createVfci("vfc_C", "SRV1.VF1.VFC_3.VFCI_3", "SRV1.VF1.VFC_3", false));
+ vfcInstances.add(createVfci("vfc_D", "SRV1.VF1.VFC_4.VFCI_1", "SRV1.VF1.VFC_4", true));
+ vf.setComponentInstances(vfcInstances);
+ vf.setComponentType(ComponentTypeEnum.RESOURCE);
+ vf.setResourceType(ResourceTypeEnum.VF);
+
+ containerComponent.setComponentInstancesRelations(Collections.emptyList());
+ compInstanceRelationMerge.saveDataBeforeMerge(dataHolder, containerComponent, currentResourceInstance, vf);
+
+ verify(dataHolder, Mockito.never()).setVfRelationsInfo(Mockito.any());
+ }
+
@Test
public void testMergeDataAfterCreate_NoSavedData() {
+ when(dataHolder.getContainerRelationsMergeInfo()).thenReturn(null);
compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2");
-
- verify(dataHolder).getVfRelationsMergeInfo();
List<RequirementCapabilityRelDef> relations = updatedContainerComponent.getComponentInstancesRelations();
assertNull("Expected no relations", relations);
}
@Test
public void testMergeDataAfterCreate() {
+ Resource newInstanceOriginVf = new ResourceBuilder()
+ .setResourceType(ResourceTypeEnum.VF)
+ .setComponentType(ComponentTypeEnum.RESOURCE)
+ .addComponentInstance(createVfci("vfc_A", "SRV1.VF1.VFC_1.VFCI_1", "SRV1.VF1.VFC_1", true))
+ .addComponentInstance(createVfci("vfc_B", "SRV1.VF1.VFC_2.VFCI_2", "SRV1.VF1.VFC_2", true))
+ .addComponentInstance(createVfci("vfc_C", "SRV1.VF1.VFC_3.VFCI_3", "SRV1.VF1.VFC_3", false))
+ .addComponentInstance(createVfci("vfc_D", "SRV1.VF1.VFC_4.VFCI_1", "SRV1.VF1.VFC_4", true))
+ .addGroup(createGroup("grp1", "grp1Id"))
+ .build();
+
+
+ List<ComponentInstance> componentInstances = new ArrayList<>();
+ componentInstances.add(createVfi("SRV1.VF1", "SRV1.VF1.VFI_2"));
+ updatedContainerComponent.setComponentInstances(componentInstances);
+
+ List<RequirementCapabilityRelDef> resourceInstancesRelations = new ArrayList<>();
+ updatedContainerComponent.setComponentInstancesRelations(resourceInstancesRelations);
+
+ List<RelationMergeInfo> fromRelationsMergeInfo = new ArrayList<>();
+ List<RelationMergeInfo> toRelationsMergeInfo = new ArrayList<>();
+
+ RelationMergeInfo relationMergeInfo1 = new RelationMergeInfo("CapabilityType1", "capabilityA", "vfc_A", requirementDef1);
+ fromRelationsMergeInfo.add(relationMergeInfo1);
+ RelationMergeInfo relationMergeInfo2 = new RelationMergeInfo("CapabilityType4", "capabilityD", "vfc_D", capabilityDef2);
+ toRelationsMergeInfo.add(relationMergeInfo2);
+
+ RelationMergeInfo relationMergeInfo3 = new RelationMergeInfo("CapabilityType5", "capabilityE", "grp1", capabilityDef3);
+ toRelationsMergeInfo.add(relationMergeInfo3);
+
+ ContainerRelationsMergeInfo relationsMergeInfo = new ContainerRelationsMergeInfo(fromRelationsMergeInfo, toRelationsMergeInfo);
+
+ when(toscaOperationFacade.getToscaElement("SRV1.VF1")).thenReturn(Either.left(newInstanceOriginVf));
+ when(dataHolder.getContainerRelationsMergeInfo()).thenReturn(relationsMergeInfo);
+ when(toscaOperationFacade.associateResourceInstances(Mockito.anyString(), Mockito.anyList())).thenReturn(StorageOperationStatus.OK);
+ Either<Component, ResponseFormat> mergeResult = compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2");
+ assertTrue(mergeResult.isLeft());
+ List<RequirementCapabilityRelDef> relations = updatedContainerComponent.getComponentInstancesRelations();
+ assertThat(relations)
+ .containsExactlyInAnyOrder(requirementDef1, capabilityDef2, capabilityDef3)
+ .extracting(relation -> relation.resolveSingleRelationship().getRelation().getCapabilityOwnerId(),
+ relation -> relation.resolveSingleRelationship().getRelation().getRequirementOwnerId())
+ .containsExactlyInAnyOrder(tuple("SRV1.VF1.VFC_4.VFCI_1", null),
+ tuple("grp1Id", null),
+ tuple(null, "SRV1.VF1.VFC_1.VFCI_1"));
+ }
+
+
+ @Test
+ public void testMergeDataAfterCreate_FailedToAssociateResourceInstances() {
Resource vf = new Resource();
List<ComponentInstance> vfcInstances = new ArrayList<>();
@@ -146,23 +229,23 @@ public class ComponentInstanceRelationMergeTest {
vf.setComponentInstances(vfcInstances);
vf.setComponentType(ComponentTypeEnum.RESOURCE);
vf.setResourceType(ResourceTypeEnum.VF);
-
+
Either<Component, StorageOperationStatus> eitherVF = Either.left(vf);
when(toscaOperationFacade.getToscaElement("SRV1.VF1")).thenReturn(eitherVF);
-
-
+
+
List<RelationMergeInfo> fromRelationsMergeInfo = new ArrayList<>();
List<RelationMergeInfo> toRelationsMergeInfo = new ArrayList<>();
-
+
RelationMergeInfo relationMergeInfo1 = new RelationMergeInfo("CapabilityType1", "capabilityA", "vfc_A", requirementDef1);
fromRelationsMergeInfo.add(relationMergeInfo1);
RelationMergeInfo relationMergeInfo2 = new RelationMergeInfo("CapabilityType4", "capabilityD", "vfc_D", capabilityDef2);
toRelationsMergeInfo.add(relationMergeInfo2);
-
- VfRelationsMergeInfo relationsMergeInfo = new VfRelationsMergeInfo(fromRelationsMergeInfo, toRelationsMergeInfo);
-
- when(dataHolder.getVfRelationsMergeInfo()).thenReturn(relationsMergeInfo);
-
+
+ ContainerRelationsMergeInfo relationsMergeInfo = new ContainerRelationsMergeInfo(fromRelationsMergeInfo, toRelationsMergeInfo);
+
+ when(dataHolder.getContainerRelationsMergeInfo()).thenReturn(relationsMergeInfo);
+
List<ComponentInstance> componentInstances = new ArrayList<>();
componentInstances.add(createVfi("SRV1.VF1", "SRV1.VF1.VFI_2"));
componentInstances.add(createVfi("SRV1.VF2", "SRV1.VF2.VFI_1"));
@@ -170,34 +253,40 @@ public class ComponentInstanceRelationMergeTest {
componentInstances.add(createVfi("SRV1.VF4", "SRV1.VF4.VFI_1"));
componentInstances.add(createVfi("SRV1.VF5", "SRV1.VF5.VFI_1"));
updatedContainerComponent.setComponentInstances(componentInstances);
-
+
List<RequirementCapabilityRelDef> resourceInstancesRelations = new ArrayList<>();
updatedContainerComponent.setComponentInstancesRelations(resourceInstancesRelations);
-
- when(toscaOperationFacade.associateResourceInstances(Mockito.anyString(), Mockito.anyList())).thenReturn(StorageOperationStatus.OK);
-
- compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2");
-
- verify(dataHolder).getVfRelationsMergeInfo();
- verify(toscaOperationFacade).associateResourceInstances(Mockito.anyString(), Mockito.anyList());
-
- List<RequirementCapabilityRelDef> relations = updatedContainerComponent.getComponentInstancesRelations();
- assertEquals("Expected 2 relations", 2, relations.size());
-
-
- RequirementCapabilityRelDef capabilityRelDef = relations.get(0);
- assertEquals("SRV1.VF1.VFC_4.VFCI_1", capabilityRelDef.resolveSingleRelationship().getRelation().getCapabilityOwnerId());
- assertEquals("SRV1.VF5.VFI_1", capabilityRelDef.getFromNode());
- assertEquals("SRV1.VF1.VFI_2", capabilityRelDef.getToNode());
-
- RequirementCapabilityRelDef requirementRelDef = relations.get(1);
- assertEquals("SRV1.VF1.VFC_1.VFCI_1", requirementRelDef.resolveSingleRelationship().getRelation().getRequirementOwnerId());
- assertEquals("SRV1.VF1.VFI_2", requirementRelDef.getFromNode());
- assertEquals("SRV1.VF2.VFI_1", requirementRelDef.getToNode());
+
+ when(toscaOperationFacade.associateResourceInstances(Mockito.anyString(), Mockito.anyList())).thenReturn(StorageOperationStatus.GENERAL_ERROR);
+ when(componentsUtils.convertFromStorageResponse(Mockito.any())).thenReturn(ActionStatus.GENERAL_ERROR);
+
+ ResponseFormat expectedRresponseFormat = new ResponseFormat();
+ when(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR, updatedContainerComponent.getUniqueId())).thenReturn(expectedRresponseFormat );
+
+ Either<Component, ResponseFormat> result = compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2");
+ assertTrue(result.isRight());
+ assertEquals(expectedRresponseFormat, result.right().value());
}
-
-
-
+
+ @Test
+ public void testMergeDataAfterCreate_UpdatedContainerEmpty() {
+ List<RelationMergeInfo> fromRelationsMergeInfo = new ArrayList<>();
+ List<RelationMergeInfo> toRelationsMergeInfo = new ArrayList<>();
+
+ RelationMergeInfo relationMergeInfo1 = new RelationMergeInfo("CapabilityType1", "capabilityA", "vfc_A", requirementDef1);
+ fromRelationsMergeInfo.add(relationMergeInfo1);
+ RelationMergeInfo relationMergeInfo2 = new RelationMergeInfo("CapabilityType4", "capabilityD", "vfc_D", capabilityDef2);
+ toRelationsMergeInfo.add(relationMergeInfo2);
+
+ ContainerRelationsMergeInfo relationsMergeInfo = new ContainerRelationsMergeInfo(fromRelationsMergeInfo, toRelationsMergeInfo);
+
+ when(dataHolder.getContainerRelationsMergeInfo()).thenReturn(relationsMergeInfo);
+
+ Either<Component, ResponseFormat> result = compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2");
+ assertTrue(result.isLeft());
+ assertEquals(updatedContainerComponent, result.left().value());
+ }
+
@Test
public void testMergeDataAfterCreate_OwnerChanged() {
Resource vf = new Resource();
@@ -210,23 +299,23 @@ public class ComponentInstanceRelationMergeTest {
vf.setComponentInstances(vfcInstances);
vf.setComponentType(ComponentTypeEnum.RESOURCE);
vf.setResourceType(ResourceTypeEnum.VF);
-
+
Either<Component, StorageOperationStatus> eitherVF = Either.left(vf);
when(toscaOperationFacade.getToscaElement("SRV1.VF1")).thenReturn(eitherVF);
-
-
+
+
List<RelationMergeInfo> fromRelationsMergeInfo = new ArrayList<>();
List<RelationMergeInfo> toRelationsMergeInfo = new ArrayList<>();
-
+
RelationMergeInfo relationMergeInfo1 = new RelationMergeInfo("CapabilityType1", "capabilityA", "vfc_A", requirementDef1);
fromRelationsMergeInfo.add(relationMergeInfo1);
RelationMergeInfo relationMergeInfo2 = new RelationMergeInfo("CapabilityType4", "capabilityD", "vfc_D", capabilityDef2);
toRelationsMergeInfo.add(relationMergeInfo2);
-
- VfRelationsMergeInfo relationsMergeInfo = new VfRelationsMergeInfo(fromRelationsMergeInfo, toRelationsMergeInfo);
-
- when(dataHolder.getVfRelationsMergeInfo()).thenReturn(relationsMergeInfo);
-
+
+ ContainerRelationsMergeInfo relationsMergeInfo = new ContainerRelationsMergeInfo(fromRelationsMergeInfo, toRelationsMergeInfo);
+
+ when(dataHolder.getContainerRelationsMergeInfo()).thenReturn(relationsMergeInfo);
+
List<ComponentInstance> componentInstances = new ArrayList<>();
componentInstances.add(createVfi("SRV1.VF1", "SRV1.VF1.VFI_2"));
componentInstances.add(createVfi("SRV1.VF2", "SRV1.VF2.VFI_1"));
@@ -234,26 +323,26 @@ public class ComponentInstanceRelationMergeTest {
componentInstances.add(createVfi("SRV1.VF4", "SRV1.VF4.VFI_1"));
componentInstances.add(createVfi("SRV1.VF5", "SRV1.VF5.VFI_1"));
updatedContainerComponent.setComponentInstances(componentInstances);
-
+
List<RequirementCapabilityRelDef> resourceInstancesRelations = new ArrayList<>();
updatedContainerComponent.setComponentInstancesRelations(resourceInstancesRelations);
-
+
when(toscaOperationFacade.associateResourceInstances(Mockito.anyString(), Mockito.anyList())).thenReturn(StorageOperationStatus.OK);
-
+
compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2");
-
- verify(dataHolder).getVfRelationsMergeInfo();
+
+ verify(dataHolder).getContainerRelationsMergeInfo();
verify(toscaOperationFacade).associateResourceInstances(Mockito.anyString(), Mockito.anyList());
-
+
List<RequirementCapabilityRelDef> relations = updatedContainerComponent.getComponentInstancesRelations();
assertEquals("Expected 2 relations", 2, relations.size());
-
-
+
+
RequirementCapabilityRelDef capabilityRelDef = relations.get(0);
assertEquals("SRV1.VF1.VFC_4.VFCI_2", capabilityRelDef.resolveSingleRelationship().getRelation().getCapabilityOwnerId());
assertEquals("SRV1.VF5.VFI_1", capabilityRelDef.getFromNode());
assertEquals("SRV1.VF1.VFI_2", capabilityRelDef.getToNode());
-
+
RequirementCapabilityRelDef requirementRelDef = relations.get(1);
assertEquals("SRV1.VF1.VFC_1.VFCI_2", requirementRelDef.resolveSingleRelationship().getRelation().getRequirementOwnerId());
assertEquals("SRV1.VF1.VFI_2", requirementRelDef.getFromNode());
@@ -270,18 +359,18 @@ public class ComponentInstanceRelationMergeTest {
ComponentInstance vfi = new ComponentInstance();
vfi.setUniqueId(vfiUniqueId);
vfi.setComponentUid(vfId);
-
+
Resource vf = new Resource();
vf.setUniqueId(vfId);
return vfi;
}
-
+
private ComponentInstance createVfci(String name, String uniqueId, String componentUid, boolean foundVfc) {
ComponentInstance compInst = new ComponentInstance();
compInst.setName(name);
compInst.setUniqueId(uniqueId);
compInst.setComponentUid(componentUid);
-
+
if(foundVfc) {
createVfc(componentUid);
}
@@ -291,6 +380,14 @@ public class ComponentInstanceRelationMergeTest {
return compInst;
}
+ public GroupDefinition createGroup(String name, String id) {
+ return GroupDefinitionBuilder.create()
+ .setUniqueId(id)
+ .setInvariantName(name)
+ .build();
+
+ }
+
private void failLoadVfc(String uid) {
Either<Component, StorageOperationStatus> eitherVFC = Either.right(StorageOperationStatus.NOT_FOUND);
when(toscaOperationFacade.getToscaElement(uid)).thenReturn(eitherVFC);
@@ -298,12 +395,13 @@ public class ComponentInstanceRelationMergeTest {
private Component createVfc(String uid) {
Resource vfc = new Resource();
+ vfc.setComponentType(ComponentTypeEnum.RESOURCE);
vfc.setUniqueId(uid);
-
+
Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
Map<String, List<RequirementDefinition>> requirements = new HashMap<>();;
IntStream.range(0, 5).forEach(i -> {
-
+
List<CapabilityDefinition> capList = new LinkedList<>();
capList.add(null);
CapabilityDefinition capDef = new CapabilityDefinition();
@@ -312,7 +410,7 @@ public class ComponentInstanceRelationMergeTest {
capDef.setType("CapabilityType" + i);
capList.add(capDef);
capabilities.put("Key" + i, capList);
-
+
List<RequirementDefinition> reqList = new LinkedList<>();
reqList.add(null);
RequirementDefinition reqDef = new RequirementDefinition();
@@ -321,59 +419,59 @@ public class ComponentInstanceRelationMergeTest {
reqDef.setCapability("CapabilityType" + i);
reqList.add(reqDef);
requirements.put("Key" + i, reqList);
-
+
});
vfc.setCapabilities(capabilities );
vfc.setRequirements(requirements);
-
+
Either<Component, StorageOperationStatus> eitherVFC = Either.left(vfc);
when(toscaOperationFacade.getToscaElement(uid)).thenReturn(eitherVFC);
-
+
return vfc;
}
-
+
private RequirementCapabilityRelDef createRequirementCapabilityDef(String fromNode, String toNode) {
RequirementCapabilityRelDef reqCapDef = new RequirementCapabilityRelDef();
-
+
reqCapDef.setFromNode(fromNode);
reqCapDef.setToNode(toNode);
-
+
List<CapabilityRequirementRelationship> relationships = new ArrayList<>();
CapabilityRequirementRelationship capabilityRequirementRelationship = new CapabilityRequirementRelationship();
relationships.add(capabilityRequirementRelationship);
reqCapDef.setRelationships(relationships);
-
+
return reqCapDef;
}
private RequirementCapabilityRelDef createRequirementDef(String fromNode, String toNode, String ownerId, String requirementUid) {
RequirementCapabilityRelDef reqCapDef = createRequirementCapabilityDef(fromNode, toNode);
CapabilityRequirementRelationship capabilityRequirementRelationship = reqCapDef.resolveSingleRelationship();
-
+
RelationshipInfo relationshipInfo = new RelationshipInfo();
relationshipInfo.setRequirementOwnerId(ownerId);
relationshipInfo.setRequirementUid(requirementUid);
relationshipInfo.setRelationships(new RelationshipImpl());
capabilityRequirementRelationship.setRelation(relationshipInfo );
-
-
-
+
+
+
return reqCapDef;
}
-
+
private RequirementCapabilityRelDef createCapabilityDef(String fromNode, String toNode, String ownerId, String capabilityUid) {
RequirementCapabilityRelDef reqCapDef = createRequirementCapabilityDef(fromNode, toNode);
CapabilityRequirementRelationship capabilityRequirementRelationship = reqCapDef.resolveSingleRelationship();
-
+
RelationshipInfo relationshipInfo = new RelationshipInfo();
relationshipInfo.setCapabilityOwnerId(ownerId);
relationshipInfo.setCapabilityUid(capabilityUid);
relationshipInfo.setRelationships(new RelationshipImpl());
capabilityRequirementRelationship.setRelation(relationshipInfo );
-
+
return reqCapDef;
}
-
+
}
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ContainerRelationsMergeInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ContainerRelationsMergeInfoTest.java
new file mode 100644
index 0000000000..ba207c83de
--- /dev/null
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ContainerRelationsMergeInfoTest.java
@@ -0,0 +1,34 @@
+package org.openecomp.sdc.be.components.merge.instance;
+
+import org.junit.Test;
+
+import java.util.List;
+
+public class ContainerRelationsMergeInfoTest {
+
+ private ContainerRelationsMergeInfo createTestSubject() {
+ return new ContainerRelationsMergeInfo(null, null);
+ }
+
+ @Test
+ public void testGetFromRelationsInfo() throws Exception {
+ ContainerRelationsMergeInfo testSubject;
+ List<RelationMergeInfo> result;
+
+ // default test
+ testSubject = createTestSubject();
+ result = testSubject.getFromRelationsInfo();
+ }
+
+
+ @Test
+ public void testGetToRelationsInfo() throws Exception {
+ ContainerRelationsMergeInfo testSubject;
+ List<RelationMergeInfo> result;
+
+ // default test
+ testSubject = createTestSubject();
+ result = testSubject.getToRelationsInfo();
+ }
+
+} \ No newline at end of file
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/DataForMergeHolderTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/DataForMergeHolderTest.java
index 8c265a6be3..1b09e629b2 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/DataForMergeHolderTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/DataForMergeHolderTest.java
@@ -1,17 +1,12 @@
package org.openecomp.sdc.be.components.merge.instance;
+import org.junit.Test;
+import org.openecomp.sdc.be.model.*;
+
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import org.junit.Test;
-import org.openecomp.sdc.be.model.ArtifactDefinition;
-import org.openecomp.sdc.be.model.CapabilityDefinition;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ComponentInstanceInput;
-import org.openecomp.sdc.be.model.ComponentInstanceProperty;
-import org.openecomp.sdc.be.model.InputDefinition;
-
public class DataForMergeHolderTest {
private DataForMergeHolder createTestSubject() {
@@ -144,7 +139,7 @@ public class DataForMergeHolderTest {
@Test
public void testSetVfRelationsInfo() throws Exception {
DataForMergeHolder testSubject;
- VfRelationsMergeInfo vfRelationsMergeInfo = null;
+ ContainerRelationsMergeInfo vfRelationsMergeInfo = null;
// default test
testSubject = createTestSubject();
@@ -154,11 +149,11 @@ public class DataForMergeHolderTest {
@Test
public void testGetVfRelationsMergeInfo() throws Exception {
DataForMergeHolder testSubject;
- VfRelationsMergeInfo result;
+ ContainerRelationsMergeInfo result;
// default test
testSubject = createTestSubject();
- result = testSubject.getVfRelationsMergeInfo();
+ result = testSubject.getContainerRelationsMergeInfo();
}
@Test
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ExternalRefsMergeBLTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ExternalRefsMergeBLTest.java
new file mode 100644
index 0000000000..65f88358a5
--- /dev/null
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ExternalRefsMergeBLTest.java
@@ -0,0 +1,97 @@
+package org.openecomp.sdc.be.components.merge.instance;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
+import org.openecomp.sdc.be.model.Component;
+import org.openecomp.sdc.be.model.ComponentInstance;
+import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.model.jsontitan.operations.ExternalReferencesOperation;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.*;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ExternalRefsMergeBLTest {
+
+ private static final String NEW_INSTANCE_ID = "NEW_INSTANCE_ID";
+ @Resource
+ private ExternalRefsMergeBL externalRefsMergeBL;
+ @Mock
+ private ExternalReferencesOperation externalReferencesOperation;
+
+ private final Map<String, List<String>> externalRefs = new HashMap<>();
+
+ @Before
+ public void setUp() throws Exception {
+ externalRefsMergeBL = new ExternalRefsMergeBL(externalReferencesOperation);
+ externalRefs.put("a", Arrays.asList("1", "2"));
+ }
+
+ @Test
+ public void testExternalArtifactsSaveData_noArtifactsExist() {
+ Component containerComponent = new org.openecomp.sdc.be.model.Resource();
+ ComponentInstance componentInstance = new ComponentInstance();
+ when(externalReferencesOperation.getAllExternalReferences(any(), any()))
+ .thenReturn(new HashMap<>());
+
+ DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
+ externalRefsMergeBL.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, containerComponent);
+ Map<String, List<String>> originalComponentDeploymentArtifactsCreatedOnTheInstance = dataForMergeHolder.getOrigCompInstExternalRefs();
+
+ assertThat(originalComponentDeploymentArtifactsCreatedOnTheInstance.size()).isZero();
+ }
+
+ @Test
+ public void testExternalArtifactsSaveData_artifactsExist() {
+ Component containerComponent = new org.openecomp.sdc.be.model.Resource();
+ ComponentInstance componentInstance = new ComponentInstance();
+ when(externalReferencesOperation.getAllExternalReferences(any(), any()))
+ .thenReturn(externalRefs);
+
+ DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
+ externalRefsMergeBL.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, containerComponent);
+ Map<String, List<String>> origCompInstExternalRefs = dataForMergeHolder.getOrigCompInstExternalRefs();
+
+ assertThat(origCompInstExternalRefs.size()).isEqualTo(1);
+ assertThat(origCompInstExternalRefs.containsKey("a")).isTrue();
+ }
+
+ @Test
+ public void testExternalArtifactsRestoreData_noArtifacts() {
+ Component containerComponent = new org.openecomp.sdc.be.model.Resource();
+ ComponentInstance ci = new ComponentInstance();
+ ci.setUniqueId(NEW_INSTANCE_ID);
+ containerComponent.setComponentInstances(Collections.singletonList(ci));
+ DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
+ externalRefsMergeBL.mergeDataAfterCreate(new User(), dataForMergeHolder, containerComponent, NEW_INSTANCE_ID);
+ verifyZeroInteractions(externalReferencesOperation);
+ }
+
+ @Test
+ public void testExternalArtifactsRestoreData_hasArtifacts() {
+ Component containerComponent = new org.openecomp.sdc.be.model.Resource();
+ ComponentInstance ci = new ComponentInstance();
+ ci.setUniqueId(NEW_INSTANCE_ID);
+ containerComponent.setComponentInstances(Collections.singletonList(ci));
+ DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
+ dataForMergeHolder.setOrigComponentInstanceExternalRefs(externalRefs);
+ externalRefsMergeBL.mergeDataAfterCreate(new User(), dataForMergeHolder, containerComponent, NEW_INSTANCE_ID);
+ verify(externalReferencesOperation, times(1)).addAllExternalReferences(any(), eq(NEW_INSTANCE_ID), eq(externalRefs));
+ }
+
+ @Test(expected=ComponentException.class)
+ public void testExternalArtifactsRestoreData_noCI() {
+ Component containerComponent = new org.openecomp.sdc.be.model.Resource();
+ DataForMergeHolder dataForMergeHolder = new DataForMergeHolder();
+ externalRefsMergeBL.mergeDataAfterCreate(new User(), dataForMergeHolder, containerComponent, NEW_INSTANCE_ID);
+ }
+} \ No newline at end of file
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/RelationMergeInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/RelationMergeInfoTest.java
index 7173af3d4c..27aec7191a 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/RelationMergeInfoTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/RelationMergeInfoTest.java
@@ -19,35 +19,6 @@ public class RelationMergeInfoTest {
result = testSubject.getCapReqType();
}
- @Test
- public void testSetCapReqType() throws Exception {
- RelationMergeInfo testSubject;
- String type = "";
-
- // default test
- testSubject = createTestSubject();
- testSubject.setCapReqType(type);
- }
-
- @Test
- public void testGetVfcInstanceName() throws Exception {
- RelationMergeInfo testSubject;
- String result;
-
- // default test
- testSubject = createTestSubject();
- result = testSubject.getVfcInstanceName();
- }
-
- @Test
- public void testSetVfcInstanceName() throws Exception {
- RelationMergeInfo testSubject;
- String vfcInstanceName = "";
-
- // default test
- testSubject = createTestSubject();
- testSubject.setVfcInstanceName(vfcInstanceName);
- }
@Test
public void testGetRelDef() throws Exception {
@@ -59,15 +30,7 @@ public class RelationMergeInfoTest {
result = testSubject.getRelDef();
}
- @Test
- public void testSetRelDef() throws Exception {
- RelationMergeInfo testSubject;
- RequirementCapabilityRelDef relDef = null;
- // default test
- testSubject = createTestSubject();
- testSubject.setRelDef(relDef);
- }
@Test
public void testGetCapReqName() throws Exception {
@@ -79,13 +42,4 @@ public class RelationMergeInfoTest {
result = testSubject.getCapReqName();
}
- @Test
- public void testSetCapReqName() throws Exception {
- RelationMergeInfo testSubject;
- String capReqName = "";
-
- // default test
- testSubject = createTestSubject();
- testSubject.setCapReqName(capReqName);
- }
} \ No newline at end of file
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/VfRelationsMergeInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/VfRelationsMergeInfoTest.java
deleted file mode 100644
index 40a5ea5ee3..0000000000
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/VfRelationsMergeInfoTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.openecomp.sdc.be.components.merge.instance;
-
-import java.util.List;
-
-import org.junit.Test;
-
-public class VfRelationsMergeInfoTest {
-
- private VfRelationsMergeInfo createTestSubject() {
- return new VfRelationsMergeInfo(null, null);
- }
-
- @Test
- public void testGetFromRelationsInfo() throws Exception {
- VfRelationsMergeInfo testSubject;
- List<RelationMergeInfo> result;
-
- // default test
- testSubject = createTestSubject();
- result = testSubject.getFromRelationsInfo();
- }
-
- @Test
- public void testSetFromRelationsInfo() throws Exception {
- VfRelationsMergeInfo testSubject;
- List<RelationMergeInfo> fromRelationsInfo = null;
-
- // default test
- testSubject = createTestSubject();
- testSubject.setFromRelationsInfo(fromRelationsInfo);
- }
-
- @Test
- public void testGetToRelationsInfo() throws Exception {
- VfRelationsMergeInfo testSubject;
- List<RelationMergeInfo> result;
-
- // default test
- testSubject = createTestSubject();
- result = testSubject.getToRelationsInfo();
- }
-
- @Test
- public void testSetToRelationsInfo() throws Exception {
- VfRelationsMergeInfo testSubject;
- List<RelationMergeInfo> toRelationsInfo = null;
-
- // default test
- testSubject = createTestSubject();
- testSubject.setToRelationsInfo(toRelationsInfo);
- }
-} \ No newline at end of file