assertEquals( properties.get( key2 ), int2 ); assertEquals( properties.get( key3 ), string ); properties = rel1.getProperties( key1, key2 ); assertEquals( properties.get( key1 ), int1 ); assertEquals( properties.get( key2 ), int2 );
if (vRel == null) vRel = v1.createRelationshipTo(v2, rel.getType()); if (!relAggNames.isEmpty()) { aggregate(vRel, relAggNames, relAggKeys.length > 0 ? rel.getProperties(relAggKeys) : Collections.emptyMap());
private Map<String, Object> data(PropertyContainer pc, Map<String, Map<String, Object>> colors, String weightproperty, String[] exportproperties) { if (pc instanceof Node) { Node n = (Node) pc; String labels = Util.labelString(n); Map<String, Object> attributes = map("label", caption(n), "TYPE", labels); attributes.putAll(positions()); attributes.putAll(color(labels,colors)); if (exportproperties.length > 0) attributes.putAll(n.getProperties(exportproperties)); return map(idStr(n), attributes); } if (pc instanceof Relationship) { Relationship r = (Relationship) pc; String type = r.getType().name(); Map<String, Object> attributes = map("label", type, "TYPE", type); Double weight = Util.doubleValue(r,weightproperty,1.0); attributes.putAll(map("source", idStr(r.getStartNode()), "target", idStr(r.getEndNode()), "directed", true,"weight",weight)); attributes.putAll(color(type, colors)); if (exportproperties.length > 0) attributes.putAll(r.getProperties(exportproperties)); return map(String.valueOf(r.getId()), attributes); } return map(); }
@Override public Map<String, Object> getProperties( String... names ) { return actual.getProperties( names ); }
@Test public void testCombinePropertiesTargetArrayValueSourceArrayValuesDifferentTypeAndOneSameValue(){ long id = db.execute("Create (d:Person {name:'Daniele'})\n" + "Create (p:Country {name:'USA'})\n" + "Create (d)-[:TRAVELS_TO {year:[\"1995\",\"2014\"], reason:\"work\"}]->(p)\n" + "Create (d)-[:GOES_TO {year:[2010,2015], reason:\"fun\"}]->(p)\n" + "Create (d)-[:FLIGHTS_TO {company:\"Air America\"}]->(p) RETURN id(p) as id ").<Long>columnAs("id").next(); testCall(db, QUERY , (r) -> { Relationship rel1 = (Relationship) r.get("rel1"); Relationship rel2 = (Relationship) r.get("rel2"); PropertiesManager.mergeProperties(rel2.getProperties("year"), rel1, new RefactorConfig(map("properties","combine"))); assertEquals(asList("1995","2014","2010","2015").toArray(), new ArrayBackedList(rel1.getProperty("year")).toArray()); }); }
@Test public void testCombinePropertiesTargetSingleValueSourceArrayValuesDifferentType(){ long id = db.execute("Create (d:Person {name:'Daniele'})\n" + "Create (p:Country {name:'USA'})\n" + "Create (d)-[:TRAVELS_TO {year:1995, reason:\"work\"}]->(p)\n" + "Create (d)-[:GOES_TO {year:[\"2010\",\"2015\"], reason:\"fun\"}]->(p)\n" + "Create (d)-[:FLIGHTS_TO {company:\"Air America\"}]->(p) RETURN id(p) as id ").<Long>columnAs("id").next(); testCall(db, QUERY , (r) -> { Relationship rel1 = (Relationship) r.get("rel1"); Relationship rel2 = (Relationship) r.get("rel2"); PropertiesManager.mergeProperties(rel2.getProperties("year"), rel1, new RefactorConfig(map("properties","combine"))); assertEquals(asList("1995","2010", "2015").toArray(), new ArrayBackedList(rel1.getProperty("year")).toArray()); }); }
@Test public void testCombinePropertiesTargetArrayValuesSourceSingleValuesSameType(){ long id = db.execute("Create (d:Person {name:'Daniele'})\n" + "Create (p:Country {name:'USA'})\n" + "Create (d)-[:TRAVELS_TO {year:[2010,2015], reason:\"work\"}]->(p)\n" + "Create (d)-[:GOES_TO {year:1995, reason:\"fun\"}]->(p)\n" + "Create (d)-[:FLIGHTS_TO {company:\"Air America\"}]->(p) RETURN id(p) as id ").<Long>columnAs("id").next(); testCall(db, QUERY , (r) -> { Relationship rel1 = (Relationship) r.get("rel1"); Relationship rel2 = (Relationship) r.get("rel2"); PropertiesManager.mergeProperties(rel2.getProperties("year"), rel1, new RefactorConfig(map("properties","combine"))); assertEquals(asList(2010L, 2015L,1995L).toArray(), new ArrayBackedList(rel1.getProperty("year")).toArray()); }); }
@Test public void testCombinePropertiesTargetArrayValueSourceArrayValuesSameTypeOneSameValue(){ long id = db.execute("Create (d:Person {name:'Daniele'})\n" + "Create (p:Country {name:'USA'})\n" + "Create (d)-[:TRAVELS_TO {year:[1995,2014], reason:\"work\"}]->(p)\n" + "Create (d)-[:GOES_TO {year:[2010,2014], reason:\"fun\"}]->(p)\n" + "Create (d)-[:FLIGHTS_TO {company:\"Air America\"}]->(p) RETURN id(p) as id ").<Long>columnAs("id").next(); testCall(db, QUERY , (r) -> { Relationship rel1 = (Relationship) r.get("rel1"); Relationship rel2 = (Relationship) r.get("rel2"); PropertiesManager.mergeProperties(rel2.getProperties("year"), rel1, new RefactorConfig(map("properties","combine"))); assertEquals(asList(1995L,2014L,2010L).toArray(), new ArrayBackedList(rel1.getProperty("year")).toArray()); }); }
@Test public void testCombinePropertiesTargetSingleValueSourceArrayValuesSameType(){ long id = db.execute("Create (d:Person {name:'Daniele'})\n" + "Create (p:Country {name:'USA'})\n" + "Create (d)-[:TRAVELS_TO {year:1995, reason:\"work\"}]->(p)\n" + "Create (d)-[:GOES_TO {year:[2010,2015], reason:\"fun\"}]->(p)\n" + "Create (d)-[:FLIGHTS_TO {company:\"Air America\"}]->(p) RETURN id(p) as id ").<Long>columnAs("id").next(); testCall(db, QUERY , (r) -> { Relationship rel1 = (Relationship) r.get("rel1"); Relationship rel2 = (Relationship) r.get("rel2"); PropertiesManager.mergeProperties(rel2.getProperties("year"), rel1, new RefactorConfig(map("properties","combine"))); assertEquals(asList(1995L,2010L, 2015L).toArray(), new ArrayBackedList(rel1.getProperty("year")).toArray()); }); }
@Test public void testCombinePropertiesTargetArrayValueSourceArrayValuesSameType(){ long id = db.execute("Create (d:Person {name:'Daniele'})\n" + "Create (p:Country {name:'USA'})\n" + "Create (d)-[:TRAVELS_TO {year:[1995,2014], reason:\"work\"}]->(p)\n" + "Create (d)-[:GOES_TO {year:[2010,2015], reason:\"fun\"}]->(p)\n" + "Create (d)-[:FLIGHTS_TO {company:\"Air America\"}]->(p) RETURN id(p) as id ").<Long>columnAs("id").next(); testCall(db, QUERY , (r) -> { Relationship rel1 = (Relationship) r.get("rel1"); Relationship rel2 = (Relationship) r.get("rel2"); PropertiesManager.mergeProperties(rel2.getProperties("year"), rel1, new RefactorConfig(map("properties","combine"))); assertEquals(asList(1995L,2014L,2010L, 2015L).toArray(), new ArrayBackedList(rel1.getProperty("year")).toArray()); }); }
@Test public void testCombinePropertiesTargetArrayValuesSourceSingleValuesDifferentType(){ long id = db.execute("Create (d:Person {name:'Daniele'})\n" + "Create (p:Country {name:'USA'})\n" + "Create (d)-[:TRAVELS_TO {year:[2010,2015], reason:\"work\"}]->(p)\n" + "Create (d)-[:GOES_TO {year:\"1995\", reason:\"fun\"}]->(p)\n" + "Create (d)-[:FLIGHTS_TO {company:\"Air America\"}]->(p) RETURN id(p) as id ").<Long>columnAs("id").next(); testCall(db, QUERY , (r) -> { Relationship rel1 = (Relationship) r.get("rel1"); Relationship rel2 = (Relationship) r.get("rel2"); PropertiesManager.mergeProperties(rel2.getProperties("year"), rel1, new RefactorConfig(map("properties","combine"))); assertEquals(asList("2010", "2015","1995").toArray(), new ArrayBackedList(rel1.getProperty("year")).toArray()); }); }
@Test public void testCombinePropertiesTargetSingleValueSourceSingleValuesSameTypeAndSameValue(){ long id = db.execute("Create (d:Person {name:'Daniele'})\n" + "Create (p:Country {name:'USA'})\n" + "Create (d)-[:TRAVELS_TO {year:1996, reason:\"work\"}]->(p)\n" + "Create (d)-[:GOES_TO {year:1996, reason:\"fun\"}]->(p)\n" + "Create (d)-[:FLIGHTS_TO {company:\"Air America\"}]->(p) RETURN id(p) as id ").<Long>columnAs("id").next(); testCall(db, QUERY , (r) -> { Relationship rel1 = (Relationship) r.get("rel1"); Relationship rel2 = (Relationship) r.get("rel2"); PropertiesManager.mergeProperties(rel2.getProperties("year"), rel1, new RefactorConfig(map("properties","combine"))); assertEquals(1996L, rel1.getProperty("year")); }); }