2016-11-06 13 views
1

我已经开始为neo4j使用GraphAware timetree,到目前为止它的工作非常好。现在我正在尝试解决如何使用neo4j timetree对我的代码进行单元/集成测试。使用GraphAware Timetree进行测试

我已经把一些代码如下......但我依然得到消息:在正确的轨道上我有点

org.neo4j.ogm.exception.CypherException: Error executing Cypher "Neo.ClientError.Procedure.ProcedureNotFound"; Code: Neo.ClientError.Procedure.ProcedureNotFound; Description: There is no procedure with the name `ga.timetree.events.attach` registered for this database instance. Please ensure you've spelled the procedure name correctly and that the procedure is properly deployed. 

是谁?

package myproject.core; 

import java.util.ArrayList; 
import java.util.HashMap; 

import javax.inject.Inject; 

import org.junit.After; 
import org.junit.runner.RunWith; 
import org.neo4j.graphdb.DynamicLabel; 
import org.neo4j.graphdb.GraphDatabaseService; 
import org.neo4j.graphdb.Node; 
import org.neo4j.ogm.session.Session; 
import org.neo4j.ogm.session.SessionFactory; 
import org.neo4j.ogm.testutil.MultiDriverTestClass; 
import org.springframework.boot.test.context.SpringBootTest; 
import org.springframework.data.neo4j.template.Neo4jOperations; 
import org.springframework.test.context.junit4.SpringRunner; 

import com.graphaware.common.policy.NodeInclusionPolicy; 
import com.graphaware.module.timetree.module.TimeTreeConfiguration; 
import com.graphaware.module.timetree.module.TimeTreeModule; 
import com.graphaware.runtime.GraphAwareRuntime; 
import com.graphaware.runtime.GraphAwareRuntimeFactory; 

import myproject.core.context.TestPersistenceContext; 

@RunWith(SpringRunner.class) 
@SpringBootTest(classes = TestPersistenceContext.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 
public class AbstractTest extends MultiDriverTestClass { 

    @Inject 
    private Neo4jOperations neo4jOperations; 

    public AbstractTest() { 
     new SessionFactory("myproject.model.pojos").openSession(); 

     TimeTreeConfiguration timeTreeConfiguration = TimeTreeConfiguration.defaultConfiguration(); 
     TimeTreeModule timeTreeModule = new TimeTreeModule("TT.1", timeTreeConfiguration, super.getGraphDatabaseService()); 

     GraphAwareRuntime runtime = GraphAwareRuntimeFactory.createRuntime(super.getGraphDatabaseService()); 
     runtime.registerModule(timeTreeModule); 
     runtime.start(); 
    } 

    @After 
    public void clearDatabase() { 
     neo4jOperations.query("match (n) detach delete n;", new HashMap<>()); 
     neo4jOperations.clear(); 

    } 

} 

回答

3

请改变你的AbstractTest()构造函数如下:

public AbstractTest() { 
    new SessionFactory("myproject.model.pojos").openSession(); 

    TimeTreeConfiguration timeTreeConfiguration = TimeTreeConfiguration.defaultConfiguration(); 
    TimeTreeModule timeTreeModule = new TimeTreeModule("TT.1", timeTreeConfiguration, super.getGraphDatabaseService()); 

    TimeTreeProcedures.register(super.getGraphDatabaseService()); 

    GraphAwareRuntime runtime = GraphAwareRuntimeFactory.createRuntime(super.getGraphDatabaseService()); 
    runtime.registerModule(timeTreeModule); 
    runtime.start(); 
} 

注意添加一行:TimeTreeProcedures.register(super.getGraphDatabaseService());

+0

就像一个魅力!谢谢! –