Decorate test containers so tests are skipped without Docker
Closes gh-15901 Closes gh-15638
This commit is contained in:
@@ -18,13 +18,17 @@ package org.springframework.boot.test.autoconfigure.data.neo4j;
|
||||
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TestRule;
|
||||
import org.junit.runner.Description;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.model.Statement;
|
||||
import org.neo4j.ogm.session.Session;
|
||||
import org.testcontainers.containers.Neo4jContainer;
|
||||
|
||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.util.TestPropertyValues;
|
||||
import org.springframework.boot.testsupport.testcontainers.SkippableContainer;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
@@ -46,9 +50,18 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
||||
@DataNeo4jTest
|
||||
public class DataNeo4jTestIntegrationTests {
|
||||
|
||||
public static SkippableContainer<Neo4jContainer<?>> neo4j = new SkippableContainer<Neo4jContainer<?>>(
|
||||
() -> new Neo4jContainer<>().withAdminPassword(null));
|
||||
|
||||
@ClassRule
|
||||
public static Neo4jContainer<?> neo4j = new Neo4jContainer<>()
|
||||
.withAdminPassword(null);
|
||||
public static TestRule skippableContainer = new TestRule() {
|
||||
|
||||
@Override
|
||||
public Statement apply(Statement base, Description description) {
|
||||
return neo4j.apply(base, description);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
@Autowired
|
||||
private Session session;
|
||||
@@ -81,7 +94,8 @@ public class DataNeo4jTestIntegrationTests {
|
||||
@Override
|
||||
public void initialize(
|
||||
ConfigurableApplicationContext configurableApplicationContext) {
|
||||
TestPropertyValues.of("spring.data.neo4j.uri=" + neo4j.getBoltUrl())
|
||||
TestPropertyValues
|
||||
.of("spring.data.neo4j.uri=" + neo4j.getContainer().getBoltUrl())
|
||||
.applyTo(configurableApplicationContext.getEnvironment());
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ import org.testcontainers.containers.Neo4jContainer;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.util.TestPropertyValues;
|
||||
import org.springframework.boot.testsupport.testcontainers.SkippableContainer;
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.core.env.Environment;
|
||||
@@ -43,8 +44,8 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
public class DataNeo4jTestPropertiesIntegrationTests {
|
||||
|
||||
@ClassRule
|
||||
public static Neo4jContainer<?> neo4j = new Neo4jContainer<>()
|
||||
.withAdminPassword(null);
|
||||
public static SkippableContainer<Neo4jContainer<?>> neo4j = new SkippableContainer<Neo4jContainer<?>>(
|
||||
() -> new Neo4jContainer<>().withAdminPassword(null));
|
||||
|
||||
@Autowired
|
||||
private Environment environment;
|
||||
@@ -60,7 +61,8 @@ public class DataNeo4jTestPropertiesIntegrationTests {
|
||||
@Override
|
||||
public void initialize(
|
||||
ConfigurableApplicationContext configurableApplicationContext) {
|
||||
TestPropertyValues.of("spring.data.neo4j.uri=" + neo4j.getBoltUrl())
|
||||
TestPropertyValues
|
||||
.of("spring.data.neo4j.uri=" + neo4j.getContainer().getBoltUrl())
|
||||
.applyTo(configurableApplicationContext.getEnvironment());
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ import org.testcontainers.containers.Neo4jContainer;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.util.TestPropertyValues;
|
||||
import org.springframework.boot.testsupport.testcontainers.SkippableContainer;
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.annotation.ComponentScan.Filter;
|
||||
@@ -44,8 +45,8 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
public class DataNeo4jTestWithIncludeFilterIntegrationTests {
|
||||
|
||||
@ClassRule
|
||||
public static Neo4jContainer<?> neo4j = new Neo4jContainer<>()
|
||||
.withAdminPassword(null);
|
||||
public static SkippableContainer<Neo4jContainer<?>> neo4j = new SkippableContainer<Neo4jContainer<?>>(
|
||||
() -> new Neo4jContainer<>().withAdminPassword(null));
|
||||
|
||||
@Autowired
|
||||
private ExampleService service;
|
||||
@@ -61,7 +62,8 @@ public class DataNeo4jTestWithIncludeFilterIntegrationTests {
|
||||
@Override
|
||||
public void initialize(
|
||||
ConfigurableApplicationContext configurableApplicationContext) {
|
||||
TestPropertyValues.of("spring.data.neo4j.uri=" + neo4j.getBoltUrl())
|
||||
TestPropertyValues
|
||||
.of("spring.data.neo4j.uri=" + neo4j.getContainer().getBoltUrl())
|
||||
.applyTo(configurableApplicationContext.getEnvironment());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user