package com.buschmais.xo.neo4j.test; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; import org.junit.ClassRule; import org.neo4j.harness.junit.Neo4jRule; import com.buschmais.xo.api.ConcurrencyMode; import com.buschmais.xo.api.Transaction; import com.buschmais.xo.api.ValidationMode; import com.buschmais.xo.api.XOManager; import com.buschmais.xo.api.bootstrap.XOUnit; import com.buschmais.xo.test.AbstractXOManagerTest; public abstract class AbstractNeo4jXOManagerTest extends AbstractXOManagerTest { // This rule starts a Neo4j instance @ClassRule public static Neo4jRule neo4j = new Neo4jRule(); protected AbstractNeo4jXOManagerTest(XOUnit xoUnit) { super(xoUnit); } protected static Collection<Object[]> xoUnits(Class<?>... types) { return xoUnits(Arrays.asList(Neo4jDatabase.MEMORY, Neo4jDatabase.BOLT), Arrays.asList(types), Collections.emptyList(), ValidationMode.AUTO, ConcurrencyMode.SINGLETHREADED, Transaction.TransactionAttribute.NONE); } protected static Collection<Object[]> xoUnits(List<? extends Class<?>> types, List<? extends Class<?>> instanceListeners, ValidationMode validationMode, ConcurrencyMode concurrencyMode, Transaction.TransactionAttribute transactionAttribute) { return xoUnits(Arrays.asList(Neo4jDatabase.MEMORY, Neo4jDatabase.BOLT), types, instanceListeners, validationMode, concurrencyMode, transactionAttribute); } protected void dropDatabase() { XOManager manager = getXoManager(); manager.currentTransaction().begin(); manager.createQuery("MATCH (n) DETACH DELETE n").execute(); manager.currentTransaction().commit(); } }