package com.tinkerpop.blueprints.impls.neo4j2;
import org.apache.commons.io.FileUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.neo4j.helpers.collection.IteratorUtil;
import org.neo4j.helpers.collection.MapUtil;
import java.io.File;
import java.util.Map;
import static org.junit.Assert.assertEquals;
/**
* @author mh
* @since 08.01.14
*/
public class Neo4j2GraphCypherTest {
private Neo4j2Graph graph;
@Before
public void setUp() throws Exception {
FileUtils.deleteDirectory(new File("target/test.db"));
graph = new Neo4j2Graph("target/test.db");
}
@Test
public void testVertexLabels() throws Exception {
Neo4j2Vertex vertex = graph.addVertex(null);
vertex.addLabel("Label");
vertex.setProperty("key","value");
queryAndAssert(vertex);
graph.commit();
graph.query("create index on :Label(key)",null);
queryAndAssert(vertex);
}
private void queryAndAssert(Neo4j2Vertex vertex) {
Map<String, Object> params = MapUtil.map("prop", "value");
Map<String,Object> row = IteratorUtil.single(graph.query("MATCH (n:Label {key:{prop}}) RETURN n", params));
assertEquals(vertex.getRawElement(), row.get("n"));
}
@After
public void tearDown() throws Exception {
graph.shutdown();
}
}