|
|
|
|
@ -21,6 +21,9 @@ import org.junit.jupiter.api.extension.ExecutionCondition;
@@ -21,6 +21,9 @@ import org.junit.jupiter.api.extension.ExecutionCondition;
|
|
|
|
|
import org.junit.jupiter.api.extension.ExtensionContext; |
|
|
|
|
import org.testcontainers.DockerClientFactory; |
|
|
|
|
|
|
|
|
|
import org.springframework.util.Assert; |
|
|
|
|
import org.springframework.util.ClassUtils; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* An {@link ExecutionCondition} that disables execution if Docker is unavailable. |
|
|
|
|
* |
|
|
|
|
@ -30,12 +33,17 @@ import org.testcontainers.DockerClientFactory;
@@ -30,12 +33,17 @@ import org.testcontainers.DockerClientFactory;
|
|
|
|
|
*/ |
|
|
|
|
class DisabledIfDockerUnavailableCondition implements ExecutionCondition { |
|
|
|
|
|
|
|
|
|
private static final boolean TESTCONTAINERS_PRESENT = ClassUtils.isPresent("org.testcontainers.DockerClientFactory", |
|
|
|
|
DisabledIfDockerUnavailableCondition.class.getClassLoader()); |
|
|
|
|
|
|
|
|
|
private static final String SILENCE_PROPERTY = "visibleassertions.silence"; |
|
|
|
|
|
|
|
|
|
private static final ConditionEvaluationResult ENABLED = ConditionEvaluationResult.enabled("Docker available"); |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { |
|
|
|
|
Assert.isTrue(TESTCONTAINERS_PRESENT, "Testcontainers is required when using @DisabledIfDockerUnavailable." |
|
|
|
|
+ " Add a dependency on org.testcontainers:testcontainers"); |
|
|
|
|
String originalSilenceValue = System.getProperty(SILENCE_PROPERTY); |
|
|
|
|
try { |
|
|
|
|
DockerClientFactory.instance().client(); |
|
|
|
|
|