diff --git a/persistence-modules/spring-data-neo4j/pom.xml b/persistence-modules/spring-data-neo4j/pom.xml
index 705fe35d3c..a2fa29e753 100644
--- a/persistence-modules/spring-data-neo4j/pom.xml
+++ b/persistence-modules/spring-data-neo4j/pom.xml
@@ -105,6 +105,18 @@
+
+ org.neo4j.test
+ neo4j-harness
+ 5.5.0
+ test
+
+
+ org.slf4j
+ slf4j-nop
+
+
+
diff --git a/persistence-modules/spring-data-neo4j/src/test/java/com/baeldung/spring/data/neo4j/MovieRepositoryIntegrationTest.java b/persistence-modules/spring-data-neo4j/src/test/java/com/baeldung/spring/data/neo4j/MovieRepositoryIntegrationTest.java
index f91fa2303c..1878eb12b6 100644
--- a/persistence-modules/spring-data-neo4j/src/test/java/com/baeldung/spring/data/neo4j/MovieRepositoryIntegrationTest.java
+++ b/persistence-modules/spring-data-neo4j/src/test/java/com/baeldung/spring/data/neo4j/MovieRepositoryIntegrationTest.java
@@ -1,5 +1,9 @@
package com.baeldung.spring.data.neo4j;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
import com.baeldung.spring.data.neo4j.config.MovieDatabaseNeo4jTestConfiguration;
import com.baeldung.spring.data.neo4j.domain.Movie;
import com.baeldung.spring.data.neo4j.domain.Person;
@@ -7,37 +11,44 @@ import com.baeldung.spring.data.neo4j.domain.Role;
import com.baeldung.spring.data.neo4j.repository.MovieRepository;
import com.baeldung.spring.data.neo4j.repository.PersonRepository;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.neo4j.harness.Neo4j;
+import org.neo4j.harness.Neo4jBuilders;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.data.neo4j.DataNeo4jTest;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.DynamicPropertyRegistry;
+import org.springframework.test.context.DynamicPropertySource;
import java.util.*;
-import static junit.framework.TestCase.assertNull;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MovieDatabaseNeo4jTestConfiguration.class)
@ActiveProfiles(profiles = "test")
-public class MovieRepositoryIntegrationTest {
+@DataNeo4jTest
+class MovieRepositoryIntegrationTest {
@Autowired
- private MovieRepository movieRepository;
+ private static MovieRepository movieRepository;
@Autowired
- private PersonRepository personRepository;
+ private static PersonRepository personRepository;
public MovieRepositoryIntegrationTest() {
}
- @Before
- public void initializeDatabase() {
+ private static Neo4j embeddedDatabaseServer;
+
+ @BeforeAll
+ static void initializeNeo4j() {
+
+ embeddedDatabaseServer = Neo4jBuilders.newInProcessBuilder()
+ .withDisabledServer()
+ .build();
+
System.out.println("seeding embedded database");
Movie italianJob = new Movie();
italianJob.setTitle("The Italian Job");
@@ -60,9 +71,23 @@ public class MovieRepositoryIntegrationTest {
movieRepository.save(italianJob);
}
+ @DynamicPropertySource
+ static void neo4jProperties(DynamicPropertyRegistry registry) {
+
+ registry.add("spring.neo4j.uri", embeddedDatabaseServer::boltURI);
+ registry.add("spring.neo4j.authentication.username", () -> "neo4j");
+ registry.add("spring.neo4j.authentication.password", () -> null);
+ }
+
+ @AfterAll
+ static void stopNeo4j() {
+
+ embeddedDatabaseServer.close();
+ }
+
@Test
@DirtiesContext
- public void testFindByTitle() {
+ void testFindByTitle() {
System.out.println("findByTitle");
String title = "The Italian Job";
Movie result = movieRepository.findByTitle(title);
@@ -72,7 +97,7 @@ public class MovieRepositoryIntegrationTest {
@Test
@DirtiesContext
- public void testCount() {
+ void testCount() {
System.out.println("count");
long movieCount = movieRepository.count();
@@ -81,7 +106,7 @@ public class MovieRepositoryIntegrationTest {
@Test
@DirtiesContext
- public void testFindAll() {
+ void testFindAll() {
System.out.println("findAll");
Collection result = movieRepository.findAll();
assertNotNull(result);
@@ -90,7 +115,7 @@ public class MovieRepositoryIntegrationTest {
@Test
@DirtiesContext
- public void testFindByTitleContaining() {
+ void testFindByTitleContaining() {
System.out.println("findByTitleContaining");
String title = "Italian";
Collection result = movieRepository.findByTitleContaining(title);
@@ -100,7 +125,7 @@ public class MovieRepositoryIntegrationTest {
@Test
@DirtiesContext
- public void testGraph() {
+ void testGraph() {
System.out.println("graph");
List