public static GraphDatabaseService getGraphDatabaseService() { // if using an embedded config, return the db from the driver if (baseConfiguration.build().getURI().startsWith("file")) { if (driver != null) { return driver.unwrap(GraphDatabaseService.class); } else if (sessionFactory != null) { return sessionFactory.unwrap(GraphDatabaseService.class); } } // else (bolt, http), return just a test server (not really used except for indices ?) return testServer.getGraphDatabaseService(); }
@Test public void shouldCreateSessionFactoryWhenServerIsOffline() { Configuration configuration = configBuilder.build(); SessionFactory sessionFactory = new SessionFactory(configuration, User.class.getPackage().getName()); assertThat(sessionFactory.unwrap(Driver.class)).isNotNull(); }
@Test public void shouldUnwrapEmbeddedDriver() { assumeThat(driver).isInstanceOf(EmbeddedDriver.class); SessionFactory sessionFactory = new SessionFactory(driver, Bike.class.getPackage().getName()); // Neo4j-OGM Driver assertThat(sessionFactory.unwrap(EmbeddedDriver.class)) .isInstanceOf(EmbeddedDriver.class); // Underlying embedded instance assertThat(sessionFactory.unwrap(GraphDatabaseService.class)) .isInstanceOf(GraphDatabaseService.class); assertThatIllegalArgumentException() .isThrownBy(() -> sessionFactory.unwrap(BoltDriver.class)); assertThatIllegalArgumentException() .isThrownBy(() -> sessionFactory.unwrap(Driver.class)); assertThatIllegalArgumentException() .isThrownBy(() -> sessionFactory.unwrap(HttpDriver.class)); }
@Test public void shouldUnwrapBoltDriver() { assumeThat(driver).isInstanceOf(BoltDriver.class); SessionFactory sessionFactory = new SessionFactory(driver, Bike.class.getPackage().getName()); // Neo4j-OGM Driver assertThat(sessionFactory.unwrap(BoltDriver.class)) .isInstanceOf(BoltDriver.class); // Native driver assertThat(sessionFactory.unwrap(Driver.class)) .isInstanceOf(Driver.class); assertThatIllegalArgumentException() .isThrownBy(() -> sessionFactory.unwrap(EmbeddedDriver.class)); assertThatIllegalArgumentException() .isThrownBy(() -> sessionFactory.unwrap(GraphDatabaseService.class)); assertThatIllegalArgumentException() .isThrownBy(() -> sessionFactory.unwrap(HttpDriver.class)); }
@Test public void shouldUnwrapHttpDriver() { assumeThat(driver).isInstanceOf(HttpDriver.class); SessionFactory sessionFactory = new SessionFactory(driver, Bike.class.getPackage().getName()); // Neo4j-OGM Driver assertThat(sessionFactory.unwrap(HttpDriver.class)) .isInstanceOf(HttpDriver.class); assertThatIllegalArgumentException() .isThrownBy(() -> sessionFactory.unwrap(BoltDriver.class)); assertThatIllegalArgumentException() .isThrownBy(() -> sessionFactory.unwrap(Driver.class)); assertThatIllegalArgumentException() .isThrownBy(() -> sessionFactory.unwrap(EmbeddedDriver.class)); assertThatIllegalArgumentException() .isThrownBy(() -> sessionFactory.unwrap(GraphDatabaseService.class)); } }
@Test public void shouldLoadEmbeddedDriver() { Configuration driverConfiguration = new Configuration.Builder().uri(TMP_NEO4J_DB.toUri().toString()).build(); SessionFactory sf = new SessionFactory(driverConfiguration, "org.neo4j.ogm.domain.social.User"); Driver driver = sf.unwrap(Driver.class); assertThat(driver).isNotNull(); driver.close(); sf.close(); }
@Test public void shouldLoadHttpDriver() { Configuration driverConfiguration = new Configuration.Builder().uri("http://neo4j:password@localhost:7474") .build(); SessionFactory sf = new SessionFactory(driverConfiguration, "org.neo4j.ogm.domain.social.User"); Driver driver = sf.unwrap(Driver.class); assertThat(driver).isNotNull(); sf.close(); }
@Test public void loadLoadBoltDriver() { String uri = getBaseConfiguration().build().getURI(); Configuration driverConfiguration = new Configuration.Builder().uri(uri).build(); SessionFactory sf = new SessionFactory(driverConfiguration, "org.neo4j.ogm.domain.social.User"); Driver driver = sf.unwrap(Driver.class); assertThat(driver).isNotNull(); sf.close(); }