Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joshlong/ffb6bce9fcc90ad95caed925f14be42e to your computer and use it in GitHub Desktop.
Save joshlong/ffb6bce9fcc90ad95caed925f14be42e to your computer and use it in GitHub Desktop.
MongoTestContainersEnvironmentPostProcessor.java
package autoservices;
import com.mongodb.reactivestreams.client.MongoClient;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.env.EnvironmentPostProcessor;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.MapPropertySource;
import org.testcontainers.containers.MongoDBContainer;
import org.testcontainers.lifecycle.Startables;
import java.util.Map;
public class MongoTestContainersEnvironmentPostProcessor implements EnvironmentPostProcessor {
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
if (environment.getProperty("spring.data.mongodb.uri") == null) {
var mongoDBContainer = new MongoDBContainer("mongo:5.0.3");
Startables.deepStart(mongoDBContainer).join();
environment.getPropertySources().addLast(
new MapPropertySource("testcontainers",
Map.of("spring.data.mongodb.uri", mongoDBContainer.getReplicaSetUrl()))
);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment