Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package test;
- import static org.junit.jupiter.api.Assertions.assertTrue;
- import java.lang.annotation.Retention;
- import java.lang.annotation.RetentionPolicy;
- import org.junit.jupiter.api.AfterAll;
- import org.junit.jupiter.api.BeforeAll;
- import org.junit.jupiter.api.Test;
- import org.junit.jupiter.api.extension.BeforeTestExecutionCallback;
- import org.junit.jupiter.api.extension.ExtendWith;
- import org.junit.jupiter.api.extension.ExtensionContext;
- import org.neo4j.driver.Driver;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.context.SpringBootTest;
- import org.springframework.test.context.DynamicPropertyRegistry;
- import org.springframework.test.context.DynamicPropertySource;
- import org.springframework.test.context.junit.jupiter.SpringExtension;
- import org.testcontainers.containers.Neo4jContainer;
- @Retention(RetentionPolicy.RUNTIME)
- @interface Neo4j {
- String value();
- }
- class Neoj4Ext implements BeforeTestExecutionCallback {
- @Override
- public void beforeTestExecution(ExtensionContext extensionContext) {
- Neo4j neo4j = extensionContext.getRequiredTestMethod().getAnnotation(Neo4j.class);
- var driver = SpringExtension.getApplicationContext(extensionContext).getBean(Driver.class);
- }
- }
- @ExtendWith(Neoj4Ext.class)
- @ExtendWith(SpringExtension.class)
- @SpringBootTest
- class ItTest {
- protected static Neo4jContainer<?> container = new Neo4jContainer<>("neo4j:4.4")
- .withAdminPassword("secret")
- .withReuse(true);
- @BeforeAll
- static void init() {
- container.start();
- }
- @AfterAll
- static void destroy() {
- container.close();
- }
- @DynamicPropertySource
- static void registerProps(DynamicPropertyRegistry registry) {
- registry.add("spring.neo4j.uri", () -> container.getBoltUrl());
- registry.add("spring.neo4j.authentication.username", () -> "neo4j");
- registry.add("spring.neo4j.authentication.password", () -> container.getAdminPassword());
- }
- }
- public class ExampleTest extends ItTest {
- @Autowired
- Driver driver;
- @Test
- @Neo4j("CREATE (baeldung:Company {name:\"Baeldung\"}) " +
- "-[:owns]-> (tesla:Car {make: 'tesla', model: 'modelX'})" +
- "RETURN baeldung, tesla")
- void foo() {
- assertTrue(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement