package org.neo4j.jdbc; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.jdbc.embedded.EmbeddedDatabases; import org.neo4j.kernel.EmbeddedGraphDatabase; import org.neo4j.kernel.EmbeddedReadOnlyGraphDatabase; import org.neo4j.kernel.impl.util.FileUtils; import org.neo4j.test.ImpermanentGraphDatabase; import java.io.File; import java.util.Properties; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; /** * @author mh * @since 15.06.12 */ public class DatabasesTest { private EmbeddedDatabases databases; @Before public void setUp() throws Exception { databases = new EmbeddedDatabases(); } @Test public void testLocateMem() throws Exception { assertTrue(databases.createDatabase(":mem",null) instanceof ImpermanentGraphDatabase); } @Test public void testLocateNamedMem() throws Exception { final GraphDatabaseService db = databases.createDatabase(":mem:a", null); assertTrue(db instanceof ImpermanentGraphDatabase); final GraphDatabaseService db2 = databases.createDatabase(":mem:a", null); assertSame(db2, db); } @Test public void testLocateNamedInstance() throws Exception { final GraphDatabaseService db = new ImpermanentGraphDatabase(); final Properties props = new Properties(); props.put("a", db); final GraphDatabaseService db2 = databases.createDatabase(":instance:a", props); assertSame(db2, db); } @Test public void testLocateFileDb() throws Exception { FileUtils.deleteRecursively(new File("target/test-db")); final GraphDatabaseService db = databases.createDatabase(":file:target/test-db", null); assertTrue(db instanceof EmbeddedGraphDatabase); final GraphDatabaseService db2 = databases.createDatabase(":file:target/test-db", null); assertSame(db2,db); } @Test @Ignore("readonly mode in parallel is no longer supported") public void testLocateFileDbReadonly() throws Exception { FileUtils.deleteRecursively(new File("target/test-db-ro")); new EmbeddedGraphDatabase("target/test-db-ro"); final Properties props = new Properties();props.setProperty("readonly", "true"); final GraphDatabaseService db = databases.createDatabase(":file:target/test-db-ro", props); assertTrue(db instanceof EmbeddedReadOnlyGraphDatabase); } }