Sync Integ to Master
[sdc.git] / catalog-model / src / test / java / org / openecomp / sdc / be / model / operations / impl / ToscaElementLifecycleOperationTest.java
index 53bd753..6e9fdc2 100644 (file)
@@ -45,6 +45,7 @@ import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
 import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
 import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum;
 import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
+import org.openecomp.sdc.be.dao.jsongraph.utils.IdBuilderUtils;
 import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
 import org.openecomp.sdc.be.datatypes.elements.CapabilityDataDefinition;
 import org.openecomp.sdc.be.datatypes.elements.MapDataDefinition;
@@ -57,6 +58,7 @@ import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
 import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
 import org.openecomp.sdc.be.model.LifecycleStateEnum;
 import org.openecomp.sdc.be.model.ModelTestBase;
+import org.openecomp.sdc.be.model.catalog.CatalogComponent;
 import org.openecomp.sdc.be.model.category.CategoryDefinition;
 import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
 import org.openecomp.sdc.be.model.jsontitan.datamodel.NodeType;
@@ -65,6 +67,7 @@ import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement;
 import org.openecomp.sdc.be.model.jsontitan.operations.NodeTypeOperation;
 import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation;
 import org.openecomp.sdc.be.model.jsontitan.operations.ToscaElementLifecycleOperation;
+import org.openecomp.sdc.be.model.jsontitan.utils.GraphTestUtils;
 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
 import org.openecomp.sdc.common.util.ValidationUtils;
 import org.springframework.test.context.ContextConfiguration;
@@ -78,23 +81,23 @@ import fj.data.Either;
 @RunWith(SpringJUnit4ClassRunner.class)
 @ContextConfiguration("classpath:application-context-test.xml")
 public class ToscaElementLifecycleOperationTest extends ModelTestBase {
-       
+
        @javax.annotation.Resource
        protected TitanDao titanDao;
 
        @javax.annotation.Resource
        private NodeTypeOperation nodeTypeOperation;
-       
+
        @javax.annotation.Resource
        private TopologyTemplateOperation topologyTemplateOperation;
-       
+
        @javax.annotation.Resource
        private ToscaElementLifecycleOperation lifecycleOperation;
-       
+
        String categoryName = "category";
        String subcategory = "mycategory";
        String outputDirectory = "C:\\Output";
-       
+
        @Rule
        public TestName name = new TestName();
 
@@ -102,11 +105,12 @@ public class ToscaElementLifecycleOperationTest extends ModelTestBase {
        public static void initLifecycleOperation() {
                ModelTestBase.init();
        }
-       
+
        private GraphVertex ownerVertex;
        private GraphVertex modifierVertex;
        private GraphVertex vfVertex;
        private GraphVertex serviceVertex;
+       private GraphVertex rootVertex;
 
        @Before
        public void setupBefore() {
@@ -114,222 +118,271 @@ public class ToscaElementLifecycleOperationTest extends ModelTestBase {
                createUsers();
                createResourceCategory();
                createServiceCategory();
-               createRootNodeType();
+               GraphTestUtils.createRootCatalogVertex(titanDao);
+               rootVertex = createRootNodeType();
                createNodeType("firstVf");
-               createTopologyTemplate("firstService");
+               serviceVertex = createTopologyTemplate("firstService");
        }
 
-       
        @Test
        public void lifecycleTest() {
-               Either<ToscaElement, StorageOperationStatus> res = lifecycleOperation
-                               .checkinToscaELement(LifecycleStateEnum.findState((String) vfVertex.getMetadataProperty(GraphPropertyEnum.STATE)), 
-                                               vfVertex.getUniqueId(), modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
+               Either<ToscaElement, StorageOperationStatus> res = lifecycleOperation.checkinToscaELement(LifecycleStateEnum.findState((String) vfVertex.getMetadataProperty(GraphPropertyEnum.STATE)), vfVertex.getUniqueId(), modifierVertex.getUniqueId(),
+                               ownerVertex.getUniqueId());
                StorageOperationStatus status;
-               
+
                assertTrue(res.isLeft());
+               // 1-node type
+               // 2-vf
+               // 3- service
+               verifyInCatalogData(3, null);
+
                String id = res.left().value().getUniqueId();
-               
+
                res = lifecycleOperation.checkoutToscaElement(id, ownerVertex.getUniqueId(), modifierVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
+
+               verifyInCatalogData(3, null);
+
                PropertyDataDefinition prop55 = new PropertyDataDefinition();
                prop55.setName("prop55");
                prop55.setDefaultValue("def55");
-                
+
                status = nodeTypeOperation.addToscaDataToToscaElement(id, EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, prop55, JsonPresentationFields.NAME);
                assertTrue(status == StorageOperationStatus.OK);
-               
+
                CapabilityDataDefinition cap1 = new CapabilityDataDefinition();
                cap1.setName("cap1");
                cap1.setDescription("create");
                cap1.setUniqueId(UniqueIdBuilder.buildCapabilityUid(id, "cap1"));
-                
+
                status = nodeTypeOperation.addToscaDataToToscaElement(id, EdgeLabelEnum.CAPABILITIES, VertexTypeEnum.CAPABILTIES, cap1, JsonPresentationFields.NAME);
                assertTrue(status == StorageOperationStatus.OK);
-                
+
                res = lifecycleOperation.checkinToscaELement(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, id, ownerVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
+
                res = lifecycleOperation.checkoutToscaElement(id, ownerVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
+
                prop55.setDefaultValue("AAAAAAAA");
                status = nodeTypeOperation.updateToscaDataOfToscaElement(id, EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, prop55, JsonPresentationFields.NAME);
                assertTrue(status == StorageOperationStatus.OK);
-               
+
                cap1.setDescription("update");
-                
+
                status = nodeTypeOperation.updateToscaDataOfToscaElement(id, EdgeLabelEnum.CAPABILITIES, VertexTypeEnum.CAPABILTIES, cap1, JsonPresentationFields.NAME);
                assertTrue(status == StorageOperationStatus.OK);
-               
+
                PropertyDataDefinition prop66 = new PropertyDataDefinition();
                prop66.setName("prop66");
                prop66.setDefaultValue("def66");
-                
+
                status = nodeTypeOperation.addToscaDataToToscaElement(id, EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, prop66, JsonPresentationFields.NAME);
                assertTrue(status == StorageOperationStatus.OK);
-               
+
                res = lifecycleOperation.requestCertificationToscaElement(id, modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
+
                res = lifecycleOperation.startCertificationToscaElement(id, modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
+
                res = lifecycleOperation.certifyToscaElement(id, modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
+
+               verifyInCatalogData(3, null);
                
                res = lifecycleOperation.checkoutToscaElement(id, ownerVertex.getUniqueId(), modifierVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
+
+               verifyInCatalogData(4, null);
                
                PropertyDataDefinition prop77 = new PropertyDataDefinition();
                prop77.setName("prop77");
                prop77.setDefaultValue("def77");
-                
+
                status = nodeTypeOperation.addToscaDataToToscaElement(id, EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, prop77, JsonPresentationFields.NAME);
                assertTrue(status == StorageOperationStatus.OK);
-               
+
                res = lifecycleOperation.checkinToscaELement(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, id, ownerVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
+
                res = lifecycleOperation.checkoutToscaElement(id, ownerVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
+
                PropertyDataDefinition prop88 = new PropertyDataDefinition();
                prop88.setName("prop88");
                prop88.setDefaultValue("def88");
-                
+
                status = nodeTypeOperation.addToscaDataToToscaElement(id, EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, prop88, JsonPresentationFields.NAME);
                assertTrue(status == StorageOperationStatus.OK);
-               
+
                res = lifecycleOperation.requestCertificationToscaElement(id, modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
+
                res = lifecycleOperation.startCertificationToscaElement(id, modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
+
                res = lifecycleOperation.certifyToscaElement(id, modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
+               verifyInCatalogData(3, null);
                
                res = lifecycleOperation.checkoutToscaElement(id, ownerVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
+
+               verifyInCatalogData(4, null);
                
                PropertyDataDefinition prop99 = new PropertyDataDefinition();
                prop99.setName("prop99");
                prop99.setDefaultValue("def99");
-                
+
                status = nodeTypeOperation.addToscaDataToToscaElement(id, EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, prop99, JsonPresentationFields.NAME);
                assertTrue(status == StorageOperationStatus.OK);
-               
+
                res = lifecycleOperation.requestCertificationToscaElement(id, modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
+
                res = lifecycleOperation.startCertificationToscaElement(id, modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
+
                status = nodeTypeOperation.deleteToscaDataElement(id, EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, "prop99", JsonPresentationFields.NAME);
                assertTrue(status == StorageOperationStatus.OK);
-               
-               //cancel certification
+
+               // cancel certification
                res = lifecycleOperation.cancelOrFailCertification(id, modifierVertex.getUniqueId(), ownerVertex.getUniqueId(), LifecycleStateEnum.READY_FOR_CERTIFICATION);
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
+
                res = lifecycleOperation.startCertificationToscaElement(id, modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
-               //fail certification
+
+               // fail certification
                res = lifecycleOperation.cancelOrFailCertification(id, modifierVertex.getUniqueId(), ownerVertex.getUniqueId(), LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
                assertTrue(res.isLeft());
                id = res.left().value().getUniqueId();
-               
-               //exportGraphMl(titanDao.getGraph().left().value());
-               
+               verifyInCatalogData(4, null);
+               // exportGraphMl(titanDao.getGraph().left().value());
+
        }
 
        @Test
        public void serviceConformanceLevelTest() {
-               Either<ToscaElement, StorageOperationStatus> res = lifecycleOperation
-                               .checkinToscaELement(LifecycleStateEnum.findState((String) serviceVertex.getMetadataProperty(GraphPropertyEnum.STATE)), 
-                                               serviceVertex.getUniqueId(), modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
-               
+               Either<ToscaElement, StorageOperationStatus> res = lifecycleOperation.checkinToscaELement(LifecycleStateEnum.findState((String) serviceVertex.getMetadataProperty(GraphPropertyEnum.STATE)), serviceVertex.getUniqueId(),
+                               modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
+
                assertTrue(res.isLeft());
                String id = res.left().value().getUniqueId();
-               
+
                res = lifecycleOperation.checkoutToscaElement(id, ownerVertex.getUniqueId(), modifierVertex.getUniqueId());
                assertTrue(res.isLeft());
-               
+
                String conformanceLevel = res.left().value().getMetadataValue(JsonPresentationFields.CONFORMANCE_LEVEL).toString();
                assertEquals(conformanceLevel, ModelTestBase.configurationManager.getConfiguration().getToscaConformanceLevel());
        }
-       
-       private void createResourceCategory() {
+
+       @Test
+       public void catalogTest() {
+               // start position - 3 in catalog
+               List<String> expectedIds = new ArrayList<String>();
+               expectedIds.add(rootVertex.getUniqueId());
+               expectedIds.add(vfVertex.getUniqueId());
+               expectedIds.add(serviceVertex.getUniqueId());
+
+               verifyInCatalogData(3, expectedIds);
                
+               GraphVertex vertex4 = createTopologyTemplate("topTemp4");
+               expectedIds.add(vertex4.getUniqueId());
+               verifyInCatalogData(4, expectedIds);
+
+               Either<ToscaElement, StorageOperationStatus> res = lifecycleOperation.undoCheckout(vertex4.getUniqueId());
+               expectedIds.remove(vertex4.getUniqueId());
+               verifyInCatalogData(3, expectedIds);
+
+               vertex4 = createTopologyTemplate("topTemp4");
+               expectedIds.add(vertex4.getUniqueId());
+               verifyInCatalogData(4, expectedIds);
+
+               res = lifecycleOperation.checkinToscaELement(LifecycleStateEnum.findState((String) vertex4.getMetadataProperty(GraphPropertyEnum.STATE)), vertex4.getUniqueId(), modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
+               Either<ToscaElement, StorageOperationStatus> certifyToscaElement = lifecycleOperation.certifyToscaElement(vertex4.getUniqueId(), modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
+               assertTrue(certifyToscaElement.isLeft());
+               expectedIds.remove(vertex4.getUniqueId());
+               String certifiedId = certifyToscaElement.left().value().getUniqueId();
+               expectedIds.add(certifiedId);
+               verifyInCatalogData(4, expectedIds);
+               
+               res = lifecycleOperation.checkoutToscaElement(certifiedId, modifierVertex.getUniqueId(), ownerVertex.getUniqueId());
+               assertTrue(certifyToscaElement.isLeft());
+               expectedIds.add(res.left().value().getUniqueId());
+               verifyInCatalogData(5, expectedIds);
+       }
+
+       private void createResourceCategory() {
+
                GraphVertex cat = new GraphVertex(VertexTypeEnum.RESOURCE_CATEGORY);
                Map<GraphPropertyEnum, Object> metadataProperties = new HashMap<>();
                String catId = UniqueIdBuilder.buildComponentCategoryUid(categoryName, VertexTypeEnum.RESOURCE_CATEGORY);
                cat.setUniqueId(catId);
-               metadataProperties.put(GraphPropertyEnum.UNIQUE_ID,catId);
+               metadataProperties.put(GraphPropertyEnum.UNIQUE_ID, catId);
                metadataProperties.put(GraphPropertyEnum.LABEL, VertexTypeEnum.RESOURCE_CATEGORY.getName());
-               metadataProperties.put(GraphPropertyEnum.NAME,categoryName);
+               metadataProperties.put(GraphPropertyEnum.NAME, categoryName);
                metadataProperties.put(GraphPropertyEnum.NORMALIZED_NAME, ValidationUtils.normalizeCategoryName4Uniqueness(categoryName));
                cat.setMetadataProperties(metadataProperties);
                cat.updateMetadataJsonWithCurrentMetadataProperties();
-               
+
                GraphVertex subCat = new GraphVertex(VertexTypeEnum.RESOURCE_SUBCATEGORY);
                metadataProperties = new HashMap<>();
                String subCatId = UniqueIdBuilder.buildSubCategoryUid(cat.getUniqueId(), subcategory);
                subCat.setUniqueId(subCatId);
-               metadataProperties.put(GraphPropertyEnum.UNIQUE_ID,subCatId);
+               metadataProperties.put(GraphPropertyEnum.UNIQUE_ID, subCatId);
                metadataProperties.put(GraphPropertyEnum.LABEL, VertexTypeEnum.RESOURCE_SUBCATEGORY.getName());
-               metadataProperties.put(GraphPropertyEnum.NAME,subcategory);
+               metadataProperties.put(GraphPropertyEnum.NAME, subcategory);
+               metadataProperties.put(GraphPropertyEnum.NORMALIZED_NAME, ValidationUtils.normalizeCategoryName4Uniqueness(subcategory));
                subCat.setMetadataProperties(metadataProperties);
                subCat.updateMetadataJsonWithCurrentMetadataProperties();
-               
+
                Either<GraphVertex, TitanOperationStatus> catRes = titanDao.createVertex(cat);
-               
+
                Either<GraphVertex, TitanOperationStatus> subCatRes = titanDao.createVertex(subCat);
-               
+
                TitanOperationStatus status = titanDao.createEdge(catRes.left().value().getVertex(), subCatRes.left().value().getVertex(), EdgeLabelEnum.SUB_CATEGORY, new HashMap<>());
                assertEquals(TitanOperationStatus.OK, status);
        }
-       
+
        private void createServiceCategory() {
-               
+
                GraphVertex cat = new GraphVertex(VertexTypeEnum.SERVICE_CATEGORY);
                Map<GraphPropertyEnum, Object> metadataProperties = new HashMap<>();
                String catId = UniqueIdBuilder.buildComponentCategoryUid(categoryName, VertexTypeEnum.SERVICE_CATEGORY);
                cat.setUniqueId(catId);
-               metadataProperties.put(GraphPropertyEnum.UNIQUE_ID,catId);
+               metadataProperties.put(GraphPropertyEnum.UNIQUE_ID, catId);
                metadataProperties.put(GraphPropertyEnum.LABEL, VertexTypeEnum.SERVICE_CATEGORY.getName());
-               metadataProperties.put(GraphPropertyEnum.NAME,categoryName);
+               metadataProperties.put(GraphPropertyEnum.NAME, categoryName);
                metadataProperties.put(GraphPropertyEnum.NORMALIZED_NAME, ValidationUtils.normalizeCategoryName4Uniqueness(categoryName));
                cat.setMetadataProperties(metadataProperties);
                cat.updateMetadataJsonWithCurrentMetadataProperties();
-                               
+
                Either<GraphVertex, TitanOperationStatus> catRes = titanDao.createVertex(cat);
-                       
+
                assertTrue(catRes.isLeft());
        }
-       
-       private TopologyTemplate createTopologyTemplate(String name) {
-               
+
+       private GraphVertex createTopologyTemplate(String name) {
+
                TopologyTemplate service = new TopologyTemplate();
                String uniqueId = UniqueIdBuilder.buildResourceUniqueId();
                service.setUniqueId(uniqueId);
@@ -337,28 +390,28 @@ public class ToscaElementLifecycleOperationTest extends ModelTestBase {
                service.getMetadata().put(JsonPresentationFields.NAME.getPresentation(), name);
                service.getMetadata().put(JsonPresentationFields.UNIQUE_ID.getPresentation(), uniqueId);
                service.getMetadata().put(JsonPresentationFields.VERSION.getPresentation(), "0.1");
-               service.getMetadata().put(JsonPresentationFields.TYPE.getPresentation(),ResourceTypeEnum.VF.name());
-               service.getMetadata().put(JsonPresentationFields.COMPONENT_TYPE.getPresentation(),ComponentTypeEnum.RESOURCE);
+               service.getMetadata().put(JsonPresentationFields.TYPE.getPresentation(), ResourceTypeEnum.VF.name());
+               service.getMetadata().put(JsonPresentationFields.COMPONENT_TYPE.getPresentation(), ComponentTypeEnum.RESOURCE);
                List<CategoryDefinition> categories = new ArrayList<>();
                CategoryDefinition cat = new CategoryDefinition();
                categories.add(cat);
                cat.setName(categoryName);
                service.setCategories(categories);
-               
+
                service.setComponentType(ComponentTypeEnum.SERVICE);
                Either<TopologyTemplate, StorageOperationStatus> createRes = topologyTemplateOperation.createTopologyTemplate(service);
                assertTrue(createRes.isLeft());
-               
-               Either<GraphVertex, TitanOperationStatus> getNodeTyeRes= titanDao.getVertexById(createRes.left().value().getUniqueId());
+
+               Either<GraphVertex, TitanOperationStatus> getNodeTyeRes = titanDao.getVertexById(createRes.left().value().getUniqueId());
                assertTrue(getNodeTyeRes.isLeft());
-               
-               serviceVertex = getNodeTyeRes.left().value();
-                
-               return service;
+
+               // serviceVertex = getNodeTyeRes.left().value();
+
+               return getNodeTyeRes.left().value();
        }
-       
+
        private <T extends ToscaDataDefinition> NodeType createNodeType(String nodeTypeName) {
-               
+
                NodeType vf = new NodeType();
                String uniqueId = UniqueIdBuilder.buildResourceUniqueId();
                vf.setUniqueId(uniqueId);
@@ -366,8 +419,8 @@ public class ToscaElementLifecycleOperationTest extends ModelTestBase {
                vf.getMetadata().put(JsonPresentationFields.NAME.getPresentation(), nodeTypeName);
                vf.getMetadata().put(JsonPresentationFields.UNIQUE_ID.getPresentation(), uniqueId);
                vf.getMetadata().put(JsonPresentationFields.VERSION.getPresentation(), "0.1");
-               vf.getMetadata().put(JsonPresentationFields.TYPE.getPresentation(),ResourceTypeEnum.VF.name());
-               vf.getMetadata().put(JsonPresentationFields.COMPONENT_TYPE.getPresentation(),ComponentTypeEnum.RESOURCE);
+               vf.getMetadata().put(JsonPresentationFields.TYPE.getPresentation(), ResourceTypeEnum.VF.name());
+               vf.getMetadata().put(JsonPresentationFields.COMPONENT_TYPE.getPresentation(), ComponentTypeEnum.RESOURCE);
                List<CategoryDefinition> categories = new ArrayList<>();
                CategoryDefinition cat = new CategoryDefinition();
                categories.add(cat);
@@ -378,95 +431,90 @@ public class ToscaElementLifecycleOperationTest extends ModelTestBase {
                subCategories.add(subCat);
                cat.setSubcategories(subCategories);
                vf.setCategories(categories);
-               
-               
+
                List<String> derivedFrom = new ArrayList<>();
                derivedFrom.add("root");
                vf.setDerivedFrom(derivedFrom);
-               
-//              Map<String, PropertyDataDefinition> properties = new HashMap<>();
-//              PropertyDataDefinition prop1 = new PropertyDataDefinition();
-//              prop1.setName("prop1");
-//              prop1.setDefaultValue("def1");
-//              
-//              properties.put("prop1", prop1);
-//              
-//              PropertyDataDefinition prop2 = new PropertyDataDefinition();
-//              prop2.setName("prop2");
-//              prop2.setDefaultValue("def2");
-//              properties.put("prop2", prop2);
-//              
-//              PropertyDataDefinition prop3 = new PropertyDataDefinition();
-//              prop3.setName("prop3");
-//              prop3.setDefaultValue("def3");
-//              properties.put("prop3", prop3);
-//              
-//              vf.setProperties(properties);
-                vf.setComponentType(ComponentTypeEnum.RESOURCE);
+
+               // Map<String, PropertyDataDefinition> properties = new HashMap<>();
+               // PropertyDataDefinition prop1 = new PropertyDataDefinition();
+               // prop1.setName("prop1");
+               // prop1.setDefaultValue("def1");
+               //
+               // properties.put("prop1", prop1);
+               //
+               // PropertyDataDefinition prop2 = new PropertyDataDefinition();
+               // prop2.setName("prop2");
+               // prop2.setDefaultValue("def2");
+               // properties.put("prop2", prop2);
+               //
+               // PropertyDataDefinition prop3 = new PropertyDataDefinition();
+               // prop3.setName("prop3");
+               // prop3.setDefaultValue("def3");
+               // properties.put("prop3", prop3);
+               //
+               // vf.setProperties(properties);
+               vf.setComponentType(ComponentTypeEnum.RESOURCE);
                Either<NodeType, StorageOperationStatus> createVFRes = nodeTypeOperation.createNodeType(vf);
                assertTrue(createVFRes.isLeft());
-               
-               Either<GraphVertex, TitanOperationStatus> getNodeTyeRes= titanDao.getVertexById(createVFRes.left().value().getUniqueId());
+
+               Either<GraphVertex, TitanOperationStatus> getNodeTyeRes = titanDao.getVertexById(createVFRes.left().value().getUniqueId());
                assertTrue(getNodeTyeRes.isLeft());
-               
+
                vfVertex = getNodeTyeRes.left().value();
-               
-               
-               
-                List<PropertyDataDefinition> addProperties = new ArrayList<>();
-                PropertyDataDefinition prop11 = new PropertyDataDefinition();
-                prop11.setName("prop11");
-                prop11.setDefaultValue("def11");
-                
-                addProperties.add(prop11);
-                
-                PropertyDataDefinition prop22 = new PropertyDataDefinition();
-                prop22.setName("prop22");
-                prop22.setDefaultValue("def22");
-                addProperties.add(prop22);
-                
-                StorageOperationStatus status = nodeTypeOperation.addToscaDataToToscaElement(vfVertex, EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, addProperties, JsonPresentationFields.NAME);
-                assertTrue(status == StorageOperationStatus.OK);
-                
-                PropertyDataDefinition prop33 = new PropertyDataDefinition();
-                prop33.setName("prop33");
-                prop33.setDefaultValue("def33");
-                
-                status = nodeTypeOperation.addToscaDataToToscaElement(vfVertex, EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, prop33, JsonPresentationFields.NAME);
-                assertTrue(status == StorageOperationStatus.OK);
-                
-                PropertyDataDefinition prop44 = new PropertyDataDefinition();
-                prop44.setName("prop44");
-                prop44.setDefaultValue("def44");
-                
-                status = nodeTypeOperation.addToscaDataToToscaElement(vfVertex.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, prop44, JsonPresentationFields.NAME);
-                assertTrue(status == StorageOperationStatus.OK);
-                       
-                
-                PropertyDataDefinition capProp = new PropertyDataDefinition();
-                capProp.setName( "capProp");
-                capProp.setDefaultValue( "capPropDef");
-                
-                MapDataDefinition dataToCreate = new MapPropertiesDataDefinition();             
-                dataToCreate.put("capProp", capProp);
-                
-                Map<String, MapDataDefinition> capProps = new HashMap();
-                capProps.put("capName", dataToCreate); 
-               
-                Either<GraphVertex, StorageOperationStatus> res = nodeTypeOperation.assosiateElementToData(vfVertex,  VertexTypeEnum.CAPABILITIES_PROPERTIES, EdgeLabelEnum.CAPABILITIES_PROPERTIES, capProps);
-                
+
+               List<PropertyDataDefinition> addProperties = new ArrayList<>();
+               PropertyDataDefinition prop11 = new PropertyDataDefinition();
+               prop11.setName("prop11");
+               prop11.setDefaultValue("def11");
+
+               addProperties.add(prop11);
+
+               PropertyDataDefinition prop22 = new PropertyDataDefinition();
+               prop22.setName("prop22");
+               prop22.setDefaultValue("def22");
+               addProperties.add(prop22);
+
+               StorageOperationStatus status = nodeTypeOperation.addToscaDataToToscaElement(vfVertex, EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, addProperties, JsonPresentationFields.NAME);
+               assertTrue(status == StorageOperationStatus.OK);
+
+               PropertyDataDefinition prop33 = new PropertyDataDefinition();
+               prop33.setName("prop33");
+               prop33.setDefaultValue("def33");
+
+               status = nodeTypeOperation.addToscaDataToToscaElement(vfVertex, EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, prop33, JsonPresentationFields.NAME);
+               assertTrue(status == StorageOperationStatus.OK);
+
+               PropertyDataDefinition prop44 = new PropertyDataDefinition();
+               prop44.setName("prop44");
+               prop44.setDefaultValue("def44");
+
+               status = nodeTypeOperation.addToscaDataToToscaElement(vfVertex.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, prop44, JsonPresentationFields.NAME);
+               assertTrue(status == StorageOperationStatus.OK);
+
+               PropertyDataDefinition capProp = new PropertyDataDefinition();
+               capProp.setName("capProp");
+               capProp.setDefaultValue("capPropDef");
+
+               MapDataDefinition dataToCreate = new MapPropertiesDataDefinition();
+               dataToCreate.put("capProp", capProp);
+
+               Map<String, MapDataDefinition> capProps = new HashMap();
+               capProps.put("capName", dataToCreate);
+
+               Either<GraphVertex, StorageOperationStatus> res = nodeTypeOperation.assosiateElementToData(vfVertex, VertexTypeEnum.CAPABILITIES_PROPERTIES, EdgeLabelEnum.CAPABILITIES_PROPERTIES, capProps);
+
                // exportGraphMl(titanDao.getGraph().left().value());
-                
-                List<String> pathKeys = new ArrayList<>();
-                pathKeys.add("capName");
-                capProp.setDefaultValue( "BBBB");
-                status = nodeTypeOperation.updateToscaDataDeepElementOfToscaElement(vfVertex, EdgeLabelEnum.CAPABILITIES_PROPERTIES, VertexTypeEnum.CAPABILITIES_PROPERTIES,
-                                capProp, pathKeys, JsonPresentationFields.NAME);
+
+               List<String> pathKeys = new ArrayList<>();
+               pathKeys.add("capName");
+               capProp.setDefaultValue("BBBB");
+               status = nodeTypeOperation.updateToscaDataDeepElementOfToscaElement(vfVertex, EdgeLabelEnum.CAPABILITIES_PROPERTIES, VertexTypeEnum.CAPABILITIES_PROPERTIES, capProp, pathKeys, JsonPresentationFields.NAME);
                return vf;
        }
-       
-       private void createRootNodeType() {
-               
+
+       private GraphVertex createRootNodeType() {
+
                NodeType vf = new NodeType();
                String uniqueId = UniqueIdBuilder.buildResourceUniqueId();
                vf.setUniqueId(uniqueId);
@@ -475,11 +523,11 @@ public class ToscaElementLifecycleOperationTest extends ModelTestBase {
                vf.getMetadata().put(JsonPresentationFields.NAME.getPresentation(), "root");
                vf.getMetadata().put(JsonPresentationFields.UNIQUE_ID.getPresentation(), uniqueId);
                vf.getMetadata().put(JsonPresentationFields.VERSION.getPresentation(), "1.0");
-               vf.getMetadata().put(JsonPresentationFields.TYPE.getPresentation(),ResourceTypeEnum.VFC.name());
+               vf.getMetadata().put(JsonPresentationFields.TYPE.getPresentation(), ResourceTypeEnum.VFC.name());
                vf.getMetadata().put(JsonPresentationFields.LIFECYCLE_STATE.getPresentation(), LifecycleStateEnum.CERTIFIED.name());
                vf.getMetadata().put(JsonPresentationFields.TOSCA_RESOURCE_NAME.getPresentation(), "root");
                vf.getMetadata().put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), true);
-               
+
                List<CategoryDefinition> categories = new ArrayList<>();
                CategoryDefinition cat = new CategoryDefinition();
                categories.add(cat);
@@ -490,42 +538,42 @@ public class ToscaElementLifecycleOperationTest extends ModelTestBase {
                subCategories.add(subCat);
                cat.setSubcategories(subCategories);
                vf.setCategories(categories);
-               
-               
+
                List<String> derivedFrom = new ArrayList<>();
                vf.setDerivedFrom(derivedFrom);
-               
-                Map<String, PropertyDataDefinition> properties = new HashMap<>();
-                PropertyDataDefinition prop1 = new PropertyDataDefinition();
-                prop1.setName("derived1");
-                prop1.setDefaultValue("deriveddef1");
-                
-                properties.put("derived1", prop1);
-                
-                PropertyDataDefinition prop2 = new PropertyDataDefinition();
-                prop2.setUniqueId("derived2");
-                prop2.setName("deriveddef2");
-                properties.put("derived2", prop2);
-                
-                PropertyDataDefinition prop3 = new PropertyDataDefinition();
-                prop3.setName("derived3");
-                prop3.setDefaultValue("deriveddef3");
-                properties.put("derived3", prop3);
-                
-                vf.setProperties(properties);
-                vf.setComponentType(ComponentTypeEnum.RESOURCE);
+
+               Map<String, PropertyDataDefinition> properties = new HashMap<>();
+               PropertyDataDefinition prop1 = new PropertyDataDefinition();
+               prop1.setName("derived1");
+               prop1.setDefaultValue("deriveddef1");
+
+               properties.put("derived1", prop1);
+
+               PropertyDataDefinition prop2 = new PropertyDataDefinition();
+               prop2.setUniqueId("derived2");
+               prop2.setName("deriveddef2");
+               properties.put("derived2", prop2);
+
+               PropertyDataDefinition prop3 = new PropertyDataDefinition();
+               prop3.setName("derived3");
+               prop3.setDefaultValue("deriveddef3");
+               properties.put("derived3", prop3);
+
+               vf.setProperties(properties);
+               vf.setComponentType(ComponentTypeEnum.RESOURCE);
                Either<NodeType, StorageOperationStatus> createVFRes = nodeTypeOperation.createNodeType(vf);
                assertTrue(createVFRes.isLeft());
-               
-               Either<GraphVertex, TitanOperationStatus> getNodeTyeRes= titanDao.getVertexById(createVFRes.left().value().getUniqueId());
+
+               Either<GraphVertex, TitanOperationStatus> getNodeTyeRes = titanDao.getVertexById(createVFRes.left().value().getUniqueId());
                assertTrue(getNodeTyeRes.isLeft());
+               return getNodeTyeRes.left().value();
        }
 
        private void createUsers() {
-               
+
                GraphVertex ownerV = new GraphVertex(VertexTypeEnum.USER);
                ownerV.setUniqueId("user1");
-                               
+
                Map<GraphPropertyEnum, Object> metadataProperties = new HashMap<>();
                metadataProperties.put(GraphPropertyEnum.USERID, ownerV.getUniqueId());
                metadataProperties.put(GraphPropertyEnum.LABEL, VertexTypeEnum.USER.getName());
@@ -535,12 +583,12 @@ public class ToscaElementLifecycleOperationTest extends ModelTestBase {
                ownerV.setJson(new HashMap<>());
                Either<GraphVertex, TitanOperationStatus> createUserRes = titanDao.createVertex(ownerV);
                assertTrue(createUserRes.isLeft());
-               
+
                ownerVertex = createUserRes.left().value();
-               
+
                GraphVertex modifierV = new GraphVertex(VertexTypeEnum.USER);
                modifierV.setUniqueId("user2");
-                               
+
                metadataProperties = new HashMap<>();
                metadataProperties.put(GraphPropertyEnum.USERID, modifierV.getUniqueId());
                metadataProperties.put(GraphPropertyEnum.LABEL, VertexTypeEnum.USER.getName());
@@ -550,12 +598,24 @@ public class ToscaElementLifecycleOperationTest extends ModelTestBase {
                modifierV.setJson(new HashMap<>());
                createUserRes = titanDao.createVertex(modifierV);
                assertTrue(createUserRes.isLeft());
-                               
+
                modifierVertex = createUserRes.left().value();
-                       
+
                Either<GraphVertex, TitanOperationStatus> getOwnerRes = lifecycleOperation.findUser(ownerVertex.getUniqueId());
                assertTrue(getOwnerRes.isLeft());
-       
+
+       }
+
+       public void verifyInCatalogData(int expected, List<String> expectedIds) {
+
+               Either<List<CatalogComponent>, StorageOperationStatus> highestResourcesRes = topologyTemplateOperation.getElementCatalogData();
+               assertTrue(highestResourcesRes.isLeft());
+               List<CatalogComponent> highestResources = highestResourcesRes.left().value();
+               // calculate expected count value
+               assertEquals(expected, highestResources.stream().count());
+               if (expectedIds != null) {
+                       highestResources.forEach(a -> assertTrue(expectedIds.contains(a.getUniqueId())));
+               }
        }
 
        @After
@@ -594,5 +654,5 @@ public class ToscaElementLifecycleOperationTest extends ModelTestBase {
                return result;
 
        }
-       
+
 }