From 7ede9a46888176bf4191da2fe55d093a24a4d916 Mon Sep 17 00:00:00 2001 From: "luca.frosini" Date: Wed, 11 Jan 2017 16:11:28 +0000 Subject: [PATCH] IMplementing get all instances of a specified type git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/information-system/resource-registry@141511 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../er/entity/EntityManagement.java | 2 +- .../er/relation/RelationManagement.java | 2 +- .../resourceregistry/er/ERManagementTest.java | 100 ++++++++++++++++++ 3 files changed, 102 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/er/entity/EntityManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/er/entity/EntityManagement.java index 285e18c..8d3f55a 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/er/entity/EntityManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/er/entity/EntityManagement.java @@ -217,7 +217,7 @@ public abstract class EntityManagement extends @Override public String reallyGetAll(boolean polymorphic) throws ResourceRegistryException { JSONArray jsonArray = new JSONArray(); - Iterable iterable = orientGraph.query().has("@class", erType).vertices(); + Iterable iterable = orientGraph.getVerticesOfClass(erType, polymorphic); for(Vertex vertex : iterable){ @SuppressWarnings("rawtypes") EntityManagement entityManagement = getEntityManagement(orientGraph, vertex); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/er/relation/RelationManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/er/relation/RelationManagement.java index 07c866d..a45b92c 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/er/relation/RelationManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/er/relation/RelationManagement.java @@ -485,7 +485,7 @@ public abstract class RelationManagement extends ERManagemen @Override public String reallyGetAll(boolean polymorphic) throws ResourceRegistryException { - Iterable edges = orientGraph.query().has("@class", erType).edges(); + Iterable edges = orientGraph.getEdgesOfClass(erType, polymorphic); return serializeEdges(edges); } diff --git a/src/test/java/org/gcube/informationsystem/resourceregistry/er/ERManagementTest.java b/src/test/java/org/gcube/informationsystem/resourceregistry/er/ERManagementTest.java index 63704eb..ba93071 100644 --- a/src/test/java/org/gcube/informationsystem/resourceregistry/er/ERManagementTest.java +++ b/src/test/java/org/gcube/informationsystem/resourceregistry/er/ERManagementTest.java @@ -5,8 +5,10 @@ package org.gcube.informationsystem.resourceregistry.er; import java.net.URI; import java.net.URL; +import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.UUID; @@ -39,6 +41,7 @@ import org.gcube.informationsystem.model.entity.resource.EService; import org.gcube.informationsystem.model.entity.resource.HostingNode; import org.gcube.informationsystem.model.relation.ConsistsOf; import org.gcube.informationsystem.model.relation.IsIdentifiedBy; +import org.gcube.informationsystem.model.relation.IsRelatedTo; import org.gcube.informationsystem.model.relation.Relation; import org.gcube.informationsystem.model.relation.isrelatedto.Hosts; import org.gcube.informationsystem.resourceregistry.ScopedTest; @@ -46,6 +49,7 @@ import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.facet. import org.gcube.informationsystem.resourceregistry.er.entity.FacetManagement; import org.gcube.informationsystem.resourceregistry.er.entity.ResourceManagement; import org.gcube.informationsystem.resourceregistry.er.relation.ConsistsOfManagement; +import org.gcube.informationsystem.resourceregistry.er.relation.IsRelatedToManagement; import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; @@ -406,5 +410,101 @@ public class ERManagementTest extends ScopedTest { resourceManagement.delete(); } + + + @SuppressWarnings("rawtypes") + @Test + public void testGetAll() throws Exception{ + Map> resources = new HashMap<>(); + + final int MAX = 5; + int typeNumber = 0; + + for(int i=0; i map = createHostingNodeAndEService(); + if(typeNumber==0){ + typeNumber = map.size(); + } + for(String key : map.keySet()){ + if(!resources.containsKey(key)){ + resources.put(key, new ArrayList()); + } + resources.get(key).add(map.get(key)); + } + } + + /* Getting all instances of created specific Resources*/ + for(String key : resources.keySet()){ + ResourceManagement resourceManagement = (ResourceManagement) ERManagement.getERManagement(key); + String json = resourceManagement.all(false); + + List list = Entities.unmarshalList(Resource.class, json); + logger.debug("{}s are {} : {} ", key, list.size(), list); + Assert.assertTrue(list.size()==MAX); + } + + + /* Getting all Resources polymorphic and non polymorphic */ + + ResourceManagement resourceManagement = (ResourceManagement) ERManagement.getERManagement(Resource.NAME); + + String json = resourceManagement.all(true); + List list = Entities.unmarshalList(Resource.class, json); + logger.debug("{}s are {} : {} ", Resource.NAME, list.size(), list); + Assert.assertTrue(list.size()==(MAX*typeNumber)); + + + json = resourceManagement.all(false); + list = Entities.unmarshalList(Resource.class, json); + Assert.assertTrue(list.size()==0); + + + /* Getting all IsRelatedTo polymorphic and non polymorphic */ + + IsRelatedToManagement isRelatedToManagement = (IsRelatedToManagement) ERManagement.getERManagement(IsRelatedTo.NAME); + + json = isRelatedToManagement.all(true); + + List isRelatedToList = Entities.unmarshalList(IsRelatedTo.class, json); + logger.debug("{}s are {} : {} ", IsRelatedTo.NAME, isRelatedToList.size(), isRelatedToList); + Assert.assertTrue(isRelatedToList.size()==MAX); + + + json = isRelatedToManagement.all(false); + isRelatedToList = Entities.unmarshalList(IsRelatedTo.class, json); + Assert.assertTrue(isRelatedToList.size()==0); + + + + + /* Getting all ConsistsOf polymorphic and non polymorphic */ + + ConsistsOfManagement consistsOfManagement = (ConsistsOfManagement) ERManagement.getERManagement(ConsistsOf.NAME); + + json = consistsOfManagement.all(true); + List consistsOfPolimorphicList = Entities.unmarshalList(ConsistsOf.class, json); + logger.debug("{}s are {} : {} ", IsRelatedTo.NAME, consistsOfPolimorphicList.size(), consistsOfPolimorphicList); + + + json = consistsOfManagement.all(false); + List consistsOfNonPolimorphicList = Entities.unmarshalList(ConsistsOf.class, json); + logger.debug("{}s are {} : {} ", IsRelatedTo.NAME, consistsOfNonPolimorphicList.size(), consistsOfNonPolimorphicList); + + Assert.assertTrue(consistsOfPolimorphicList.size()>=consistsOfNonPolimorphicList.size()); + + + + + /* Removing created Entity and Realtion to have a clean DB */ + + list = resources.get(HostingNode.NAME); + for(Resource r : list){ + resourceManagement = new ResourceManagement(); + resourceManagement.setUUID(r.getHeader().getUUID()); + resourceManagement.delete(); + } + + + } }