public static RelationshipValue[] relationships( long... ids ) { return Arrays.stream( ids ) .mapToObj( id -> relationshipValue( id, node( 0L ), node( 1L ), stringValue( "T" ), emptyMap() ) ) .toArray( RelationshipValue[]::new ); } }
public static RelationshipValue rel( long id, long start, long end ) { return relationshipValue( id, node( start ), node( end ), stringValue( "T" ), emptyMap() ); }
@Test public void shouldHandlePaths() { // Given NodeValue n1 = nodeValue( 42L, stringArray( "L" ), EMPTY_MAP ); NodeValue n2 = nodeValue( 43L, stringArray( "L" ), EMPTY_MAP ); PathValue p = path( new NodeValue[]{n1, n2}, new RelationshipValue[]{relationshipValue( 1L, n1, n2, stringValue( "T" ), EMPTY_MAP )} ); // When p.writeTo( converter ); // Then Object value = converter.value(); assertThat( value, instanceOf( Path.class ) ); Path path = (Path) value; assertThat( path.length(), equalTo( 1 ) ); assertThat( path.startNode().getId(), equalTo( 42L ) ); assertThat( path.endNode().getId(), equalTo( 43L ) ); assertThat( path.relationships().iterator().next().getId(), equalTo( 1L ) ); }
@Test public void shouldSerializeRelationship() throws Throwable { RelationshipValue rel = relationshipValue( 12L, nodeValue( 1L, stringArray(), VirtualValues.EMPTY_MAP ), nodeValue( 2L, stringArray(), VirtualValues.EMPTY_MAP ), stringValue( "KNOWS" ), map( new String[]{"name", "age"}, new AnyValue[]{stringValue( "Bob" ), intValue( 14 )} ) ); assertThat( serialized( rel ), equalTo( "B1 71 91 B5 52 0C 01 02 85 4B 4E 4F 57 53 A2 84" + lineSeparator() + "6E 61 6D 65 83 42 6F 62 83 61 67 65 0E" ) ); }
@Test public void shouldSerializeRelationship() throws Throwable { RelationshipValue rel = relationshipValue( 12L, nodeValue( 1L, stringArray(), VirtualValues.EMPTY_MAP ), nodeValue( 2L, stringArray(), VirtualValues.EMPTY_MAP ), stringValue( "KNOWS" ), VirtualValues.map( new String[]{"name", "age"}, new AnyValue[]{stringValue( "Bob" ), intValue( 14 )} ) ); assertThat( serialized( rel ), equalTo( "B1 71 91 B5 52 0C 01 02 85 4B 4E 4F 57 53 A2 84" + lineSeparator() + "6E 61 6D 65 83 42 6F 62 83 61 67 65 0E" ) ); }
@Test public void shouldHandleRelationships() { // Given RelationshipValue relValue = relationshipValue( 1L, nodeValue( 42L, stringArray( "L" ), EMPTY_MAP ), nodeValue( 42L, stringArray( "L" ), EMPTY_MAP ), stringValue( "R" ), EMPTY_MAP ); // When relValue.writeTo( converter ); // Then assertThat( converter.value(), equalTo( VirtualValues.relationship( 1L ) ) ); }
private static RelationshipValue newRelationshipValue() { NodeValue startNode = nodeValue( 24, stringArray( "Person" ), EMPTY_MAP ); NodeValue endNode = nodeValue( 42, stringArray( "Person" ), EMPTY_MAP ); return relationshipValue( 42, startNode, endNode, stringValue( "KNOWS" ), EMPTY_MAP ); } }
@Test void shouldHandleEdgeValueWithoutProperties() { NodeValue startNode = VirtualValues.nodeValue( 1L, Values.stringArray( "L" ), EMPTY_MAP ); NodeValue endNode = VirtualValues.nodeValue( 2L, Values.stringArray( "L" ), EMPTY_MAP ); RelationshipValue rel = VirtualValues.relationshipValue( 42L, startNode, endNode, stringValue( "R" ), EMPTY_MAP ); PrettyPrinter printer = new PrettyPrinter(); // When rel.writeTo( printer ); // Then assertThat( printer.value(), equalTo( "-[id=42 :R]-" ) ); }
@Test void shouldHandlePaths() { // Given NodeValue startNode = VirtualValues.nodeValue( 1L, Values.stringArray( "L" ), EMPTY_MAP ); NodeValue endNode = VirtualValues.nodeValue( 2L, Values.stringArray( "L" ), EMPTY_MAP ); RelationshipValue rel = VirtualValues.relationshipValue( 42L, startNode, endNode, stringValue( "R" ), EMPTY_MAP ); PathValue path = VirtualValues.path( new NodeValue[]{startNode, endNode}, new RelationshipValue[]{rel} ); PrettyPrinter printer = new PrettyPrinter(); // When path.writeTo( printer ); // Then assertThat( printer.value(), equalTo( "(id=1 :L)-[id=42 :R]->(id=2 :L)" ) ); }
@Test public void shouldMapDirectRelationship() { // Given Node start, end; Relationship relationship; try ( Transaction tx = db.beginTx() ) { start = db.createNode(); end = db.createNode(); relationship = start.createRelationshipTo( end, RelationshipType.withName( "R" ) ); tx.success(); } RelationshipValue relationshipValue = VirtualValues.relationshipValue( relationship.getId(), nodeValue( start.getId(), Values.EMPTY_TEXT_ARRAY, EMPTY_MAP ), nodeValue( start.getId(), Values.EMPTY_TEXT_ARRAY, EMPTY_MAP ), stringValue( "R" ), EMPTY_MAP ); // When Relationship coreAPIRelationship = mapper.mapRelationship( relationshipValue ); // Then try ( Transaction ignore = db.beginTx() ) { assertThat( coreAPIRelationship.getId(), equalTo( relationship.getId() ) ); assertThat( coreAPIRelationship.getStartNode(), equalTo( start ) ); assertThat( coreAPIRelationship.getEndNode(), equalTo( end ) ); } }
@Test void shouldHandleEdgeValue() { // Given NodeValue startNode = VirtualValues.nodeValue( 1L, Values.stringArray( "L" ), EMPTY_MAP ); NodeValue endNode = VirtualValues.nodeValue( 2L, Values.stringArray( "L" ), EMPTY_MAP ); RelationshipValue rel = VirtualValues.relationshipValue( 42L, startNode, endNode, stringValue( "R" ), props( "foo", intValue( 42 ), "bar", list( intValue( 1337 ), stringValue( "baz" ) ) ) ); PrettyPrinter printer = new PrettyPrinter(); // When rel.writeTo( printer ); // Then assertThat( printer.value(), equalTo( "-[id=42 :R {bar: [1337, \"baz\"], foo: 42}]-" ) ); }
NodeValue node2 = nodeValue( 2, stringArray(), emptyMap() ); NodeValue node3 = nodeValue( 3, stringArray(), emptyMap() ); RelationshipValue relationship1 = relationshipValue( 100, node1, node2, stringValue( "ONE" ), emptyMap() ); RelationshipValue relationship2 = relationshipValue( 200, node2, node2, stringValue( "TWO" ), emptyMap() ); return Stream.of( node1,
nodeValue( 40L, stringArray( "L" ), emptyMap() )}, new RelationshipValue[]{ relationshipValue( 100L, nodeValue( 40L, stringArray( "L" ), emptyMap() ), nodeValue( 20L, stringArray( "L" ), emptyMap() ), stringValue( "T" ), emptyMap() )} ), nodeValue( 40L, stringArray( "L" ), emptyMap() )}, new RelationshipValue[]{ relationshipValue( 100L, nodeValue( 40L, stringArray( "L" ), emptyMap() ), nodeValue( 20L, stringArray( "L" ), emptyMap() ), stringValue( "T" ), emptyMap() )} ) ), shouldWrite( relationshipValue( 1337L, nodeValue( 42L, stringArray( "L" ), emptyMap() ), nodeValue( 43L, stringArray( "L" ), emptyMap() ), stringValue( "T" ),