diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/er/ERManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/er/ERManagement.java index 7e4fd18..23d739d 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/er/ERManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/er/ERManagement.java @@ -156,7 +156,7 @@ public abstract class ERManagement { if(oClass == null) { if(element != null) { OrientElement orientElement = (OrientElement) element; - OMetadata oMetadata = orientElement.getGraph().getRawGraph().getMetadata(); + OMetadata oMetadata = orientElement.getRecord().getDatabase().getMetadata(); OSchema oSchema = oMetadata.getSchema(); String type = orientElement.getRecord().getClassName(); oClass = oSchema.getClass(type); 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 745dfea..d846d06 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 @@ -31,7 +31,6 @@ import org.gcube.informationsystem.resourceregistry.utils.PropagationConstraintO import org.gcube.informationsystem.resourceregistry.utils.Utility; import org.gcube.informationsystem.utils.ISMapper; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; diff --git a/src/test/java/org/gcube/informationsystem/resourceregistry/context/ContextManagementTest.java b/src/test/java/org/gcube/informationsystem/resourceregistry/context/ContextManagementTest.java index 5de9c61..313d398 100644 --- a/src/test/java/org/gcube/informationsystem/resourceregistry/context/ContextManagementTest.java +++ b/src/test/java/org/gcube/informationsystem/resourceregistry/context/ContextManagementTest.java @@ -25,45 +25,45 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.core.JsonProcessingException; +import com.orientechnologies.orient.core.db.ODatabaseSession; import com.orientechnologies.orient.core.metadata.security.ORole; import com.orientechnologies.orient.core.metadata.security.OSecurity; import com.orientechnologies.orient.core.metadata.security.OUser; -import com.tinkerpop.blueprints.impls.orient.OrientGraph; public class ContextManagementTest extends ScopedTest { - + private static Logger logger = LoggerFactory.getLogger(ContextManagementTest.class); - + public static final String CTX_NAME_A = "A"; public static final String CTX_NAME_B = "B"; public static final String CTX_NAME_C = "C"; - + protected void assertions(Context pre, Context post, boolean checkParent, boolean create) throws ResourceRegistryException { - if (checkParent) { - if (pre.getHeader() != null) { + if(checkParent) { + if(pre.getHeader() != null) { FacetManagementTest.checkHeader(post, pre.getHeader().getUUID(), create); } else { FacetManagementTest.checkHeader(post, null, create); } } - + Assert.assertTrue(pre.getName().compareTo(post.getName()) == 0); - if (checkParent && pre.getParent() != null && post.getParent() != null) { + if(checkParent && pre.getParent() != null && post.getParent() != null) { Context preParent = pre.getParent().getSource(); Context postParent = post.getParent().getSource(); assertions(preParent, postParent, false, false); } - + } - + protected void roleUserAssertions(UUID uuid, UUID oldParentUUID, boolean deleted) throws ResourceRegistryException { ContextSecurityContext contextSecurityContext = new ContextSecurityContext(); ContextUtility.getInstance().addSecurityContext(contextSecurityContext.getUUID().toString(), contextSecurityContext); - - OrientGraph orientGraph = contextSecurityContext.getGraph(PermissionMode.READER); - OSecurity oSecurity = orientGraph.getRawGraph().getMetadata().getSecurity(); + + ODatabaseSession oDatabaseSession = contextSecurityContext.getDatabaseSession(PermissionMode.READER); + OSecurity oSecurity = oDatabaseSession.getMetadata().getSecurity(); SecurityContext securityContext = null; if(deleted) { @@ -71,31 +71,32 @@ public class ContextManagementTest extends ScopedTest { } else { securityContext = ContextUtility.getInstance().getSecurityContextByUUID(uuid); } - - boolean[] booleanArray = new boolean[] { false, true }; - for (boolean hierarchic : booleanArray) { - for (PermissionMode permissionMode : PermissionMode.values()) { + + boolean[] booleanArray = new boolean[] {false, true}; + for(boolean hierarchic : booleanArray) { + for(PermissionMode permissionMode : PermissionMode.values()) { String role = securityContext.getSecurityRoleOrUserName(permissionMode, SecurityType.ROLE, hierarchic); ORole oRole = oSecurity.getRole(role); Assert.assertEquals(oRole == null, deleted); - + String user = securityContext.getSecurityRoleOrUserName(permissionMode, SecurityType.USER, hierarchic); OUser oUser = oSecurity.getUser(user); Assert.assertEquals(oUser == null, deleted); - if(oUser!=null) { + if(oUser != null) { Assert.assertTrue(oUser.hasRole(oRole.getName(), false)); } if(hierarchic) { SecurityContext parent = null; - if(deleted){ - if(oldParentUUID!=null) { + if(deleted) { + if(oldParentUUID != null) { parent = ContextUtility.getInstance().getSecurityContextByUUID(oldParentUUID); } } parent = securityContext.getParentSecurityContext(); - while(parent!=null) { - String parentUser = parent.getSecurityRoleOrUserName(permissionMode, SecurityType.USER, hierarchic); + while(parent != null) { + String parentUser = parent.getSecurityRoleOrUserName(permissionMode, SecurityType.USER, + hierarchic); OUser parentOUser = oSecurity.getUser(parentUser); Assert.assertTrue(parentOUser != null); Assert.assertEquals(parentOUser.hasRole(oRole.getName(), false), !deleted); @@ -106,7 +107,7 @@ public class ContextManagementTest extends ScopedTest { } } } - + protected Context read(UUID uuid) throws ResourceRegistryException, IOException { ContextManagement contextManagement = new ContextManagement(); contextManagement.setUUID(uuid); @@ -115,7 +116,7 @@ public class ContextManagementTest extends ScopedTest { roleUserAssertions(uuid, null, false); return ISMapper.unmarshal(Context.class, contextString); } - + protected Context create(Context context) throws ResourceRegistryException, IOException { ContextManagement contextManagement = new ContextManagement(); contextManagement.setJson(ISMapper.marshal(context)); @@ -126,7 +127,7 @@ public class ContextManagementTest extends ScopedTest { roleUserAssertions(c.getHeader().getUUID(), null, false); return c; } - + protected Context update(Context context) throws ResourceRegistryException, IOException { ContextManagement contextManagement = new ContextManagement(); contextManagement.setJson(ISMapper.marshal(context)); @@ -137,7 +138,7 @@ public class ContextManagementTest extends ScopedTest { roleUserAssertions(c.getHeader().getUUID(), null, false); return c; } - + protected boolean delete(UUID uuid) throws ResourceRegistryException { ContextManagement contextManagement = new ContextManagement(); contextManagement.setUUID(uuid); @@ -145,7 +146,7 @@ public class ContextManagementTest extends ScopedTest { SecurityContext securityContext = ContextUtility.getInstance().getSecurityContextByUUID(uuid); UUID oldParentUUID = null; - if(securityContext.getParentSecurityContext()!=null) { + if(securityContext.getParentSecurityContext() != null) { oldParentUUID = securityContext.getParentSecurityContext().getUUID(); } @@ -155,35 +156,35 @@ public class ContextManagementTest extends ScopedTest { logger.debug("Deleted {} with UUID {}", Context.NAME, uuid); return deleted; } - + protected boolean delete(Context context) throws ResourceRegistryException { return delete(context.getHeader().getUUID()); } - + protected void invalidCreate(Context context) throws ResourceRegistryException, IOException { try { Context c = create(context); throw new RuntimeException(ISMapper.marshal(c) + " was created successfully. This is not what we expected"); - } catch (ContextAlreadyPresentException e) { + } catch(ContextAlreadyPresentException e) { logger.debug("As expected {} cannot be created.", ISMapper.marshal(context)); } } - + protected void invalidUpdate(Context context) throws ResourceRegistryException, IOException { try { Context c = update(context); throw new RuntimeException(ISMapper.marshal(c) + " was updated successfully. This is not what we expected"); - } catch (ContextAlreadyPresentException e) { + } catch(ContextAlreadyPresentException e) { logger.debug("As expected {} cannot be updated.", ISMapper.marshal(context)); } } - + protected void invalidDelete(Context context) throws ResourceRegistryException, JsonProcessingException { String contextString = ISMapper.marshal(context); try { delete(context); throw new RuntimeException(contextString + " was deleted successfully. This is not what we expected"); - } catch (ContextException e) { + } catch(ContextException e) { logger.debug("As expected {} cannot be deleted.", contextString); } } @@ -193,34 +194,34 @@ public class ContextManagementTest extends ScopedTest { Context contextA1 = new ContextImpl(CTX_NAME_A); contextA1 = create(contextA1); // ________A1________ - + Context contextA2 = new ContextImpl(CTX_NAME_A); contextA2.setParent(contextA1); contextA2 = create(contextA2); // ________A1________ // ___A2 - + Context contextB3 = new ContextImpl(CTX_NAME_B); contextB3.setParent(contextA2); contextB3 = create(contextB3); // ________A1________ // ___A2 // B3 - + Context contextB4 = new ContextImpl(CTX_NAME_B); contextB4.setParent(contextA1); contextB4 = create(contextB4); // ________A1________ // ___A2_______B4____ // B3 - + Context contextA5 = new ContextImpl(CTX_NAME_A); contextA5.setParent(contextB4); contextA5 = create(contextA5); // ________A1________ // ___A2_______B4____ // B3______________A5 - + invalidCreate(contextA1); // Trying to recreate A1. Fails invalidCreate(contextA2); // Trying to recreate A2. Fails invalidCreate(contextB3); // Trying to recreate B3. Fails @@ -242,20 +243,20 @@ public class ContextManagementTest extends ScopedTest { // _____A1____B4_____ // __A2__________A5__ // B3 - + contextB4.setParent(contextA1); update(contextB4); // ________A1________ // ___A2_______B4____ // B3______________A5 - + // Trying to rename with the new name A. It fails due to A5. contextB3.setName(CTX_NAME_A); update(contextB3); // ________A1________ // ___A2_______B4____ // A3______________A5 - + // After Restoring name B, trying to move B3 as child of A1. It fails due to B4. contextB3.setName(CTX_NAME_B); contextB3.setParent(contextA1); @@ -263,7 +264,7 @@ public class ContextManagementTest extends ScopedTest { // ________A1________ // ___A2_______B4____ // A3______________A5 - + // Restoring A3 (was B3) as B3 and with parent A2.OK. contextB3.setName(CTX_NAME_B); contextB3.setParent(contextA2); @@ -271,12 +272,12 @@ public class ContextManagementTest extends ScopedTest { // ________A1________ // ___A2_______B4____ // B3______________A5 - + // This update should not has eny effects except updating the lastUpdateTime. contextB3.setName(CTX_NAME_B); contextB3.setParent(contextA2); update(contextB3); - + // Trying to move A5 as child of A1. It fails due to A2. contextA5.setParent(contextA1); invalidUpdate(contextA5); @@ -285,49 +286,49 @@ public class ContextManagementTest extends ScopedTest { // ________A1________ // ___A2_______B4____ // B3______________A5 - + // Moving B3 as child of B4. OK. contextB3.setParent(contextB4); update(contextB3); // ________A1________ // ___A2_______B4____ // ________B3______A5 - + // Restoring the initial situation by moving B3 as child of A2. OK. contextB3.setParent(contextA2); update(contextB3); // ________A1________ // ___A2_______B4____ // B3______________A5 - + // Renaming B3 as C3. OK. contextB3.setName(CTX_NAME_C); update(contextB3); // ________A1________ // ___A2_______B4____ // C3______________A5 - + // Moving C3 (was B3) as child of A1. Now it is possible. OK. contextB3.setParent(contextA1); update(contextB3); // ________A1________ // ___A2___C3___B4___ // ________________A5 - + // Trying to rename C3 (was B3) newly to B3. Fails due to B4. contextB3.setName(CTX_NAME_B); invalidUpdate(contextB3); // ________A1________ // ___A2___C3___B4___ // ________________A5 - + // Moving back C3 (was B3) as child of A2. OK. contextB3.setParent(contextA2); update(contextB3); // ________A1________ // ___A2_______B4____ // C3______________A5 - + // Renaming C3 (was B3) to B3. OK. contextB3.setName(CTX_NAME_B); update(contextB3); @@ -372,7 +373,6 @@ public class ContextManagementTest extends ScopedTest { // B3______________A5 */ - // The following delete are not allowed because they are not child contexts invalidDelete(contextA1); invalidDelete(contextA2); @@ -382,34 +382,34 @@ public class ContextManagementTest extends ScopedTest { // ________A1________ // ___A2_______B4____ // B3 - + try { delete(contextA5); - } catch (ContextNotFoundException e) { + } catch(ContextNotFoundException e) { logger.debug("The context with uuid {} was not found. (Was already deleted)", contextA5.getHeader().getUUID()); } - + delete(contextB3); // ________A1________ // ___A2_______B4____ - + delete(contextB4); // ________A1________ // ___A2 - + delete(contextA2); // ________A1________ - + Context contextC = new ContextImpl(CTX_NAME_C); contextC.setHeader(new HeaderImpl(contextA1.getHeader().getUUID())); invalidCreate(contextC); - + delete(contextA1); logger.debug("The DB should be now clean"); } - private List getAll() throws Exception{ + private List getAll() throws Exception { ContextManagement contextManagement = new ContextManagement(); String allString = contextManagement.all(false); logger.trace(allString); @@ -437,10 +437,10 @@ public class ContextManagementTest extends ScopedTest { @Test public void testGetAll() throws Exception { List contexts = getAll(); - for (Context context : contexts) { + for(Context context : contexts) { logger.trace(ISMapper.marshal(context)); - List> children = context.getChildren(); - for (IsParentOf child : children) { + List> children = context.getChildren(); + for(IsParentOf child : children) { Assert.assertTrue(child.getSource() == context); Context childContext = child.getTarget(); Assert.assertTrue(childContext.getParent().getSource() == context); @@ -448,18 +448,17 @@ public class ContextManagementTest extends ScopedTest { roleUserAssertions(context.getHeader().getUUID(), null, false); } } - + // @Test public void readContext() throws ResourceRegistryException, IOException { Context context = read(UUID.fromString("")); logger.debug("{}", context); } - // @Test public void deleteContext() throws ResourceRegistryException, IOException { Context context = read(UUID.fromString("")); delete(context); } - + }