package com.tinkerpop.blueprints.impls.orient; import com.orientechnologies.orient.core.db.record.OIdentifiable; import com.orientechnologies.orient.core.record.impl.ODocument; import com.tinkerpop.blueprints.Direction; import com.tinkerpop.blueprints.Edge; import org.junit.Assert; import org.junit.Test; import java.util.Iterator; public class OrientEdgeClassTest { @Test public void testDeleteEdgeWhileIterate() { OrientGraph graph = new OrientGraph("memory:test_graph", "admin", "admin"); try { graph.createEdgeType("Plays"); OrientVertex player = graph.addVertex(null); OrientVertex team = graph.addVertex(null); OrientVertex team2 = graph.addVertex(null); player.addEdge("plays", team); player.addEdge("PlAyS", team2); graph.commit(); // CHECK CASE INSENSITIVE Iterator<Edge> team_edges = player.getEdges(Direction.OUT, "pLAys").iterator(); Assert.assertTrue(team_edges.hasNext()); team_edges.next(); Assert.assertTrue(team_edges.hasNext()); team_edges.next(); // CHECK CASE SENSITIVE team_edges = player.getEdges(Direction.OUT, "Plays").iterator(); Assert.assertTrue(team_edges.hasNext()); team_edges.next(); Assert.assertTrue(team_edges.hasNext()); team_edges.next(); ODocument docPlayer = player.getRecord(); Iterable<OIdentifiable> out = docPlayer.field("out_Plays"); Assert.assertTrue(out.iterator().hasNext()); ODocument docTeam = team.getRecord(); Iterable<OIdentifiable> in = docTeam.field("in_Plays"); Assert.assertTrue(in.iterator().hasNext()); graph.getRawGraph().getLocalCache().clear(); docPlayer = graph.getRawGraph().load(docPlayer.getIdentity()); out = docPlayer.field("out_Plays"); Assert.assertTrue(out.iterator().hasNext()); docTeam = graph.getRawGraph().load(docTeam.getIdentity()); in = docTeam.field("in_Plays"); Assert.assertTrue(in.iterator().hasNext()); } finally { graph.drop(); } } }