@PluginTarget( Relationship.class ) public Iterable<Node> methodOnRelationship( @Source Relationship rel ) { return Arrays.asList( rel.getNodes() ); }
private Runnable getNodesFromRelationship() { return () -> { relationship.getEndNode(); relationship.getStartNode(); relationship.getNodes(); relationship.getOtherNode( node ); }; }
@PluginTarget( Relationship.class ) public Iterable<Node> methodOnRelationship( @Source Relationship rel ) { try ( Transaction tx = rel.getGraphDatabase().beginTx() ) { List<Node> nodes = Arrays.asList( rel.getNodes() ); tx.success(); return nodes; } }
@Test public void getOtherNodeFunctionsCorrectly() { Node node = getGraphDb().createNode(); Relationship relationship = node.createRelationshipTo( node, TEST ); // This loop messes up the readability of the test case, but avoids duplicated // assertion code. Same assertions withing the transaction as after it has committed. for ( int i = 0; i < 2; i++ ) { assertEquals( node, relationship.getOtherNode( node ) ); assertEquals( asList( node, node ), asList( relationship.getNodes() ) ); try { relationship.getOtherNode( getGraphDb().createNode() ); fail( "Should throw exception if another node is passed into loop.getOtherNode" ); } catch ( NotFoundException e ) { // Good } newTransaction(); } }
@Test public void testDirectedRelationship1() { Node node1 = getGraphDb().getNodeById( node1Id ); Relationship rel = node1.getSingleRelationship( MyRelTypes.TEST, Direction.BOTH ); Node[] nodes = rel.getNodes(); assertEquals( 2, nodes.length ); Node node2 = getGraphDb().getNodeById( node2Id ); assertTrue( nodes[0].equals( node1 ) && nodes[1].equals( node2 ) ); assertEquals( node1, rel.getStartNode() ); assertEquals( node2, rel.getEndNode() ); Relationship[] relArray = getRelationshipArray( node1.getRelationships( MyRelTypes.TEST, Direction.OUTGOING ) ); assertEquals( 1, relArray.length ); assertEquals( rel, relArray[0] ); relArray = getRelationshipArray( node2.getRelationships( MyRelTypes.TEST, Direction.INCOMING ) ); assertEquals( 1, relArray.length ); assertEquals( rel, relArray[0] ); }
Relationship rel2 = node1.createRelationshipTo( node2, TEST ); Relationship rel3 = node2.createRelationshipTo( node1, TEST ); Node[] nodes = rel2.getNodes(); assertEquals( 2, nodes.length ); assertTrue( nodes[0].equals( node1 ) && nodes[1].equals( node2 ) ); nodes = rel3.getNodes(); assertEquals( 2, nodes.length ); assertTrue( nodes[0].equals( node2 ) && nodes[1].equals( node1 ) );
Node[] relNodes = rel.getNodes(); assertEquals( "A relationship should always be connected to exactly " + "two nodes", relNodes.length, 2 );
Node[] nodes = rel1.getNodes(); assertEquals( node1, nodes[0] ); assertEquals( node2, nodes[1] );