From b08daeee5442d8422e2e23047ed13aa10d8303f9 Mon Sep 17 00:00:00 2001 From: MichaelMorris Date: Tue, 25 May 2021 09:32:31 +0100 Subject: Support adding data types to model Signed-off-by: MichaelMorris Issue-ID: SDC-3611 Change-Id: Ia9fd2437b71a2cd4fc853ff6a1f4fd37fe09a685 --- .../operations/impl/PropertyOperationTest.java | 124 +++++++++++---------- 1 file changed, 67 insertions(+), 57 deletions(-) (limited to 'catalog-model/src/test') diff --git a/catalog-model/src/test/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperationTest.java b/catalog-model/src/test/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperationTest.java index 254208e06c..6812b44b41 100644 --- a/catalog-model/src/test/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperationTest.java +++ b/catalog-model/src/test/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperationTest.java @@ -26,11 +26,15 @@ import org.apache.commons.lang3.tuple.ImmutablePair; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.openecomp.sdc.be.dao.impl.HealingPipelineDao; +import org.mockito.Mockito; +import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge; +import org.openecomp.sdc.be.dao.graph.datatype.GraphRelation; import org.openecomp.sdc.be.dao.janusgraph.HealingJanusGraphGenericDao; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; +import org.openecomp.sdc.be.dao.neo4j.GraphEdgeLabels; +import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary; import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; import org.openecomp.sdc.be.datatypes.elements.PropertyRule; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; @@ -44,7 +48,6 @@ import org.openecomp.sdc.be.model.tosca.constraints.LessOrEqualConstraint; import org.openecomp.sdc.be.resources.data.DataTypeData; import org.openecomp.sdc.be.resources.data.PropertyData; import org.openecomp.sdc.be.resources.data.PropertyValueData; - import java.util.*; import static org.junit.Assert.*; @@ -774,7 +777,7 @@ public class PropertyOperationTest extends ModelTestBase { // test 1 testSubject = createTestSubject(); property = null; - result = testSubject.isPropertyTypeValid(property); + result = testSubject.isPropertyTypeValid(property, null); Assert.assertEquals(false, result); } @@ -852,52 +855,71 @@ public class PropertyOperationTest extends ModelTestBase { @Test - public void testAddDataType() throws Exception { - PropertyOperation testSubject; + public void testAddAndGetDataType() throws Exception { + final String dataTypeName = "myDataType"; DataTypeDefinition dataTypeDefinition = new DataTypeDefinition(); + dataTypeDefinition.setName("myDataType"); Either result; - - // default test - testSubject = createTestSubject(); - result = testSubject.addDataType(dataTypeDefinition); + + Mockito.doReturn(Either.left(new DataTypeData(dataTypeDefinition))).when(janusGraphGenericDao) + .createNode(Mockito.any(), Mockito.eq(DataTypeData.class)); + + Mockito.doReturn(Either.left(new DataTypeData(dataTypeDefinition))).when(janusGraphGenericDao) + .getNode(GraphPropertiesDictionary.NAME.getProperty(), dataTypeName, DataTypeData.class, null); + + Mockito.doReturn(Either.left(Collections.EMPTY_LIST)).when(janusGraphGenericDao) + .getChildrenNodes(Mockito.anyString(), Mockito.anyString(), Mockito.eq(GraphEdgeLabels.PROPERTY), Mockito.eq(NodeTypeEnum.Property), Mockito.eq(PropertyData.class)); + + result = propertyOperation.addDataType(dataTypeDefinition); + assertTrue(result.isLeft()); + + Mockito.doReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND)).when(janusGraphGenericDao) + .getChild(Mockito.anyString(), Mockito.anyString(), Mockito.eq(GraphEdgeLabels.DERIVED_FROM), Mockito.eq(NodeTypeEnum.DataType), Mockito.eq(DataTypeData.class)); + + result = propertyOperation.getDataTypeByName(dataTypeName, null, false); + assertTrue(result.isLeft()); + + result = propertyOperation.getDataTypeByName(dataTypeName, null); + assertTrue(result.isLeft()); + + Mockito.doReturn(Either.left(new DataTypeData(dataTypeDefinition))).when(janusGraphGenericDao) + .getNode(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), dataTypeName + ".datatype", DataTypeData.class); + + Either resultGetByUid = propertyOperation.getDataTypeByUid("myDataType.datatype"); + assertTrue(resultGetByUid.isLeft()); + + Either resultIsDefinedDataType = propertyOperation.isDefinedInDataTypes(dataTypeName, null); + assertTrue(resultIsDefinedDataType.isLeft()); } - - @Test - public void testGetDataTypeByName() throws Exception { - PropertyOperation testSubject; - String name = ""; - boolean inTransaction = false; - Either result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getDataTypeByName(name, inTransaction); - } - - - @Test - public void testGetDataTypeByName_1() throws Exception { - PropertyOperation testSubject; - String name = ""; - Either result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getDataTypeByName(name); - } - - - @Test - public void testGetDataTypeByNameWithoutDerived() throws Exception { - PropertyOperation testSubject; - String name = ""; - Either result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getDataTypeByNameWithoutDerived(name); - } + @Test + public void testAddDataTypeToModel() throws Exception { + DataTypeDefinition dataTypeDefinition = new DataTypeDefinition(); + dataTypeDefinition.setName("testName"); + dataTypeDefinition.setModel("testModel"); + Either result; + + Mockito.doReturn(Either.left(new DataTypeData(dataTypeDefinition))).when(janusGraphGenericDao) + .createNode(Mockito.any(), Mockito.eq(DataTypeData.class)); + + Mockito.doReturn(Either.left(new GraphRelation())).when(janusGraphGenericDao) + .createRelation(Mockito.any(), Mockito.any(), Mockito.eq(GraphEdgeLabels.MODEL_ELEMENT), Mockito.any()); + + result = propertyOperation.addDataType(dataTypeDefinition); + assertTrue(result.isLeft()); + + Mockito.doReturn(Either.left(new DataTypeData(dataTypeDefinition))).when(janusGraphGenericDao) + .getNode(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), "testModel.testName.datatype", DataTypeData.class); + + Mockito.doReturn(Either.left(Collections.EMPTY_LIST)).when(janusGraphGenericDao) + .getChildrenNodes(Mockito.anyString(), Mockito.anyString(), Mockito.eq(GraphEdgeLabels.PROPERTY), Mockito.eq(NodeTypeEnum.Property), Mockito.eq(PropertyData.class)); + + Mockito.doReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND)).when(janusGraphGenericDao) + .getChild(Mockito.anyString(), Mockito.anyString(), Mockito.eq(GraphEdgeLabels.DERIVED_FROM), Mockito.eq(NodeTypeEnum.DataType), Mockito.eq(DataTypeData.class)); + + Either resultGetByUid = propertyOperation.getDataTypeByUid("testModel.testName.datatype"); + assertTrue(resultGetByUid.isLeft()); + } @Test @@ -912,18 +934,6 @@ public class PropertyOperationTest extends ModelTestBase { } - @Test - public void testIsDefinedInDataTypes() throws Exception { - PropertyOperation testSubject; - String propertyType = ""; - Either result; - - // default test - testSubject = createTestSubject(); - result = testSubject.isDefinedInDataTypes(propertyType); - } - - @Test public void testGetAllDataTypes() throws Exception { PropertyOperation testSubject; -- cgit