aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/utils/MergeInstanceUtilsTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/utils/MergeInstanceUtilsTest.java')
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/utils/MergeInstanceUtilsTest.java381
1 files changed, 201 insertions, 180 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/utils/MergeInstanceUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/utils/MergeInstanceUtilsTest.java
index 9d07be276b..ef87dba483 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/utils/MergeInstanceUtilsTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/utils/MergeInstanceUtilsTest.java
@@ -1,70 +1,71 @@
package org.openecomp.sdc.be.components.merge.utils;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.when;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
+import fj.data.Either;
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.utils.ExceptionUtils;
+import org.openecomp.sdc.be.components.utils.ComponentInstanceBuilder;
+import org.openecomp.sdc.be.components.utils.GroupDefinitionBuilder;
+import org.openecomp.sdc.be.components.utils.ResourceBuilder;
+import org.openecomp.sdc.be.components.utils.ServiceBuilder;
+import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
-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.*;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
+import org.openecomp.sdc.be.model.operations.StorageException;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
-import fj.data.Either;
+import java.util.Map;
+
+import static java.util.Arrays.asList;
+import static java.util.Collections.emptyList;
+import static java.util.Collections.singletonList;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class MergeInstanceUtilsTest {
- private MergeInstanceUtils mergeInstanceUtils = new MergeInstanceUtils();
+
+ private MergeInstanceUtils mergeInstanceUtils;
@Mock
private ToscaOperationFacade toscaOperationFacade;
+ @Mock
+ private TitanDao titanDao;
+
@Before
public void startUp() {
- mergeInstanceUtils.setToscaOperationFacade(toscaOperationFacade);
+ ExceptionUtils exceptionUtils = new ExceptionUtils(titanDao);
+ mergeInstanceUtils = new MergeInstanceUtils(toscaOperationFacade, exceptionUtils);
}
@Test
public void testMapOldToNewCapabilitiesOwnerIdsComponentComponent() {
Component container = new Service();
- Resource vfOld = new Resource();
- vfOld.setComponentType(ComponentTypeEnum.RESOURCE);
- vfOld.setResourceType(ResourceTypeEnum.VF);
-
- ComponentInstance vfci1 = createComponentInstance("SRV1.VF1.VFI_1.VFC1.VFCI_1" ,"SRV1.VF1.VFI_1.VFC1", false);
- createVfc(vfci1);
- List<ComponentInstance> vfciList = Arrays.asList(vfci1);
- vfOld.setComponentInstances(vfciList);
-
+ ComponentInstance vfciOld = createVfcInstance("SRV1.VF1.VFI_1.VFC1.VFCI_1", "SRV1.VF1.VFI_1.VFC1");
+ GroupDefinition oldGrp = createGroup("group1", "grp1Id");
+ Component vfOld = createVf("prevVfId", vfciOld, oldGrp);
ComponentInstance vfi1 = createComponentInstance("SRV1.VF2.VFI_1" ,"SRV1.VF2", false);
- container.setComponentInstances(Arrays.asList(vfi1));
-
- Resource vfNew = new Resource();
- vfNew.setComponentType(ComponentTypeEnum.RESOURCE);
- vfNew.setResourceType(ResourceTypeEnum.VF);
-
- List<ComponentInstance> vfciList2 = Arrays.asList(vfci1);
- vfNew.setComponentInstances(vfciList2);
+ container.setComponentInstances(singletonList(vfi1));
- Either<Component, StorageOperationStatus> eitherComponent = Either.left(vfNew);
- when(toscaOperationFacade.getToscaElement(vfi1.getComponentUid())).thenReturn(eitherComponent);
+ ComponentInstance vfciNew = createComponentInstance("SRV1.VF1.VFI_1.VFC1.VFCI_2", "SRV1.VF1.VFI_1.VFC1", false);
+ GroupDefinition newGrp = createGroup("group1", "newGrp1Id");
+ Component vfNew = createVf("newVfId", vfciNew, newGrp);
+ when(toscaOperationFacade.getToscaElement(vfi1.getComponentUid())).thenReturn(Either.left(vfNew));
-
- Map<String, String> mapResult = mergeInstanceUtils.mapOldToNewCapabilitiesOwnerIds(container, vfOld, "SRV1.VF2.VFI_1", Arrays.asList("SRV1.VF1.VFI_1.VFC1.VFCI_1"));
- assertEquals("SRV1.VF1.VFI_1.VFC1.VFCI_1", mapResult.get("SRV1.VF1.VFI_1.VFC1.VFCI_1"));
+ Map<String, String> mapResult = mergeInstanceUtils.mapOldToNewCapabilitiesOwnerIds(container, vfOld, "SRV1.VF2.VFI_1", asList("SRV1.VF1.VFI_1.VFC1.VFCI_1", oldGrp.getUniqueId()));
+ assertThat(mapResult)
+ .containsEntry("SRV1.VF1.VFI_1.VFC1.VFCI_1", "SRV1.VF1.VFI_1.VFC1.VFCI_2")
+ .containsEntry(oldGrp.getUniqueId(), newGrp.getUniqueId());
}
@Test
@@ -73,40 +74,21 @@ public class MergeInstanceUtilsTest {
container.setComponentType(ComponentTypeEnum.RESOURCE);
container.setResourceType(ResourceTypeEnum.VF);
-
Component serviceOld = new Service();
serviceOld.setComponentType(ComponentTypeEnum.SERVICE);
- Resource vfOld = new Resource();
- vfOld.setComponentType(ComponentTypeEnum.RESOURCE);
- vfOld.setResourceType(ResourceTypeEnum.VF);
-
- ComponentInstance vfciOld = createComponentInstance("SRV1.VF1.VFI_1.VFC1.VFCI_1" ,"SRV1.VF1.VFI_1.VFC1", false);
- createVfc(vfciOld);
- List<ComponentInstance> vfciList = Arrays.asList(vfciOld);
- vfOld.setComponentInstances(vfciList);
-
- ComponentInstance vfiOld = createComponentInstance("SRV1.VF1.VFI_1" ,"SRV1.VF1", false);
- serviceOld.setComponentInstances(Arrays.asList(vfiOld));
- Either<Component, StorageOperationStatus> eitherComponent = Either.left(vfOld);
- when(toscaOperationFacade.getToscaElement(vfiOld.getComponentUid())).thenReturn(eitherComponent);
+ ComponentInstance vfciOld = createVfcInstance("SRV1.VF1.VFI_1.VFC1.VFCI_1", "SRV1.VF1.VFI_1.VFC1");
+ GroupDefinition prevGroup = createGroup("grp1", "grp1Old");
+ ComponentInstance vfiOld = createVfInstance("SRV1.VF1.VFI_1", vfciOld, prevGroup);
+ serviceOld.setComponentInstances(singletonList(vfiOld));
Component serviceNew = new Service();
serviceNew.setComponentType(ComponentTypeEnum.SERVICE);
- Resource vfNew = new Resource();
- vfNew.setComponentType(ComponentTypeEnum.RESOURCE);
- vfNew.setResourceType(ResourceTypeEnum.VF);
-
- ComponentInstance vfciNew = createComponentInstance("SRV1.VF2.VFI_1.VFC2.VFCI_1" ,"SRV1.VF2.VFI_1.VFC2", false);
- createVfc(vfciNew);
- List<ComponentInstance> vfciList2 = Arrays.asList(vfciNew);
- vfNew.setComponentInstances(vfciList2);
-
- ComponentInstance vfiNew = createComponentInstance("SRV1.VF2.VFI_1" ,"SRV1.VF2", false);
- serviceNew.setComponentInstances(Arrays.asList(vfiNew));
- Either<Component, StorageOperationStatus> eitherComponent3 = Either.left(vfNew);
- when(toscaOperationFacade.getToscaElement(vfiNew.getComponentUid())).thenReturn(eitherComponent3);
+ ComponentInstance vfciNew = createVfcInstance("SRV1.VF2.VFI_1.VFC2.VFCI_1", "SRV1.VF2.VFI_1.VFC2");
+ GroupDefinition grpNew = createGroup("grp1", "newGrp1");
+ ComponentInstance vfiNew = createVfInstance("SRV1.VF2.VFI_1" ,vfciNew, grpNew);
+ serviceNew.setComponentInstances(singletonList(vfiNew));
ComponentInstance proxyVfciNew = createComponentInstance("SRV1.PROXY_VFC_NEW.VFCI1", "SRV1.PROXY_VFC_NEW", true);
proxyVfciNew.setSourceModelUid("SRV_PROXY_NEW");
@@ -117,44 +99,66 @@ public class MergeInstanceUtilsTest {
Either<Component, StorageOperationStatus> eitherComponent4 = Either.left(serviceNew);
when(toscaOperationFacade.getToscaElement(proxyVfciNew.getSourceModelUid())).thenReturn(eitherComponent4);
- container.setComponentInstances(Arrays.asList(proxyVfciNew));
+ container.setComponentInstances(singletonList(proxyVfciNew));
- Map<String, String> mapResult = mergeInstanceUtils.mapOldToNewCapabilitiesOwnerIds(container, serviceOld, "SRV1.PROXY_VFC_NEW.VFCI1", Arrays.asList("SRV1.VF1.VFI_1.VFC1.VFCI_1"));
+ Map<String, String> mapResult = mergeInstanceUtils.mapOldToNewCapabilitiesOwnerIds(container, serviceOld, "SRV1.PROXY_VFC_NEW.VFCI1", asList("SRV1.VF1.VFI_1.VFC1.VFCI_1", prevGroup.getUniqueId()));
+ assertThat(mapResult)
+ .containsEntry("SRV1.VF1.VFI_1.VFC1.VFCI_1", "SRV1.VF2.VFI_1.VFC2.VFCI_1")
+ .containsEntry(prevGroup.getUniqueId(), grpNew.getUniqueId());
+ }
- assertEquals("SRV1.VF2.VFI_1.VFC2.VFCI_1", mapResult.get("SRV1.VF1.VFI_1.VFC1.VFCI_1"));
+ @Test
+ public void whenFailingToGetInstanceOriginNodeType_throwExceptionAndRollBack() {
+ Resource oldVf = new ResourceBuilder()
+ .setResourceType(ResourceTypeEnum.VF)
+ .setComponentType(ComponentTypeEnum.RESOURCE)
+ .build();
+
+ ComponentInstance newVfInstance = createComponentInstance("inst1", "inst1Uid", false);
+ Resource container = new ResourceBuilder()
+ .addComponentInstance(newVfInstance)
+ .build();
+ when(toscaOperationFacade.getToscaElement("inst1Uid")).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
+ assertThatExceptionOfType(StorageException.class)
+ .isThrownBy(() -> mergeInstanceUtils.mapOldToNewCapabilitiesOwnerIds(container, oldVf, "inst1", emptyList()));
+ verify(titanDao).rollback();
}
@Test
public void testMapOldToNewCapabilitiesOwnerIdsComponentInstanceComponentInstance() {
- ComponentInstance oldInstance = createComponentInstance("SRV1.VF1.VFI_1.VFC1.VFCI_1" ,"SRV1.VF1.VFI_1.VFC1", false);
- createVfc(oldInstance);
-
- ComponentInstance newInstance = createComponentInstance("SRV1.VF1.VFI_1.VFC2.VFCI_1" ,"SRV1.VF1.VFI_1.VFC2", false);
- createVfc(newInstance);
-
+ ComponentInstance oldInstance = createVfcInstance("SRV1.VF1.VFI_1.VFC1.VFCI_1", "SRV1.VF1.VFI_1.VFC1");
+ ComponentInstance newInstance = createVfcInstance("SRV1.VF1.VFI_1.VFC2.VFCI_1", "SRV1.VF1.VFI_1.VFC2");
Map<String, String> mapResult = mergeInstanceUtils.mapOldToNewCapabilitiesOwnerIds(oldInstance, newInstance);
assertEquals("SRV1.VF1.VFI_1.VFC2.VFCI_1", mapResult.get("SRV1.VF1.VFI_1.VFC1.VFCI_1"));
}
@Test
- public void testMapOldToNewCapabilitiesOwnerIdsComponentInstComponentInst_Proxy() {
+ public void testMapOldToNewCapabilitiesOwnerIdsInstToInstWithGroups() {
+ ComponentInstance prevInstance = createVfcInstance("prevInst1", "prevInst1Uid");
+ GroupDefinition prevGroup = createGroup("grp1", "prevGrp1");
+ ComponentInstance prevInstanceRoot = createVfInstance("prevId", prevInstance, prevGroup);
+
+ ComponentInstance currInstance = createVfcInstance("newInst1", "newInst1Uid");
+ GroupDefinition currGroup = createGroup("grp1", "currGrp1");
+ ComponentInstance newInstanceRoot = createVfInstance("currId", currInstance, currGroup);
+
+ Map<String, String> mapResult = mergeInstanceUtils.mapOldToNewCapabilitiesOwnerIds(prevInstanceRoot, newInstanceRoot);
+ assertThat(mapResult)
+ .containsEntry(prevInstance.getUniqueId(), currInstance.getUniqueId())
+ .containsEntry(prevGroup.getUniqueId(), currGroup.getUniqueId());
+ }
- Component serviceOld = new Service();
- serviceOld.setComponentType(ComponentTypeEnum.SERVICE);
- Resource vfOld = new Resource();
- vfOld.setComponentType(ComponentTypeEnum.RESOURCE);
- vfOld.setResourceType(ResourceTypeEnum.VF);
+ @Test
+ public void testMapOldToNewCapabilitiesOwnerIdsComponentInstComponentInst_Proxy() {
- ComponentInstance vfciOld = createComponentInstance("SRV1.VF1.VFI_1.VFC1.VFCI_1" ,"SRV1.VF1.VFI_1.VFC1", false);
- createVfc(vfciOld);
- List<ComponentInstance> vfciList = Arrays.asList(vfciOld);
- vfOld.setComponentInstances(vfciList);
+ ComponentInstance vfciOld = createVfcInstance("SRV1.VF1.VFI_1.VFC1.VFCI_1", "SRV1.VF1.VFI_1.VFC1");
+ GroupDefinition oldGrp = createGroup("grp1", "grp1Old");
+ ComponentInstance vfiOld = createVfInstance("SRV1.VF1.VFI_1", vfciOld, oldGrp);
- ComponentInstance vfiOld = createComponentInstance("SRV1.VF1.VFI_1" ,"SRV1.VF1", false);
- serviceOld.setComponentInstances(Arrays.asList(vfiOld));
- Either<Component, StorageOperationStatus> eitherComponent = Either.left(vfOld);
- when(toscaOperationFacade.getToscaElement(vfiOld.getComponentUid())).thenReturn(eitherComponent);
+ Component serviceOld = new Service();
+ serviceOld.setComponentType(ComponentTypeEnum.SERVICE);
+ serviceOld.setComponentInstances(singletonList(vfiOld));
ComponentInstance proxyVfciOld = createComponentInstance("SRV1.PROXY_VFC.VFCI1", "SRV1.PROXY_VFC", true);
proxyVfciOld.setSourceModelUid("SRV_PROXY");
@@ -165,23 +169,13 @@ public class MergeInstanceUtilsTest {
Either<Component, StorageOperationStatus> eitherComponent2 = Either.left(serviceOld);
when(toscaOperationFacade.getToscaElement(proxyVfciOld.getSourceModelUid())).thenReturn(eitherComponent2);
+ ComponentInstance vfciNew = createVfcInstance("SRV1.VF2.VFI_1.VFC2.VFCI_1", "SRV1.VF2.VFI_1.VFC2");
+ GroupDefinition newGrp = createGroup("grp1", "grp1New");
+ ComponentInstance vfiNew = createVfInstance("SRV1.VF2.VFI_1" ,vfciNew, newGrp);
Component serviceNew = new Service();
serviceNew.setComponentType(ComponentTypeEnum.SERVICE);
-
- Resource vfNew = new Resource();
- vfNew.setComponentType(ComponentTypeEnum.RESOURCE);
- vfNew.setResourceType(ResourceTypeEnum.VF);
-
- ComponentInstance vfciNew = createComponentInstance("SRV1.VF2.VFI_1.VFC2.VFCI_1" ,"SRV1.VF2.VFI_1.VFC2", false);
- createVfc(vfciNew);
- List<ComponentInstance> vfciList2 = Arrays.asList(vfciNew);
- vfNew.setComponentInstances(vfciList2);
-
- ComponentInstance vfiNew = createComponentInstance("SRV1.VF2.VFI_1" ,"SRV1.VF2", false);
- serviceNew.setComponentInstances(Arrays.asList(vfiNew));
- Either<Component, StorageOperationStatus> eitherComponent3 = Either.left(vfNew);
- when(toscaOperationFacade.getToscaElement(vfiNew.getComponentUid())).thenReturn(eitherComponent3);
+ serviceNew.setComponentInstances(singletonList(vfiNew));
ComponentInstance proxyVfciNew = createComponentInstance("SRV1.PROXY_VFC_NEW.VFCI1", "SRV1.PROXY_VFC_NEW", true);
proxyVfciNew.setSourceModelUid("SRV_PROXY_NEW");
@@ -193,132 +187,150 @@ public class MergeInstanceUtilsTest {
when(toscaOperationFacade.getToscaElement(proxyVfciNew.getSourceModelUid())).thenReturn(eitherComponent4);
Map<String, String> mapResult = mergeInstanceUtils.mapOldToNewCapabilitiesOwnerIds(proxyVfciOld, proxyVfciNew);
- assertEquals("SRV1.VF2.VFI_1.VFC2.VFCI_1", mapResult.get("SRV1.VF1.VFI_1.VFC1.VFCI_1"));
+ assertThat(mapResult)
+ .containsEntry("SRV1.VF1.VFI_1.VFC1.VFCI_1", "SRV1.VF2.VFI_1.VFC2.VFCI_1")
+ .containsEntry(oldGrp.getUniqueId(), newGrp.getUniqueId());
}
@Test
- public void testConvertToVfciNameMap() {
- ComponentInstance componentInstance1 = new ComponentInstance();
- componentInstance1.setName("ComponentInstance1");
-
- ComponentInstance componentInstance2 = new ComponentInstance();
- componentInstance2.setName("ComponentInstance2");
-
- List<ComponentInstance> componentInstances = Arrays.asList(componentInstance1, componentInstance2);
- Map<String, ComponentInstance> mapResult = mergeInstanceUtils.convertToVfciNameMap(componentInstances);
-
- assertEquals(2, mapResult.size());
- assertEquals(componentInstance1, mapResult.get("ComponentInstance1"));
- assertEquals(componentInstance2, mapResult.get("ComponentInstance2"));
- }
-
- @Test
- public void testGetVfcInstances_NullComponentInstance() {
- List<ComponentInstance> vfcInstances = mergeInstanceUtils.getVfcInstances(null);
-
- assertTrue(vfcInstances.isEmpty());
+ public void testGetInstanceAtomicBuildingBlocks_NullComponentInstance() {
+ assertEmpty(mergeInstanceUtils.getInstanceAtomicBuildingBlocks(null));
}
@Test
- public void testGetVfcInstances_ComponentInstanceFailedLoadComponent() {
+ public void testgetInstanceAtomicBuildingBlocks_ComponentInstanceFailedLoadComponent() {
ComponentInstance componentInstance = createComponentInstance("SRV1.VF1.VFI_1", "SRV1.VF1", false);
-
Either<Component, StorageOperationStatus> eitherComponent = Either.right(StorageOperationStatus.NOT_FOUND);
when(toscaOperationFacade.getToscaElement(componentInstance.getComponentUid())).thenReturn(eitherComponent);
-
- List<ComponentInstance> vfcInstances = mergeInstanceUtils.getVfcInstances(componentInstance);
-
- assertTrue(vfcInstances.isEmpty());
+ assertThatExceptionOfType(StorageException.class).isThrownBy(() -> mergeInstanceUtils.getInstanceAtomicBuildingBlocks(componentInstance));
}
@Test
- public void testGetVfcInstances_ComponentInstanceFailedLoadActualComponent() {
+ public void testGetInstanceAtomicBuildingBlocks_ComponentInstanceFailedLoadActualComponent() {
ComponentInstance componentInstance = createComponentInstance("SRV1.PROXY_VFC.VFCI1", "SRV1.PROXY_VFC", true);
componentInstance.setSourceModelUid("SRV_PROXY");
-
Either<Component, StorageOperationStatus> eitherComponent = Either.right(StorageOperationStatus.NOT_FOUND);
when(toscaOperationFacade.getToscaElement(componentInstance.getSourceModelUid())).thenReturn(eitherComponent);
-
- List<ComponentInstance> vfcInstances = mergeInstanceUtils.getVfcInstances(componentInstance);
-
- assertTrue(vfcInstances.isEmpty());
+ assertThatExceptionOfType(StorageException.class).isThrownBy(() -> mergeInstanceUtils.getInstanceAtomicBuildingBlocks(componentInstance));
}
@Test
- public void testGetVfcInstancesAtomicComponentInstance() {
- ComponentInstance componentInstance = createComponentInstance("SRV1.VF1.VFI_1.VFC1.VFCI_1" ,"SRV1.VF1.VFI_1.VFC1", false);
-
- createVfc(componentInstance);
-
- List<ComponentInstance> vfcInstances = mergeInstanceUtils.getVfcInstances(componentInstance);
-
- assertEquals(1, vfcInstances.size());
- assertEquals(componentInstance, vfcInstances.get(0));
+ public void testGetAtomicBuildingBlocks() {
+ ComponentInstance componentInstance = createVfcInstance("inst1", "inst1Uid");
+ GroupDefinition group = createGroup("grp1", "grp1Id");
+ ComponentInstance vfi = createVfInstance("vfi", componentInstance, group);
+ ComponentInstanceBuildingBlocks instanceBuildingBlocks = mergeInstanceUtils.getInstanceAtomicBuildingBlocks(vfi);
+ assertThat(instanceBuildingBlocks)
+ .extracting("vfcInstances", "groups")
+ .containsExactlyInAnyOrder(singletonList(componentInstance), singletonList(group));
}
-
@Test
- public void testGetVfcInstancesNonAtomicComponentInstance() {
- ComponentInstance componentInstance = createComponentInstance("SRV1.VF1.VFI_1", "SRV1.VF1", false);
-
- Resource vf = new Resource();
- Either<Component, StorageOperationStatus> eitherComponent = Either.left(vf);
- vf.setComponentType(ComponentTypeEnum.RESOURCE);
- vf.setResourceType(ResourceTypeEnum.VF);
-
- ComponentInstance vfci = createComponentInstance("SRV1.VF1.VFI_1.VFC1.VFCI_1" ,"SRV1.VF1.VFI_1.VFC1", false);
- createVfc(vfci);
- List<ComponentInstance> vfciList = Arrays.asList(vfci);
-
- vf.setComponentInstances(vfciList);
- when(toscaOperationFacade.getToscaElement(componentInstance.getComponentUid())).thenReturn(eitherComponent);
+ public void testGetAtomicBuildingBlocksComponentInstance_noGroups() {
+ ComponentInstance componentInstance = createVfcInstance("SRV1.VF1.VFI_1.VFC1.VFCI_1", "SRV1.VF1.VFI_1.VFC1");
+ ComponentInstanceBuildingBlocks instanceBuildingBlocks = mergeInstanceUtils.getInstanceAtomicBuildingBlocks(componentInstance);
+ assertThat(instanceBuildingBlocks)
+ .extracting("vfcInstances", "groups")
+ .containsExactly(singletonList(componentInstance), emptyList());
+ }
- List<ComponentInstance> vfcInstances = mergeInstanceUtils.getVfcInstances(componentInstance);
+ @Test
+ public void testGetAtomicBuildingBlocks_noInstances() {
+ GroupDefinition group = createGroup("grp1", "grp1Id");
+ ComponentInstance vfi = createVfInstance("vfi", null, group);
+ ComponentInstanceBuildingBlocks instanceBuildingBlocks = mergeInstanceUtils.getInstanceAtomicBuildingBlocks(vfi);
+ assertThat(instanceBuildingBlocks)
+ .extracting("groups", "vfcInstances")
+ .containsExactlyInAnyOrder(singletonList(group), emptyList());
+ }
- assertEquals(vfciList, vfcInstances);
+ @Test
+ public void testGetAtomicBuildingBlocks_noDuplication() {
+ GroupDefinition group1FirstCopy = createGroup("grp1", "grp1Id");
+ GroupDefinition group1SecondCopy = createGroup("grp1", "grp1Id");
+
+ ComponentInstance cmtInst1FirstCopy = createVfcInstance("inst1", "inst1Uid");
+ ComponentInstance cmtInst1SecondCopy = createVfcInstance("inst1", "inst1Uid");
+
+ ComponentInstance vfi = createVfInstance("vfi", cmtInst1FirstCopy, group1FirstCopy);
+ ComponentInstance vfi2 = createVfInstance("vfi2", cmtInst1SecondCopy, group1SecondCopy);
+
+ Service service = new ServiceBuilder()
+ .addComponentInstance(vfi)
+ .addComponentInstance(vfi2)
+ .setUniqueId("service1")
+ .build();
+
+ ComponentInstance proxy = createServiceProxy("serviceProxy", service);
+ ComponentInstanceBuildingBlocks instanceAtomicBuildingBlocks = mergeInstanceUtils.getInstanceAtomicBuildingBlocks(proxy);
+ assertThat(instanceAtomicBuildingBlocks)
+ .extracting("groups", "vfcInstances")
+ .containsExactlyInAnyOrder(singletonList(group1FirstCopy), singletonList(cmtInst1FirstCopy));
}
@Test
- public void testGetVfcInstances_ComponentNullI_nstanceComponent() {
- List<ComponentInstance> vfcInstances = mergeInstanceUtils.getVfcInstances(null, new Resource());
+ public void testGetAtomicBuildingBlocks_ComponentNull_InstanceComponent() {
+ assertEmpty(mergeInstanceUtils.getInstanceAtomicBuildingBlocks(null, new Resource()));
+ }
- assertTrue(vfcInstances.isEmpty());
+ @Test
+ public void testGetInstanceAtomicBuildingBlocks_ComponentInstance_NullComponent() {
+ assertEmpty(mergeInstanceUtils.getInstanceAtomicBuildingBlocks(new ComponentInstance(), null));
}
@Test
- public void testGetVfcInstances_ComponentInstance_NullComponent() {
- List<ComponentInstance> vfcInstances = mergeInstanceUtils.getVfcInstances(new ComponentInstance(), null);
+ public void testGetInstanceAtomicBuildingBlocks_NullComponentInstance_NullComponent() {
+ assertEmpty(mergeInstanceUtils.getInstanceAtomicBuildingBlocks(null, null));
+ }
- assertTrue(vfcInstances.isEmpty());
+ private void assertEmpty(ComponentInstanceBuildingBlocks componentInstanceBuildingBlocks) {
+ assertThat(componentInstanceBuildingBlocks)
+ .extracting("vfcInstances", "groups")
+ .containsExactly(emptyList(), emptyList());
}
- @Test
- public void testGetVfcInstances_NullComponentInstance_NullComponent() {
- List<ComponentInstance> vfcInstances = mergeInstanceUtils.getVfcInstances(null, null);
+ private ComponentInstance createVfcInstance(String instId, String instUid) {
+ ComponentInstance vfci = createComponentInstance(instId, instUid, false);
+ createVfc(vfci);
+ return vfci;
+ }
- assertTrue(vfcInstances.isEmpty());
+ private ComponentInstance createVfInstance(String id, ComponentInstance withInstance, GroupDefinition withGroup) {
+ Component vf = createVf(id, withInstance, withGroup);
+ ComponentInstance vfInstance = new ComponentInstanceBuilder().setComponentUid(vf.getUniqueId()).build();
+ when(toscaOperationFacade.getToscaElement(id)).thenReturn(Either.left(vf));
+ return vfInstance;
}
+ private ComponentInstance createServiceProxy(String id, Service fromService) {
+ when(toscaOperationFacade.getToscaElement(fromService.getUniqueId())).thenReturn(Either.left(fromService));
+ return createComponentInstance(id, fromService.getUniqueId(), true);
+ }
+
+ private Component createVf(String id, ComponentInstance instance, GroupDefinition group) {
+ return new ResourceBuilder()
+ .setResourceType(ResourceTypeEnum.VF)
+ .setComponentType(ComponentTypeEnum.RESOURCE)
+ .addGroup(group)
+ .addComponentInstance(instance)
+ .setUniqueId(id)
+ .build();
+ }
- /**
- * @param uniqueId
- * @param componentUid
- * @param isProxy
- * @return
- */
private ComponentInstance createComponentInstance(String uniqueId, String componentUid, boolean isProxy) {
ComponentInstance componentInstance = new ComponentInstance();
componentInstance.setUniqueId(uniqueId);
- componentInstance.setComponentUid(componentUid);
componentInstance.setIsProxy(isProxy);
+ if (isProxy) {
+ componentInstance.setSourceModelUid(componentUid);
+ } else {
+ componentInstance.setComponentUid(componentUid);
+ }
return componentInstance;
}
- /**
- * @param componentInstance
- */
private void createVfc(ComponentInstance componentInstance) {
Resource vfc = new Resource();
Either<Component, StorageOperationStatus> eitherComponent = Either.left(vfc);
@@ -326,4 +338,13 @@ public class MergeInstanceUtilsTest {
vfc.setResourceType(ResourceTypeEnum.VFC);
when(toscaOperationFacade.getToscaElement(componentInstance.getComponentUid())).thenReturn(eitherComponent);
}
+
+ private GroupDefinition createGroup(String invariantName, String id) {
+ return GroupDefinitionBuilder.create()
+ .setInvariantName(invariantName)
+ .setUniqueId(id)
+ .setName(id + "name")
+ .build();
+
+ }
}