package org.neo4j.kernel.impl.traversal; import static org.junit.Assert.assertFalse; import org.junit.BeforeClass; import org.junit.Test; import org.neo4j.graphdb.Path; import org.neo4j.graphdb.traversal.TraversalDescription; import org.neo4j.graphdb.traversal.Traverser; import org.neo4j.graphdb.traversal.Uniqueness; public class SmallestGraphEverTest extends AbstractTestBase { @BeforeClass public static void setup() { createGraph( "1 TO 2" ); } @Test public void testUnrestrictedTraversalCanFinishDepthFirst() throws Exception { execute( new TraversalDescriptionImpl().depthFirst(), Uniqueness.NONE ); } @Test public void testUnrestrictedTraversalCanFinishBreadthFirst() throws Exception { execute( new TraversalDescriptionImpl().breadthFirst(), Uniqueness.NONE ); } @Test public void testNodeGlobalTraversalCanFinishDepthFirst() throws Exception { execute( new TraversalDescriptionImpl().depthFirst(), Uniqueness.NODE_GLOBAL ); } @Test public void testNodeGlobalTraversalCanFinishBreadthFirst() throws Exception { execute( new TraversalDescriptionImpl().breadthFirst(), Uniqueness.NODE_GLOBAL ); } @Test public void testRelationshipGlobalTraversalCanFinishDepthFirst() throws Exception { execute( new TraversalDescriptionImpl().depthFirst(), Uniqueness.RELATIONSHIP_GLOBAL ); } @Test public void testRelationshipGlobalTraversalCanFinishBreadthFirst() throws Exception { execute( new TraversalDescriptionImpl().breadthFirst(), Uniqueness.RELATIONSHIP_GLOBAL ); } @Test public void testNodePathTraversalCanFinishDepthFirst() throws Exception { execute( new TraversalDescriptionImpl().depthFirst(), Uniqueness.NODE_PATH ); } @Test public void testNodePathTraversalCanFinishBreadthFirst() throws Exception { execute( new TraversalDescriptionImpl().breadthFirst(), Uniqueness.NODE_PATH ); } @Test public void testRelationshipPathTraversalCanFinishDepthFirst() throws Exception { execute( new TraversalDescriptionImpl().depthFirst(), Uniqueness.RELATIONSHIP_PATH ); } @Test public void testRelationshipPathTraversalCanFinishBreadthFirst() throws Exception { execute( new TraversalDescriptionImpl().breadthFirst(), Uniqueness.RELATIONSHIP_PATH ); } @Test public void testNodeRecentTraversalCanFinishDepthFirst() throws Exception { execute( new TraversalDescriptionImpl().depthFirst(), Uniqueness.NODE_RECENT ); } @Test public void testNodeRecentTraversalCanFinishBreadthFirst() throws Exception { execute( new TraversalDescriptionImpl().breadthFirst(), Uniqueness.NODE_RECENT ); } @Test public void testRelationshipRecentTraversalCanFinishDepthFirst() throws Exception { execute( new TraversalDescriptionImpl().depthFirst(), Uniqueness.RELATIONSHIP_RECENT ); } @Test public void testRelationshipRecentTraversalCanFinishBreadthFirst() throws Exception { execute( new TraversalDescriptionImpl().breadthFirst(), Uniqueness.RELATIONSHIP_RECENT ); } private void execute( TraversalDescription traversal, Uniqueness uniqueness ) { Traverser traverser = traversal.uniqueness( uniqueness ).traverse( referenceNode() ); int count = 0; for ( Path position : traverser ) { count++; } assertFalse( "empty traversal", count == 0 ); } }