Refine search
assertEquals("~ttl", ImplicitKey.TTL.name()); EdgeLabel hasLiked = mgmt.makeEdgeLabel("hasLiked").make(); mgmt.setTTL(likes, Duration.ofSeconds(ttl)); assertEquals(Duration.ofSeconds(ttl), mgmt.getTTL(likes)); assertEquals(Duration.ZERO, mgmt.getTTL(hasLiked)); mgmt.commit(); d = e1.value("~ttl"); assertEquals(Duration.ofDays(1), d); d = e1.value("~ttl"); assertEquals(Duration.ofDays(1), d); graph.tx().rollback(); e1 = getOnlyElement(v1.query().direction(Direction.OUT).labels("likes").edges()); d = e1.value("~ttl"); assertEquals(Duration.ofDays(1), d); d = e2.value("~ttl"); assertEquals(Duration.ZERO, d);
private void processTx(TitanTransaction tx, int txid, long vid, long uid) { TitanVertex v = getV(tx,vid); TitanVertex u = getV(tx,uid); assertEquals(5.0,v.<Double>value("weight").doubleValue(),0.00001); VertexProperty p = getOnlyElement(v.properties("weight")); assertEquals(1,p.<Integer>value("sig").intValue()); sign(v.property("weight",6.0),txid); p = getOnlyElement(v.properties("name")); assertEquals(1,p.<Integer>value("sig").intValue()); assertEquals("John",p.value()); p.remove(); assertEquals(1,e.<Integer>value("sig").intValue()); e.remove(); sign(v.addEdge("es",u),txid); e = getOnlyElement(v.query().direction(OUT).labels("o2o").edges()); assertEquals(1,e.<Integer>value("sig").intValue()); sign((TitanEdge)e,txid); e = getOnlyElement(v.query().direction(OUT).labels("o2m").edges()); assertEquals(1,e.<Integer>value("sig").intValue()); e.remove(); sign(v.addEdge("o2m",u),txid); for (String label : new String[]{"em","emf"}) { e = getOnlyElement(v.query().direction(OUT).labels(label).edges()); assertEquals(1,e.<Integer>value("sig").intValue()); sign((TitanEdge)e,txid);
private void processTx(JanusGraphTransaction tx, int transactionId, long vid, long uid) { JanusGraphVertex v = getV(tx,vid); JanusGraphVertex u = getV(tx,uid); assertEquals(5.0, v.<Double>value("weight"),0.00001); VertexProperty p = getOnlyElement(v.properties("weight")); assertEquals(1,p.<Integer>value("sig").intValue()); sign(v.property("weight",6.0),transactionId); p = getOnlyElement(v.properties("name")); assertEquals(1,p.<Integer>value("sig").intValue()); assertEquals("John",p.value()); p.remove(); assertEquals(1,e.<Integer>value("sig").intValue()); e.remove(); sign(v.addEdge("es",u),transactionId); e = Iterables.getOnlyElement(v.query().direction(OUT).labels("o2o").edges()); assertEquals(1,e.<Integer>value("sig").intValue()); sign((JanusGraphEdge)e,transactionId); e = Iterables.getOnlyElement(v.query().direction(OUT).labels("o2m").edges()); assertEquals(1,e.<Integer>value("sig").intValue()); e.remove(); sign(v.addEdge("o2m",u),transactionId); for (String label : new String[]{"em","emf"}) { e = Iterables.getOnlyElement(v.query().direction(OUT).labels(label).edges()); assertEquals(1,e.<Integer>value("sig").intValue()); sign((JanusGraphEdge)e,transactionId);
Edge e = v3.addEdge("knows", v1, "uid", 111); Edge e2 = v1.addEdge("friend", v3); assertEquals(111, e.<Integer>value("uid").intValue()); graph.tx().commit(); assertEquals(445, v3.<Integer>value("uid").intValue()); e = getOnlyElement(v3.query().direction(Direction.OUT).labels("knows").edges()); assertEquals(111, e.<Integer>value("uid").intValue()); assertEquals(e, getE(graph, e.id())); assertEquals(e, getE(graph, e.id().toString())); e2.property("weight", 2.0); assertEquals(1, e2.<Integer>value("uid").intValue()); assertEquals(2.0, e2.<Double>value("weight").doubleValue(), 0.0001); assertEquals(222, e.<Integer>value("uid").intValue());
assertEquals("~ttl", ImplicitKey.TTL.name()); EdgeLabel hasLiked = mgmt.makeEdgeLabel("hasLiked").make(); mgmt.setTTL(likes, Duration.ofSeconds(ttl)); assertEquals(Duration.ofSeconds(ttl), mgmt.getTTL(likes)); assertEquals(Duration.ZERO, mgmt.getTTL(hasLiked)); mgmt.commit(); d = e1.value("~ttl"); assertEquals(Duration.ofDays(1), d); d = e1.value("~ttl"); assertEquals(Duration.ofDays(1), d); graph.tx().rollback(); e1 = Iterables.getOnlyElement(v1.query().direction(Direction.OUT).labels("likes").edges()); d = e1.value("~ttl"); assertEquals(Duration.ofDays(1), d); d = e2.value("~ttl"); assertEquals(Duration.ZERO, d);
Edge e = v3.addEdge("knows", v1, "uid", 111); Edge e2 = v1.addEdge("friend", v3); assertEquals(111, e.<Integer>value("uid").intValue()); graph.tx().commit(); assertEquals(445, v3.<Integer>value("uid").intValue()); e = Iterables.getOnlyElement(v3.query().direction(Direction.OUT).labels("knows").edges()); assertEquals(111, e.<Integer>value("uid").intValue()); assertEquals(e, getE(graph, e.id())); assertEquals(e, getE(graph, e.id().toString())); e2.property("weight", 2.0); assertEquals(1, e2.<Integer>value("uid").intValue()); assertEquals(2.0, e2.<Double>value("weight"), 0.0001); assertEquals(222, e.<Integer>value("uid").intValue());
/** * Tests that timestamped edges can be updated */ @Test public void testTimestampedEdgeUpdates() { clopen(option(GraphDatabaseConfiguration.STORE_META_TIMESTAMPS, "edgestore"), true, option(GraphDatabaseConfiguration.STORE_META_TTL, "edgestore"), true); // Transaction 1: Init graph with two vertices and one edge TitanTransaction tx = graph.buildTransaction().commitTime(Instant.ofEpochSecond(100)).start(); TitanVertex v1 = tx.addVertex(); TitanVertex v2 = tx.addVertex(); Edge e = v1.addEdge("related",v2); e.property("time", 25); tx.commit(); tx = graph.buildTransaction().commitTime(Instant.ofEpochSecond(200)).start(); v1 = tx.getVertex(v1.longId()); assertNotNull(v1); e = Iterators.getOnlyElement(v1.edges(Direction.OUT, "related")); assertNotNull(e); assertEquals(Integer.valueOf(25), e.value("time")); e.property("time", 125); tx.commit(); tx = graph.buildTransaction().commitTime(Instant.ofEpochSecond(300)).start(); v1 = tx.getVertex(v1.longId()); assertNotNull(v1); e = Iterators.getOnlyElement(v1.edges(Direction.OUT, "related")); assertEquals(Integer.valueOf(125), e.value("time")); e.remove(); tx.commit(); }
assertCount(1, v.query().direction(Direction.OUT).labels("knows").edges()); TitanEdge tmpE = getOnlyElement(v.query().direction(Direction.OUT).labels("knows").edges()); assertEquals(5, tmpE.<Integer>value("time") % 10); assertEquals(35, e3.<Integer>value("time").intValue()); assertEquals(35, e3.<Integer>value("time").intValue()); e3 = getE(graph, e3); e3.property("time", 45); assertEquals(45, e3.<Integer>value("time").intValue()); assertEquals(15, e2.<Integer>value("time").intValue()); e2.property("time", 25); assertEquals(25, e2.<Integer>value("time").intValue()); assertEquals(35, v1.<Integer>value("age").intValue()); assertTrue(getId(prop) > 0); assertEquals(45, e3.<Integer>value("time").intValue()); assertEquals(5, e1.<Integer>value("time").intValue()); assertEquals(35, v1.<Integer>value("age").intValue());
/** * Tests that timestamped edges can be updated */ @Test public void testTimestampedEdgeUpdates() { clopen(option(GraphDatabaseConfiguration.STORE_META_TIMESTAMPS, "edgestore"), true, option(GraphDatabaseConfiguration.STORE_META_TTL, "edgestore"), true); // Transaction 1: Init graph with two vertices and one edge JanusGraphTransaction tx = graph.buildTransaction().commitTime(Instant.ofEpochSecond(100)).start(); JanusGraphVertex v1 = tx.addVertex(); JanusGraphVertex v2 = tx.addVertex(); Edge e = v1.addEdge("related",v2); e.property("time", 25); tx.commit(); tx = graph.buildTransaction().commitTime(Instant.ofEpochSecond(200)).start(); v1 = tx.getVertex(v1.longId()); assertNotNull(v1); e = Iterators.getOnlyElement(v1.edges(Direction.OUT, "related")); assertNotNull(e); assertEquals(Integer.valueOf(25), e.value("time")); e.property("time", 125); tx.commit(); tx = graph.buildTransaction().commitTime(Instant.ofEpochSecond(300)).start(); v1 = tx.getVertex(v1.longId()); assertNotNull(v1); e = Iterators.getOnlyElement(v1.edges(Direction.OUT, "related")); assertEquals(Integer.valueOf(125), e.value("time")); e.remove(); tx.commit(); }
assertCount(1, v.query().direction(Direction.OUT).labels("knows").edges()); final JanusGraphEdge tmpE = Iterables.getOnlyElement(v.query().direction(Direction.OUT).labels("knows").edges()); assertEquals(5, tmpE.<Integer>value("time") % 10); assertEquals(35, e3.<Integer>value("time").intValue()); assertEquals(35, e3.<Integer>value("time").intValue()); e3 = getE(graph, e3); e3.property("time", 45); assertEquals(45, e3.<Integer>value("time").intValue()); assertEquals(15, e2.<Integer>value("time").intValue()); e2.property("time", 25); assertEquals(25, e2.<Integer>value("time").intValue()); assertEquals(35, v1.<Integer>value("age").intValue()); assertTrue(getId(prop) > 0); assertEquals(45, e3.<Integer>value("time").intValue()); assertEquals(5, e1.<Integer>value("time").intValue()); assertEquals(35, v1.<Integer>value("age").intValue());
PropertyKey uid = tx.getPropertyKey("uid"); assertEquals("name",name.name()); assertEquals("knows",knows.name()); assertEquals("person",person.name()); assertEquals("uid",uid.name()); e = getOnlyElement(u.query().direction(Direction.IN).labels("knows").edges()); assertEquals("juju",u.value("name")); assertEquals("edge",e.value("name")); tx.commit(); if (!cache || i==0) {
assertEquals(6.0,v.<Double>value("weight").doubleValue(),0.00001); VertexProperty p = getOnlyElement(v.properties("weight")); assertEquals(wintx,p.<Integer>value("sig").intValue()); p = getOnlyElement(v.properties("name")); assertEquals("Bob",p.value()); assertEquals(wintx,p.<Integer>value("sig").intValue()); p = getOnlyElement(v.properties("value")); assertEquals(wintx,e.<Integer>value("sig").intValue()); assertNotEquals(rs[6].longId(),getId(e)); assertEquals(wintx,e.<Integer>value("sig").intValue()); assertEquals(rs[7].longId(), getId(e)); e = getOnlyElement(v.query().direction(OUT).labels("o2m").edges()); assertEquals(wintx,e.<Integer>value("sig").intValue()); assertNotEquals(rs[8].longId(),getId(e)); e = getOnlyElement(v.query().direction(OUT).labels("em").edges()); assertEquals(wintx,e.<Integer>value("sig").intValue()); assertEquals(rs[4].longId(), getId(e)); for (Edge ee : v.query().direction(OUT).labels("emf").edges()) {
assertEquals(6.0, v.<Double>value("weight"),0.00001); VertexProperty p = getOnlyElement(v.properties("weight")); assertEquals(wintx,p.<Integer>value("sig").intValue()); p = getOnlyElement(v.properties("name")); assertEquals("Bob",p.value()); assertEquals(wintx,p.<Integer>value("sig").intValue()); p = getOnlyElement(v.properties("value")); assertEquals(wintx,e.<Integer>value("sig").intValue()); assertNotEquals(rs[6].longId(),getId(e)); assertEquals(wintx,e.<Integer>value("sig").intValue()); assertEquals(rs[7].longId(), getId(e)); e = Iterables.getOnlyElement(v.query().direction(OUT).labels("o2m").edges()); assertEquals(wintx,e.<Integer>value("sig").intValue()); assertNotEquals(rs[8].longId(),getId(e)); e = Iterables.getOnlyElement(v.query().direction(OUT).labels("em").edges()); assertEquals(wintx,e.<Integer>value("sig").intValue()); assertEquals(rs[4].longId(), getId(e)); for (Object o : v.query().direction(OUT).labels("emf").edges()) {
PropertyKey uid = tx.getPropertyKey("uid"); assertEquals("name",name.name()); assertEquals("knows",knows.name()); assertEquals("person",person.name()); assertEquals("uid",uid.name()); e = getOnlyElement(u.query().direction(Direction.IN).labels("knows").edges()); assertEquals("juju",u.value("name")); assertEquals("edge",e.value("name")); tx.commit(); if (!cache) {
private static void assertWeightLoosely(final double expected, final Edge e) { try { assertEquals(expected, e.value("weight"), 0.0001d); } catch (Exception ex) { // for graphs that have strong typing via schema it is possible that a value that came across as graphson // with lossiness will end up having a value expected to double to be coerced to float by the underlying // graph. logger.warn("Attempting to assert weight as float for {} - if your graph is strongly typed from schema this is likely expected", e); assertEquals(new Double(expected).floatValue(), e.value("weight"), 0.0001f); } }
RelationIdentifier eid = (RelationIdentifier) e.id(); assertEquals(v.id(), v.value(ID_NAME)); assertEquals(eid, e.value(ID_NAME)); assertEquals("knows", e.value(LABEL_NAME)); assertEquals(BaseVertexLabel.DEFAULT_VERTEXLABEL.name(), v.value(LABEL_NAME)); assertCount(1, v.query().direction(Direction.BOTH).labels("knows").has(ID_NAME, eid).edges());
private static void assertWeightLoosely(final float expected, final Edge e) { try { assertEquals(expected, e.value("weight"), 0.0001f); } catch (Exception ex) { // for graphs that have strong typing via schema it is possible that a value that came across as graphson // with lossiness will end up having a value expected to float to be coerced to double by the underlying // graph. logger.warn("Attempting to assert weight as double for {} - if your graph is strongly typed from schema this is likely expected", e); assertEquals(new Float(expected).doubleValue(), e.value("weight"), 0.0001d); } }
long e2id = getId(e2); e1 = Iterables.getOnlyElement(v1.query().direction(Direction.OUT).labels("connect").edges()); assertEquals("e1", e1.value("name")); assertEquals(e1id, getId(e1)); e2 = Iterables.getOnlyElement(v1.query().direction(Direction.OUT).labels("related").edges()); assertEquals("e2", e2.value("name")); assertEquals(e2id, getId(e2)); assertEquals("e1.2", e1.value("name")); assertEquals(e1id, getId(e1)); //should have same id e2 = Iterables.getOnlyElement(v1.query().direction(Direction.OUT).labels("related").edges()); assertEquals("e2.2", e2.value("name"));
RelationIdentifier eid = (RelationIdentifier) e.id(); assertEquals(v.id(), v.value(ID_NAME)); assertEquals(eid, e.value(ID_NAME)); assertEquals("knows", e.value(LABEL_NAME)); assertEquals(BaseVertexLabel.DEFAULT_VERTEXLABEL.name(), v.value(LABEL_NAME)); assertCount(1, v.query().direction(Direction.BOTH).labels("knows").has(ID_NAME, eid).edges());
long e2id = getId(e2); e1 = getOnlyElement(v1.query().direction(Direction.OUT).labels("connect").edges()); assertEquals("e1", e1.value("name")); assertEquals(e1id, getId(e1)); e2 = getOnlyElement(v1.query().direction(Direction.OUT).labels("related").edges()); assertEquals("e2", e2.value("name")); assertEquals(e2id, getId(e2)); assertEquals("e1.2", e1.value("name")); assertEquals(e1id, getId(e1)); //should have same id e2 = getOnlyElement(v1.query().direction(Direction.OUT).labels("related").edges()); assertEquals("e2.2", e2.value("name"));