Commit c9b2afbd authored by Andy Wilkinson's avatar Andy Wilkinson

Merge branch '2.0.x'

parents 760b5e85 f39cea04
......@@ -16,6 +16,7 @@
package org.springframework.boot.testsupport.testcontainers;
import java.time.Duration;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;
......@@ -24,7 +25,7 @@ import com.datastax.driver.core.exceptions.NoHostAvailableException;
import org.rnorth.ducttape.TimeoutException;
import org.rnorth.ducttape.unreliables.Unreliables;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.wait.HostPortWaitStrategy;
import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy;
/**
* A {@link GenericContainer} for Cassandra.
......@@ -38,13 +39,20 @@ public class CassandraContainer extends Container {
public CassandraContainer() {
super("cassandra:3.11.1", PORT, (container) -> container
.waitingFor(new WaitStrategy()).withStartupAttempts(3));
.waitingFor(new WaitStrategy(container.getMappedPort(PORT)))
.withStartupAttempts(3).withStartupTimeout(Duration.ofSeconds(60)));
}
private static class WaitStrategy extends HostPortWaitStrategy {
private final int port;
private WaitStrategy(int port) {
this.port = port;
}
@Override
public void waitUntilReady(GenericContainer container) {
public void waitUntilReady() {
super.waitUntilReady();
try {
......@@ -58,8 +66,7 @@ public class CassandraContainer extends Container {
private Callable<Boolean> checkConnection() {
return () -> {
try (Cluster cluster = Cluster.builder()
.withPort(container.getMappedPort(PORT))
try (Cluster cluster = Cluster.builder().withPort(this.port)
.addContactPoint("localhost").build()) {
cluster.connect();
return true;
......
......@@ -24,7 +24,7 @@ import org.neo4j.ogm.session.SessionFactory;
import org.rnorth.ducttape.TimeoutException;
import org.rnorth.ducttape.unreliables.Unreliables;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.wait.HostPortWaitStrategy;
import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy;
/**
* A {@link GenericContainer} for Neo4J.
......@@ -34,19 +34,28 @@ import org.testcontainers.containers.wait.HostPortWaitStrategy;
*/
public class Neo4jContainer extends Container {
private static final int PORT = 7687;
public Neo4jContainer() {
super("neo4j:3.3.1", 7687, (container) -> container.waitingFor(new WaitStrategy())
.withEnv("NEO4J_AUTH", "none"));
super("neo4j:3.3.1", PORT,
(container) -> container
.waitingFor(new WaitStrategy(container.getMappedPort(PORT)))
.withEnv("NEO4J_AUTH", "none"));
}
private static class WaitStrategy extends HostPortWaitStrategy {
private final int port;
private WaitStrategy(int port) {
this.port = port;
}
@Override
public void waitUntilReady(GenericContainer container) {
public void waitUntilReady() {
super.waitUntilReady();
Configuration configuration = new Configuration.Builder()
.uri("bolt://localhost:" + container.getMappedPort(7687))
.build();
.uri("bolt://localhost:" + this.port).build();
SessionFactory sessionFactory = new SessionFactory(configuration,
"org.springframework.boot.test.autoconfigure.data.neo4j");
try {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment