下面列出了怎么用org.testcontainers.containers.wait.strategy.WaitStrategyTarget的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* @return the ports on which to check if the container is ready
* @deprecated use {@link #getLivenessCheckPortNumbers()} instead
*/
@NotNull
@NonNull
@Deprecated
protected Set<Integer> getLivenessCheckPorts() {
final Set<Integer> result = WaitStrategyTarget.super.getLivenessCheckPortNumbers();
// for backwards compatibility
if (this.getLivenessCheckPort() != null) {
result.add(this.getLivenessCheckPort());
}
return result;
}
@Before
public void setUp() throws Exception {
listeningSocket1 = new ServerSocket(0);
listeningSocket2 = new ServerSocket(0);
nonListeningSocket = new ServerSocket(0);
nonListeningSocket.close();
mockContainer = mock(WaitStrategyTarget.class);
when(mockContainer.getHost()).thenReturn("127.0.0.1");
}
@Override
public void waitUntilReady(WaitStrategyTarget waitStrategyTarget) {
Unreliables.retryUntilTrue(Ints.checkedCast(timeout.getSeconds()), TimeUnit.SECONDS, () -> {
try {
return cassandraContainer
.execInContainer("cqlsh", "-u", "cassandra", "-p", "cassandra", "-e", "show host")
.getStdout()
.contains("Connected to Test Cluster");
} catch (IOException | InterruptedException e) {
return false;
}
}
);
}
@Override
public void waitUntilReady(WaitStrategyTarget waitStrategyTarget) {
Unreliables.retryUntilTrue(Ints.checkedCast(timeout.getSeconds()), TimeUnit.SECONDS, () -> {
try {
return spamAssassinContainer
.execInContainer("spamassassin", "-V")
.getStdout()
.contains("SpamAssassin version 3.4.2");
} catch (IOException | InterruptedException e) {
return false;
}
}
);
}
@Override
public void waitUntilReady(WaitStrategyTarget waitStrategyTarget) {
waitedForStartup = true;
}
@Override
public void waitUntilReady(WaitStrategyTarget waitStrategyTarget) {
}
@Override
public void waitUntilReady(WaitStrategyTarget waitStrategyTarget) {
int seconds = Ints.checkedCast(this.timeout.getSeconds());
Unreliables.retryUntilTrue(seconds, TimeUnit.SECONDS, this::isConnected);
}