@Override public Set<String> getCollections() throws Exception { final Set<String> indexes = new HashSet<String>(); GraphManager gm = managerCache.getGraphManager( applicationScope ); Observable<String> str = gm.getEdgeTypesFromSource( new SimpleSearchEdgeType( cpHeadEntity.getId(), null, null ) ); Iterator<String> iter = str.toBlocking().getIterator(); while ( iter.hasNext() ) { String edgeType = iter.next(); indexes.add( getNameFromEdgeType( edgeType ) ); } return indexes; }
/** * Test repairing with no edges */ @Test public void noEdges() { MarkedEdge edge = createEdge( "source", "test", "target" ); Iterator<MarkedEdge> edges = edgeDeleteRepair.repair( scope, edge, UUIDGenerator.newTimeUUID() ).toBlocking().getIterator(); assertFalse( "No edges cleaned", edges.hasNext() ); }
@Test public void testWriteReadEdgeTypesSourceTypesPrefix() { final GraphManager gm = emf.createEdgeManager( scope ); Id sourceId = new SimpleId( "source" ); Id targetId = new SimpleId( "target" ); Edge testTargetEdge = createEdge( sourceId, "test1edge1", targetId, System.currentTimeMillis() ); gm.writeEdge( testTargetEdge ).toBlocking().singleOrDefault( null ); Edge testTarget2Edge = createEdge( sourceId, "test1edge2", targetId, System.currentTimeMillis() ); gm.writeEdge( testTarget2Edge ).toBlocking().singleOrDefault( null ); Edge test2TargetEdge = createEdge( sourceId, "test2edge1", targetId, System.currentTimeMillis() ); gm.writeEdge( test2TargetEdge ).toBlocking().singleOrDefault( null ); //get our 2 edge types Observable<String> edges = gm.getEdgeTypesFromSource( new SimpleSearchEdgeType( testTargetEdge.getSourceNode(), "test1", null ) ); Iterator<String> results = edges.toBlocking().getIterator(); assertEquals( "Edges correct", "test1edge1", results.next() ); assertEquals( "Edges correct", "test1edge2", results.next() ); assertFalse( "No more edges", results.hasNext() ); edges = gm.getEdgeTypesFromSource( new SimpleSearchEdgeType( testTargetEdge.getSourceNode(), "test2", null ) ); results = edges.toBlocking().getIterator(); assertEquals( "Edges correct", "test2edge1", results.next() ); assertFalse( "No more edges", results.hasNext() ); }
@Test public void testWriteReadEdgeTypesTargetTypesPrefix() { final GraphManager gm = emf.createEdgeManager( scope ); Id targetId = new SimpleId( "target" ); Id sourceId = new SimpleId( "source" ); Edge testTargetEdge = createEdge( sourceId, "test1edge1", targetId, System.currentTimeMillis() ); gm.writeEdge( testTargetEdge ).toBlocking().singleOrDefault( null ); Edge testTarget2Edge = createEdge( sourceId, "test1edge2", targetId, System.currentTimeMillis() ); gm.writeEdge( testTarget2Edge ).toBlocking().singleOrDefault( null ); Edge test2TargetEdge = createEdge( sourceId, "test2edge1", targetId, System.currentTimeMillis() ); gm.writeEdge( test2TargetEdge ).toBlocking().singleOrDefault( null ); //get our 2 edge types Observable<String> edges = gm.getEdgeTypesToTarget( new SimpleSearchEdgeType( testTargetEdge.getTargetNode(), "test1", null ) ); Iterator<String> results = edges.toBlocking().getIterator(); assertEquals( "Edges correct", "test1edge1", results.next() ); assertEquals( "Edges correct", "test1edge2", results.next() ); assertFalse( "No more edges", results.hasNext() ); edges = gm.getEdgeTypesToTarget( new SimpleSearchEdgeType( testTargetEdge.getTargetNode(), "test2", null ) ); results = edges.toBlocking().getIterator(); assertEquals( "Edges correct", "test2edge1", results.next() ); assertFalse( "No more edges", results.hasNext() ); }
Iterator<MarkedEdge> results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator();
Iterator<String> results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator();
.getIterator(); .getIterator(); .getIterator(); .getIterator(); .toBlocking().getIterator();
.getIterator(); .getIterator(); .getIterator(); .getIterator(); .toBlocking().getIterator();
Iterator<String> results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator(); gm.getIdTypesFromSource( new SimpleSearchIdType( testTargetEdge.getSourceNode(), "test2", null, null ) ); results = edges.toBlocking().getIterator();
@Test public void testSourceSubTypes() { //now test sub edges final GraphManager gm = emf.createEdgeManager( scope ); Id sourceId = new SimpleId( "source" ); Id targetId1target1 = new SimpleId( "type1target1" ); Id targetId1target2 = new SimpleId( "type1target2" ); Id targetId2 = new SimpleId( "type2target2" ); Edge testTargetEdge = createEdge( sourceId, "test", targetId1target1, System.currentTimeMillis() ); gm.writeEdge( testTargetEdge ).toBlocking().singleOrDefault( null ); Edge testTarget2Edge = createEdge( sourceId, "test", targetId1target2, System.currentTimeMillis() ); gm.writeEdge( testTarget2Edge ).toBlocking().singleOrDefault( null ); Edge test2TargetEdge = createEdge( sourceId, "test", targetId2, System.currentTimeMillis() ); gm.writeEdge( test2TargetEdge ).toBlocking().singleOrDefault( null ); Observable<String> edges = gm.getIdTypesFromSource( new SimpleSearchIdType( testTargetEdge.getSourceNode(), "test", "type1", null ) ); Iterator<String> results = edges.toBlocking().getIterator(); assertEquals( "Types correct", targetId1target1.getType(), results.next() ); assertEquals( "Types correct", targetId1target2.getType(), results.next() ); assertFalse( "No results", results.hasNext() ); //now get types for test2 edges = gm.getIdTypesFromSource( new SimpleSearchIdType( testTargetEdge.getSourceNode(), "test", "type2", null ) ); results = edges.toBlocking().getIterator(); assertEquals( "Types correct", targetId2.getType(), results.next() ); assertFalse( "No results", results.hasNext() ); }
Iterator<String> results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator(); new SimpleSearchIdType( testTargetEdge.getTargetNode(), "test", null, sourceId1.getType() ) ); results = edges.toBlocking().getIterator();
Iterator<String> results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator(); new SimpleSearchIdType( testTargetEdge.getSourceNode(), "test", null, targetId1.getType() ) ); results = edges.toBlocking().getIterator();
@Test public void testTargetSubTypes() { //now test sub edges final GraphManager gm = emf.createEdgeManager( scope ); Id targetId = new SimpleId( "target" ); Id sourceId1target1 = new SimpleId( "type1source1" ); Id sourceId1target2 = new SimpleId( "type1source2" ); Id sourceId2 = new SimpleId( "type2source2" ); Edge testTargetEdge = createEdge( sourceId1target1, "test", targetId, System.currentTimeMillis() ); gm.writeEdge( testTargetEdge ).toBlocking().singleOrDefault( null ); Edge testTarget2Edge = createEdge( sourceId1target2, "test", targetId, System.currentTimeMillis() ); gm.writeEdge( testTarget2Edge ).toBlocking().singleOrDefault( null ); Edge test2TargetEdge = createEdge( sourceId2, "test", targetId, System.currentTimeMillis() ); gm.writeEdge( test2TargetEdge ).toBlocking().singleOrDefault( null ); Observable<String> edges = gm.getIdTypesToTarget( new SimpleSearchIdType( testTargetEdge.getTargetNode(), "test", "type1", null ) ); Iterator<String> results = edges.toBlocking().getIterator(); assertEquals( "Types correct", sourceId1target1.getType(), results.next() ); assertEquals( "Types correct", sourceId1target2.getType(), results.next() ); assertFalse( "No results", results.hasNext() ); //now get types for test2 edges = gm.getIdTypesToTarget( new SimpleSearchIdType( testTargetEdge.getTargetNode(), "test", "type2", null ) ); results = edges.toBlocking().getIterator(); assertEquals( "Types correct", sourceId2.getType(), results.next() ); assertFalse( "No results", results.hasNext() ); }
Iterator<MarkedEdge> results = edges.toBlocking().getIterator(); createSearchByEdgeAndId( sourceId, edge1.getType(), maxVersion, targetId1.getType(), null ) ); results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator();
Iterator<MarkedEdge> results = edges.toBlocking().getIterator(); createSearchByEdgeAndId( edge1.getSourceNode(), edge1.getType(), maxVersion, sourceId1.getType(), null ) ); results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator();
Iterator<MarkedEdge> results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator();
Iterator<MarkedEdge> results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator(); results = edges.toBlocking().getIterator();
@Test public void testWriteReadEdgeTypePagingTarget() { GraphManager gm = emf.createEdgeManager( scope ); final Id targetId = IdGenerator.createId( "target" ); Edge edge1 = createEdge( IdGenerator.createId( "source" ), "test", targetId ); gm.writeEdge( edge1 ).toBlocking().last(); Edge edge2 = createEdge( IdGenerator.createId( "source" ), "test", targetId ); gm.writeEdge( edge2 ).toBlocking().last(); Edge edge3 = createEdge( IdGenerator.createId( "source" ), "test", targetId ); gm.writeEdge( edge3 ).toBlocking().last(); //now test retrieving it SearchByEdgeType search = createSearchByEdge( edge1.getTargetNode(), edge1.getType(), edge3.getTimestamp(), null ); Observable<MarkedEdge> edges = gm.loadEdgesToTarget( search ); //implicitly blows up if more than 1 is returned from "single" Iterator<MarkedEdge> returned = edges.toBlocking().getIterator(); //we have 3 edges, but we specified our first edge as the max, we shouldn't get any more results than the first assertEquals( "Correct edge returned", edge3, returned.next() ); assertEquals( "Correct edge returned", edge2, returned.next() ); assertEquals( "Correct edge returned", edge1, returned.next() ); assertFalse( "No more edges", returned.hasNext() ); search = createSearchByEdge( edge1.getTargetNode(), edge1.getType(), edge3.getTimestamp(), edge2 ); edges = gm.loadEdgesToTarget( search ); //implicitly blows up if more than 1 is returned from "single" returned = edges.toBlocking().getIterator(); assertEquals( "Paged correctly", edge1, returned.next() ); assertFalse( "End of stream", returned.hasNext() ); }
Iterator<MarkedEdge> returned = edges.toBlocking().getIterator(); returned = edges.toBlocking().getIterator(); returned = edges.toBlocking().getIterator(); returned = edges.toBlocking().getIterator();
@Test public void testWriteReadEdgeTypePagingSource() throws TimeoutException, InterruptedException { GraphManager gm = emf.createEdgeManager( scope ); final Id sourceId = IdGenerator.createId( "source" ); Edge edge1 = createEdge( sourceId, "test", IdGenerator.createId( "target" ) ); gm.writeEdge( edge1 ).toBlocking().last(); Edge edge2 = createEdge( sourceId, "test", IdGenerator.createId( "target" ) ); gm.writeEdge( edge2 ).toBlocking().last(); Edge edge3 = createEdge( sourceId, "test", IdGenerator.createId( "target" ) ); gm.writeEdge( edge3 ).toBlocking().last(); //now test retrieving it SearchByEdgeType search = createSearchByEdge( edge1.getSourceNode(), edge1.getType(), edge3.getTimestamp(), null ); Observable<MarkedEdge> edges = gm.loadEdgesFromSource( search ); //implicitly blows up if more than 1 is returned from "single" Iterator<MarkedEdge> returned = edges.toBlocking().getIterator(); //we have 3 edges, but we specified our first edge as the max, we shouldn't get any more results than the first assertEquals( "Correct edge returned", edge3, returned.next() ); assertEquals( "Correct edge returned", edge2, returned.next() ); assertEquals( "Correct edge returned", edge1, returned.next() ); assertFalse( "No more edges", returned.hasNext() ); //still edge 3 is our max version, but we start with edge 2 as our last read search = createSearchByEdge( edge1.getSourceNode(), edge1.getType(), edge3.getTimestamp(), edge2 ); edges = gm.loadEdgesFromSource( search ); //implicitly blows up if more than 1 is returned from "single" returned = edges.toBlocking().getIterator(); assertEquals( "Paged correctly", edge1, returned.next() ); assertFalse( "End of stream", returned.hasNext() ); }