int labelcalls = 2; int calls = numV*2+labelcalls; // numV * (vertex existence + loading edges) + 2 getting "knows" definition for (int i=0;i<numV;i++) assertEquals(edgePerV,Iterables.size(graph.getVertex(vs[i]).getVertices(Direction.OUT,"knows"))); verifyCacheCalls(calls,calls,0); graph.commit(); for (int i=0;i<numV;i++) assertEquals(edgePerV,Iterables.size(graph.getVertex(vs[i]).getVertices(Direction.OUT,"knows"))); verifyCacheCalls(calls*2,calls,calls); for (int i=0;i<numV;i++) assertEquals(edgePerV,Iterables.size(graph.getVertex(vs[i]).getVertices(Direction.OUT,"knows"))); verifyCacheCalls(calls*2,calls,calls); for (int i=0;i<numV;i++) assertEquals(edgePerV,Iterables.size(graph.getVertex(vs[i]).getVertices(Direction.OUT,"knows"))); verifyCacheCalls(calls,calls,0); for (int i=0;i<numV;i++) { graph.getVertex(vs[i]).addEdge("knows",graph.getVertex(vs[i])); for (int i=0;i<numV;i++) assertEquals(edgePerV+1,Iterables.size(graph.getVertex(vs[i]).getVertices(Direction.OUT,"knows"))); verifyCacheCalls(calls,calls,0); //Everything served out of tx cache graph.commit(); for (int i=0;i<numV;i++) assertEquals(edgePerV+1,Iterables.size(graph.getVertex(vs[i]).getVertices(Direction.OUT,"knows"))); for (int i=0;i<numV;i++) assertEquals(edgePerV+1,Iterables.size(graph.getVertex(vs[i]).getVertices(Direction.OUT,"knows"))); verifyCacheCalls(calls+2*labelcalls,calls,2*labelcalls); //Things are still invalid.... graph.commit(); for (int i=0;i<numV;i++) assertEquals(edgePerV+1,Iterables.size(graph.getVertex(vs[i]).getVertices(Direction.OUT,"knows"))); graph.commit(); for (int i=0;i<numV;i++) assertEquals(edgePerV+1,Iterables.size(graph.getVertex(vs[i]).getVertices(Direction.OUT,"knows"))); assertTrue(ExpirationStoreCache.getGlobalCacheRetrievals()>=calls-1); //Things are somewhat non-deterministic here due to the parallel cleanup thread
newTx(); v21 = tx.getVertex(v21.getID()); v3 = (TitanVertex) Iterables.getOnlyElement(v21.getVertices(OUT, "link")); assertFalse(v3.isRemoved()); v3.remove(); newTx(); v21 = tx.getVertex(v21.getID()); v3 = (TitanVertex) Iterables.getOnlyElement(v21.getVertices(OUT, "link")); assertFalse(v3.isRemoved()); newTx(); v3 = (TitanVertex) Iterables.getOnlyElement(v21.getVertices(OUT, "link")); assertTrue(v3.isRemoved()); tx3.commit();
newTx(); v21 = tx.getVertex(v21.getLongId()); v3 = (TitanVertex) Iterables.getOnlyElement(v21.getVertices(OUT, "link")); assertFalse(v3.isRemoved()); v3.remove(); newTx(); v21 = tx.getVertex(v21.getLongId()); v3 = (TitanVertex) Iterables.getOnlyElement(v21.getVertices(OUT, "link")); assertFalse(v3.isRemoved()); newTx(); v3 = (TitanVertex) Iterables.getOnlyElement(v21.getVertices(OUT, "link")); assertTrue(v3.isRemoved()); tx3.commit();
v = (TitanVertex)Iterables.getOnlyElement(tx.query().has("uid",1).vertices()); assertEquals(1,v.getProperty("uid")); u = (TitanVertex)Iterables.getOnlyElement(v.getVertices(Direction.BOTH,"knows")); e = (TitanEdge)Iterables.getOnlyElement(u.getEdges(Direction.IN,"knows")); assertEquals("juju",u.getProperty("name"));
assertEquals(1, Iterables.size(v12.query().direction(OUT).types(parent).has(weight,Cmp.EQUAL,4.5).edges())); assertEquals(1, Iterables.size(v13.query().direction(OUT).types(parent).has(weight,Cmp.EQUAL,4.5).edges())); assertEquals(v12,Iterables.getOnlyElement(v.getVertices(OUT,spouse.getName()))); edge = (TitanEdge)Iterables.getOnlyElement(v.query().types(connect).direction(BOTH).edges()); assertEquals(2,edge.getPropertyKeys().size()); v2 = (TitanVertex)Iterables.getOnlyElement(v12.getVertices(Direction.OUT,connect.getName())); assertEquals(v13,Iterables.getOnlyElement(v2.getEdges(OUT,link.getName())).getVertex(Direction.IN)); assertEquals(1, Iterables.size(v12.query().direction(OUT).types(parent).has(weight,Cmp.EQUAL,4.5).edges())); assertEquals(1, Iterables.size(v13.query().direction(OUT).types(parent).has(weight,Cmp.EQUAL,4.5).edges())); assertEquals(v12,Iterables.getOnlyElement(v.getVertices(OUT,spouse.getName()))); edge = (TitanEdge)Iterables.getOnlyElement(v.query().types(connect).direction(BOTH).edges()); assertEquals(2,edge.getPropertyKeys().size()); v2 = (TitanVertex)Iterables.getOnlyElement(v12.getVertices(Direction.OUT,connect.getName())); assertEquals(v13,Iterables.getOnlyElement(v2.getEdges(OUT,link.getName())).getVertex(Direction.IN));