1   package net.obsearch.index.knngraph;
2   
3   import static org.junit.Assert.*;
4   
5   import java.io.File;
6   import java.io.IOException;
7   
8   import net.obsearch.index.utils.Directory;
9   import net.obsearch.index.utils.TUtils;
10  
11  import org.junit.Test;
12  import org.neo4j.api.core.Direction;
13  import org.neo4j.api.core.EmbeddedNeo;
14  import org.neo4j.api.core.NeoService;
15  import org.neo4j.api.core.Node;
16  import org.neo4j.api.core.RelationshipType;
17  import org.neo4j.api.core.ReturnableEvaluator;
18  import org.neo4j.api.core.StopEvaluator;
19  import org.neo4j.api.core.Transaction;
20  import org.neo4j.api.core.Traverser;
21  
22  import cern.colt.Arrays;
23  
24  
25  public class TestNeo {
26  	
27  	public enum Types implements RelationshipType {
28          KNOWS
29      }
30  
31  	
32  	@Test
33  	public void testBasic() throws IOException{
34  		File dir = new File( TUtils.getTestProperties().getProperty(
35  		        "test.neo.location"));
36  		Directory.deleteDirectory(dir);
37          assertTrue(!dir.exists());
38          assertTrue(dir.mkdirs());
39  		NeoService neo = new EmbeddedNeo( dir.getAbsolutePath()) ;
40  		
41  		Transaction tx = neo.beginTx();
42  
43  		
44  		try
45  		{
46  			
47  			Node n = neo.createNode();
48  			n.setProperty("name", "n");
49  			n.setProperty("smap", new byte[]{1,2,3});
50  			Node n2 = neo.createNode();
51  			n2.setProperty("name", "n2");
52  			n2.setProperty("smap", new byte[]{4,5,6});
53  
54  			n.createRelationshipTo(n2, Types.KNOWS);
55  			n2.createRelationshipTo(n, Types.KNOWS);
56  			
57  			
58  			
59  		    tx.success();
60  		    
61  		    Traverser nodes = n.traverse(
62  		    		   Traverser.Order.BREADTH_FIRST,
63  		    		   StopEvaluator.END_OF_GRAPH,
64  		    		   ReturnableEvaluator.ALL,
65  		    		   Types.KNOWS,
66  		    		   Direction.OUTGOING );
67  		    
68  		    for(Node k : nodes){
69  		    	if(k.hasProperty("name")){
70  		    		System.out.println(k.getProperty("name"));
71  		    		System.out.println(Arrays.toString((byte[])k.getProperty("smap")));
72  		    	}
73  		    }
74  
75  		}
76  		finally
77  		{
78  		   tx.finish();
79  		   neo.shutdown();
80  		}
81  
82  
83  	}
84  
85  }