diff options
Diffstat (limited to 'catalog-model/src/test/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaOperationFacadeTest.java')
-rw-r--r-- | catalog-model/src/test/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaOperationFacadeTest.java | 237 |
1 files changed, 231 insertions, 6 deletions
diff --git a/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaOperationFacadeTest.java b/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaOperationFacadeTest.java index 971f4f79ab..621b275a67 100644 --- a/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaOperationFacadeTest.java +++ b/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaOperationFacadeTest.java @@ -48,6 +48,7 @@ import org.openecomp.sdc.be.dao.jsongraph.HealingJanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; +import org.openecomp.sdc.be.datatypes.elements.AttributeDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ListCapabilityDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ListRequirementDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; @@ -56,9 +57,13 @@ import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; import org.openecomp.sdc.be.datatypes.enums.PromoteVersionEnum; import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; +import org.openecomp.sdc.be.model.AttributeDefinition; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.ComponentInstanceAttribute; +import org.openecomp.sdc.be.model.ComponentInstanceOutput; import org.openecomp.sdc.be.model.ComponentInstanceProperty; +import org.openecomp.sdc.be.model.OutputDefinition; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.LifecycleStateEnum; import org.openecomp.sdc.be.model.ComponentParametersView; @@ -90,8 +95,12 @@ import java.util.Collections; import java.util.Arrays; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -122,7 +131,7 @@ public class ToscaOperationFacadeTest { private TopologyTemplateOperation topologyTemplateOperationMock; @Mock - private NodeTypeOperation nodeTypeOperation; + private NodeTypeOperation nodeTypeOperationMock; @Mock private NodeTemplateOperation nodeTemplateOperationMock; @@ -369,7 +378,7 @@ public class ToscaOperationFacadeTest { when(janusGraphDaoMock.getVertexById(id, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(graphVertex)); when(janusGraphDaoMock.getParentVertex(graphVertex, EdgeLabelEnum.VERSION, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(graphVertex)); when(topologyTemplateOperationMock.deleteToscaElement(graphVertex)).thenReturn(Either.left(toscaElement)); - when(nodeTypeOperation.createToscaElement(any(ToscaElement.class))).thenReturn(Either.left(nodeType)); + when(nodeTypeOperationMock.createToscaElement(any(ToscaElement.class))).thenReturn(Either.left(nodeType)); when(janusGraphDaoMock.getVertexById(null, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(graphVertex)); when(janusGraphDaoMock.createEdge(graphVertex, graphVertex, EdgeLabelEnum.VERSION, null)).thenReturn( JanusGraphOperationStatus.OK); @@ -397,7 +406,7 @@ public class ToscaOperationFacadeTest { component.setUniqueId(id); GraphVertex graphVertex = getTopologyTemplateVertex(); when(janusGraphDaoMock.getVertexById(id, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(graphVertex)); - when(nodeTypeOperation.markComponentToDelete(graphVertex)).thenReturn(Either.left(graphVertex)); + when(nodeTypeOperationMock.markComponentToDelete(graphVertex)).thenReturn(Either.left(graphVertex)); result = testInstance.markComponentToDelete(component); assertEquals(result, StorageOperationStatus.OK); } @@ -484,7 +493,8 @@ public class ToscaOperationFacadeTest { List<ToscaElement> toscaEleList = new ArrayList<>(); ToscaElement toscaElement = getToscaElementForTest(); toscaEleList.add(toscaElement); - when(nodeTypeOperation.getFollowedComponent(userId, lifecycleStates, lastStateStates, componentType)).thenReturn(Either.left(toscaEleList)); + when(nodeTypeOperationMock.getFollowedComponent(userId, lifecycleStates, lastStateStates, componentType)) + .thenReturn(Either.left(toscaEleList)); result = testInstance.getFollowed(userId, lifecycleStates, lastStateStates, componentType); assertTrue(result.isLeft()); assertEquals(1, result.left().value().size()); @@ -806,11 +816,226 @@ public class ToscaOperationFacadeTest { } @Test - public void associateRequirementsToServiceSuccessTest(){ + public void associateRequirementsToServiceSuccessTest() { StorageOperationStatus result = associateRequirementsToServiceWithStatus(StorageOperationStatus.OK); assertTrue(result == StorageOperationStatus.OK); } + @Test + public void test_addOutputsToComponent() { + final GraphVertex graphVertex = getTopologyTemplateVertex(); + final String componentId = "componentId"; + + doReturn(Either.left(graphVertex)).when(janusGraphDaoMock).getVertexById(componentId, JsonParseFlagEnum.NoParse); + doReturn(StorageOperationStatus.OK).when(topologyTemplateOperationMock) + .addToscaDataToToscaElement( + any(GraphVertex.class), eq(EdgeLabelEnum.OUTPUTS), eq(VertexTypeEnum.OUTPUTS), anyMap(), eq(JsonPresentationFields.NAME)); + + final Map<String, OutputDefinition> outputs = new HashMap<>(); + final OutputDefinition outputDefinition = new OutputDefinition(); + outputs.put("mock", outputDefinition); + final Either<List<OutputDefinition>, StorageOperationStatus> result = testInstance.addOutputsToComponent(outputs, componentId); + assertNotNull(result); + assertTrue(result.isLeft()); + assertFalse(result.left().value().isEmpty()); + assertThat(result.left().value().get(0)).isInstanceOf(OutputDefinition.class); + verify(janusGraphDaoMock, times(1)).getVertexById(componentId, JsonParseFlagEnum.NoParse); + verify(topologyTemplateOperationMock, times(1)).addToscaDataToToscaElement( + any(GraphVertex.class), eq(EdgeLabelEnum.OUTPUTS), eq(VertexTypeEnum.OUTPUTS), anyMap(), eq(JsonPresentationFields.NAME)); + } + + @Test + public void test_addComponentInstanceOutputsToComponent_updateComponentInstanceOutput() { + final Component component = new Resource(); + component.setUniqueId(COMPONENT_ID); + final Map<String, List<ComponentInstanceOutput>> map = new HashMap<>(); + final List<ComponentInstanceOutput> componentInstanceOutputList = new ArrayList<>(); + final ComponentInstanceOutput componentInstanceOutput = new ComponentInstanceOutput(); + componentInstanceOutput.setComponentInstanceId(COMPONENT_ID); + componentInstanceOutput.setComponentInstanceName(COMPONENT_ID); + componentInstanceOutput.setName(COMPONENT_ID); + componentInstanceOutputList.add(componentInstanceOutput); + map.put("mock", componentInstanceOutputList); + component.setComponentInstancesOutputs(map); + + doReturn(StorageOperationStatus.OK).when(nodeTemplateOperationMock) + .updateComponentInstanceOutput(any(Component.class), anyString(), any(ComponentInstanceOutput.class)); + + final Either<Map<String, List<ComponentInstanceOutput>>, StorageOperationStatus> result + = testInstance.addComponentInstanceOutputsToComponent(component, map); + assertNotNull(result); + assertTrue(result.isLeft()); + assertFalse(result.left().value().isEmpty()); + assertSame(result.left().value(), map); + verify(nodeTemplateOperationMock, times(1)) + .updateComponentInstanceOutput(any(Component.class), anyString(), any(ComponentInstanceOutput.class)); + + } + + @Test + public void test_addComponentInstanceOutputsToComponent_addComponentInstanceOutput() { + final Component component = new Resource(); + component.setUniqueId(COMPONENT_ID); + Map<String, List<ComponentInstanceOutput>> map = new HashMap<>(); + List<ComponentInstanceOutput> componentInstanceOutputList = new ArrayList<>(); + ComponentInstanceOutput componentInstanceOutput = new ComponentInstanceOutput(); + componentInstanceOutput.setComponentInstanceId(COMPONENT_ID); + componentInstanceOutput.setComponentInstanceName(COMPONENT_ID); + componentInstanceOutput.setName(COMPONENT_ID); + componentInstanceOutputList.add(componentInstanceOutput); + map.put("mock", componentInstanceOutputList); + component.setComponentInstancesOutputs(map); + + map = new HashMap<>(); + componentInstanceOutputList = new ArrayList<>(); + componentInstanceOutput = new ComponentInstanceOutput(); + componentInstanceOutput.setComponentInstanceId("mock"); + componentInstanceOutput.setComponentInstanceName("mock"); + componentInstanceOutput.setName("mock"); + componentInstanceOutputList.add(componentInstanceOutput); + map.put("mock", componentInstanceOutputList); + + final Either<Map<String, List<ComponentInstanceOutput>>, StorageOperationStatus> result = testInstance + .addComponentInstanceOutputsToComponent(component, map); + assertNotNull(result); + assertTrue(result.isRight()); + } + + @Test + public void test_addComponentInstanceAttributesToComponent() { + final Component component = new Resource(); + component.setUniqueId(COMPONENT_ID); + Map<String, List<ComponentInstanceAttribute>> map = new HashMap<>(); + List<ComponentInstanceAttribute> componentInstanceOutputList = new ArrayList<>(); + ComponentInstanceAttribute componentInstanceAttribute = new ComponentInstanceAttribute(); + componentInstanceAttribute.setComponentInstanceId(COMPONENT_ID); + componentInstanceAttribute.setUniqueId(COMPONENT_ID); + componentInstanceOutputList.add(componentInstanceAttribute); + map.put("mock", componentInstanceOutputList); + component.setComponentInstancesAttributes(map); + + doReturn(StorageOperationStatus.OK).when(nodeTemplateOperationMock) + .updateComponentInstanceAttribute(any(Component.class), anyString(), any(ComponentInstanceAttribute.class)); + + final Either<Map<String, List<ComponentInstanceAttribute>>, StorageOperationStatus> result + = testInstance.addComponentInstanceAttributesToComponent(component, map); + + assertNotNull(result); + assertTrue(result.isLeft()); + assertFalse(result.left().value().isEmpty()); + assertSame(result.left().value(), map); + verify(nodeTemplateOperationMock, times(1)) + .updateComponentInstanceAttribute(any(Component.class), anyString(), any(ComponentInstanceAttribute.class)); + } + + @Test + public void test_updateAttributeOfComponent_success() { + final GraphVertex graphVertex = getTopologyTemplateVertex(); + final String componentId = "componentId"; + final Component component = new Resource(); + component.setUniqueId(COMPONENT_ID); + doReturn(StorageOperationStatus.OK).when(nodeTypeOperationMock).updateToscaDataOfToscaElement( + anyString(), eq(EdgeLabelEnum.ATTRIBUTES), eq(VertexTypeEnum.ATTRIBUTES), any(AttributeDefinition.class), + eq(JsonPresentationFields.NAME)); + doReturn(Either.left(graphVertex)).when(janusGraphDaoMock).getVertexById(eq(componentId), any(JsonParseFlagEnum.class)); + + final ToscaElement toscaElement = getToscaElementForTest(); + final Map<String, AttributeDataDefinition> attributes = new HashMap<>(); + final AttributeDefinition attributeDefinition = new AttributeDefinition(); + attributeDefinition.setName("mock"); + attributes.put("mock", attributeDefinition); + toscaElement.setAttributes(attributes); + doReturn(Either.left(toscaElement)).when(topologyTemplateOperationMock) + .getToscaElement(ArgumentMatchers.eq(graphVertex), any(ComponentParametersView.class)); + + final Either<AttributeDefinition, StorageOperationStatus> result + = testInstance.updateAttributeOfComponent(component, attributeDefinition); + assertNotNull(result); + } + + @Test + public void test_updateAttributeOfComponent_isNotPresent() { + final GraphVertex graphVertex = getTopologyTemplateVertex(); + final String componentId = "componentId"; + final Component component = new Resource(); + component.setUniqueId(COMPONENT_ID); + doReturn(StorageOperationStatus.OK).when(nodeTypeOperationMock).updateToscaDataOfToscaElement( + anyString(), eq(EdgeLabelEnum.ATTRIBUTES), eq(VertexTypeEnum.ATTRIBUTES), any(AttributeDefinition.class), + eq(JsonPresentationFields.NAME)); + doReturn(Either.left(graphVertex)).when(janusGraphDaoMock).getVertexById(eq(componentId), any(JsonParseFlagEnum.class)); + + final ToscaElement toscaElement = getToscaElementForTest(); + final Map<String, AttributeDataDefinition> attributes = new HashMap<>(); + final AttributeDefinition attributeDefinition = new AttributeDefinition(); + attributeDefinition.setName("mock"); + attributes.put("mock", attributeDefinition); + toscaElement.setAttributes(attributes); + doReturn(Either.left(toscaElement)).when(topologyTemplateOperationMock) + .getToscaElement(ArgumentMatchers.eq(graphVertex), any(ComponentParametersView.class)); + + final AttributeDefinition attributeDefinitionOneMore = new AttributeDefinition(); + attributeDefinitionOneMore.setName("Anothermock"); + + final Either<AttributeDefinition, StorageOperationStatus> result + = testInstance.updateAttributeOfComponent(component, attributeDefinitionOneMore); + assertNotNull(result); + } + + @Test + public void test_updateComponentInstanceAttributes() { + final GraphVertex graphVertex = getTopologyTemplateVertex(); + final String componentId = "componentId"; + final Component component = new Resource(); + component.setUniqueId(COMPONENT_ID); + + final List<ComponentInstanceAttribute> attributes = new ArrayList<>(); + final ComponentInstanceAttribute attributeDefinition = new ComponentInstanceAttribute(); + attributeDefinition.setName("mock"); + attributes.add(attributeDefinition); + + doReturn(StorageOperationStatus.OK).when(nodeTemplateOperationMock).updateComponentInstanceAttributes(component, componentId, attributes); + + final StorageOperationStatus result = testInstance.updateComponentInstanceAttributes(component, componentId, attributes); + assertNotNull(result); + assertEquals(StorageOperationStatus.OK, result); + verify(nodeTemplateOperationMock, times(1)).updateComponentInstanceAttributes(component, componentId, attributes); + } + + @Test + public void test_updateComponentInstanceOutputs() { + final GraphVertex graphVertex = getTopologyTemplateVertex(); + final String componentId = "componentId"; + final Component component = new Resource(); + component.setUniqueId(COMPONENT_ID); + + final List<ComponentInstanceOutput> list = new ArrayList<>(); + final ComponentInstanceOutput output = new ComponentInstanceOutput(); + output.setName("mock"); + list.add(output); + + doReturn(StorageOperationStatus.OK).when(nodeTemplateOperationMock).updateComponentInstanceOutputs(component, componentId, list); + + final StorageOperationStatus result = testInstance.updateComponentInstanceOutputs(component, componentId, list); + assertNotNull(result); + assertEquals(StorageOperationStatus.OK, result); + verify(nodeTemplateOperationMock, times(1)).updateComponentInstanceOutputs(component, componentId, list); + } + + @Test + public void test_deleteOutputOfResource() { + final Component component = new Resource(); + component.setUniqueId(COMPONENT_ID); + + doReturn(StorageOperationStatus.OK).when(nodeTypeOperationMock) + .deleteToscaDataElement(anyString(), eq(EdgeLabelEnum.OUTPUTS), eq(VertexTypeEnum.OUTPUTS), anyString(), eq(JsonPresentationFields.NAME)); + + final StorageOperationStatus result = testInstance.deleteOutputOfResource(component, "mock"); + assertNotNull(result); + assertEquals(StorageOperationStatus.OK, result); + verify(nodeTypeOperationMock, times(1)) + .deleteToscaDataElement(anyString(), eq(EdgeLabelEnum.OUTPUTS), eq(VertexTypeEnum.OUTPUTS), anyString(), eq(JsonPresentationFields.NAME)); + } + private StorageOperationStatus associateRequirementsToServiceWithStatus(StorageOperationStatus status) { Map<String, ListRequirementDataDefinition> requirementsMap = new HashedMap(); String componentId = "componentid"; @@ -819,7 +1044,7 @@ public class ToscaOperationFacadeTest { requirementsMap.put("requirements1", listRequirementDataDefinition1); GraphVertex vertex; - if(status == StorageOperationStatus.OK){ + if (status == StorageOperationStatus.OK) { vertex = getTopologyTemplateVertex(); } else { vertex = getNodeTypeVertex(); |