package com.lordofthejars.nosqlunit.neo4j; import static org.junit.Assert.assertThat; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.mockito.Mockito.mock; import static com.lordofthejars.nosqlunit.neo4j.EmbeddedNeoServerConfigurationBuilder.newEmbeddedNeoServerConfiguration; import static com.lordofthejars.nosqlunit.neo4j.ManagedNeoServerConfigurationBuilder.newManagedNeoServerConfiguration; import org.junit.Test; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.rest.graphdb.RestGraphDatabase; public class WhenNeoServerConfigurationIsRequired { @Test public void in_memory_configuration_should_use_default_embedded_instance() { GraphDatabaseService graphDatabaseService = mock(GraphDatabaseService.class); EmbeddedNeo4jInstances.getInstance().addGraphDatabaseService(graphDatabaseService, "a"); EmbeddedNeoServerConfigurationBuilder embeddedNeoServerConfiguration = newEmbeddedNeoServerConfiguration(); Neo4jConfiguration embeddedConfiguration = embeddedNeoServerConfiguration.build(); EmbeddedNeo4jInstances.getInstance().removeGraphDatabaseService("a"); assertThat(embeddedConfiguration.getGraphDatabaseService(), is(graphDatabaseService)); } @Test(expected=IllegalStateException.class) public void in_memory_configuration_should_throw_an_exception_if_no_default_embedded() { EmbeddedNeoServerConfigurationBuilder embeddedNeoServerConfiguration = newEmbeddedNeoServerConfiguration(); Neo4jConfiguration embeddedConfiguration = embeddedNeoServerConfiguration.build(); } @Test public void in_memory_configuration_should_use_targeted_instance() { GraphDatabaseService graphDatabaseService1 = mock(GraphDatabaseService.class); GraphDatabaseService graphDatabaseService2 = mock(GraphDatabaseService.class); EmbeddedNeo4jInstances.getInstance().addGraphDatabaseService(graphDatabaseService1, "a"); EmbeddedNeo4jInstances.getInstance().addGraphDatabaseService(graphDatabaseService2, "b"); EmbeddedNeoServerConfigurationBuilder embeddedNeoServerConfiguration = newEmbeddedNeoServerConfiguration(); Neo4jConfiguration embeddedConfiguration = embeddedNeoServerConfiguration.buildFromTargetPath("b"); EmbeddedNeo4jInstances.getInstance().removeGraphDatabaseService("a"); EmbeddedNeo4jInstances.getInstance().removeGraphDatabaseService("b"); assertThat(embeddedConfiguration.getGraphDatabaseService(), is(graphDatabaseService2)); } @Test(expected=IllegalStateException.class) public void in_memory_configuration_should_throw_an_exception_if_no_targeted_instance() { EmbeddedNeoServerConfigurationBuilder embeddedNeoServerConfiguration = newEmbeddedNeoServerConfiguration(); Neo4jConfiguration embeddedConfiguration = embeddedNeoServerConfiguration.buildFromTargetPath("a"); } @Test public void managed_configuration_should_create_a_rest_connection() { Neo4jConfiguration managedNeoServer = newManagedNeoServerConfiguration().password("alex").username("alex").uri("http://localhost").build(); assertThat(managedNeoServer.getUserName(), is("alex")); assertThat(managedNeoServer.getPassword(), is("alex")); assertThat(managedNeoServer.getUri(), is("http://localhost")); assertThat(managedNeoServer.getGraphDatabaseService(), instanceOf(RestGraphDatabase.class)); } @Test public void managed_configuration_should_create_a_rest_connection_with_default_uri() { Neo4jConfiguration managedNeoServer = newManagedNeoServerConfiguration().password("alex").username("alex").build(); assertThat(managedNeoServer.getUserName(), is("alex")); assertThat(managedNeoServer.getPassword(), is("alex")); assertThat(managedNeoServer.getUri(), is(Neo4jConfiguration.DEFAULT_URI)); assertThat(managedNeoServer.getGraphDatabaseService(), instanceOf(RestGraphDatabase.class)); } }