package com.framsticks.running; // import java.util.Arrays; import java.util.Arrays; import java.util.LinkedList; import java.util.List; import org.testng.annotations.Test; import com.framsticks.test.TestConfiguration; import com.framsticks.util.dispatching.Monitor; import static org.fest.assertions.Assertions.*; @Test public class ExternalProcessTest extends TestConfiguration { @Test(timeOut = 1000) public void runBash() throws InterruptedException { final ExternalProcess process = new ExternalProcess(); process.setCommand("bash"); final List input = Arrays.asList("test", "another line"); final List output = new LinkedList<>(); process.addListener(new OutputListener() { @Override public void onLineRead(String line) { output.add(line); } }); Monitor monitor = new Monitor(process); monitor.use(); for (String l : input) { process.getInput().println("echo " + l); } process.getInput().close(); monitor.waitFor(); monitor.drop(); monitor.join(); assertThat(output).isEqualTo(input); } }