package org.testcontainers.junit;
import org.junit.ClassRule;
import org.junit.Test;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.output.OutputFrame;
import org.testcontainers.containers.output.ToStringConsumer;
import org.testcontainers.containers.output.WaitingConsumer;
import org.testcontainers.containers.startupcheck.OneShotStartupCheckStrategy;
import java.util.function.Consumer;
import static org.rnorth.visibleassertions.VisibleAssertions.assertTrue;
/**
* Created by rnorth on 26/07/2016.
*/
public class WorkingDirectoryTest {
private static WaitingConsumer waitingConsumer = new WaitingConsumer();
private static ToStringConsumer toStringConsumer = new ToStringConsumer();
private static Consumer<OutputFrame> compositeConsumer = waitingConsumer.andThen(toStringConsumer);
@ClassRule
public static GenericContainer container = new GenericContainer("alpine:3.2")
.withWorkingDirectory("/etc")
.withStartupCheckStrategy(new OneShotStartupCheckStrategy())
.withCommand("ls", "-al")
.withLogConsumer(compositeConsumer);
@Test
public void checkOutput() {
String listing = toStringConsumer.toUtf8String();
assertTrue("Directory listing contains expected /etc content", listing.contains("hostname"));
assertTrue("Directory listing contains expected /etc content", listing.contains("init.d"));
assertTrue("Directory listing contains expected /etc content", listing.contains("passwd"));
}
}