package com.softwaremill.common.test.util;
import com.google.common.base.Charsets;
import java.io.InputStream;
import java.util.Scanner;
import java.util.regex.Pattern;
/**
* <strong>Warning:</strong> do not use with {@code FileInputStream}. If you want to tail a file and wait for a message,
* use {@link FileMessageWaiter}.
* @author Pawel Wrzeszcz (pawel [at] softwaremill . com)
*/
public class MessageWaiter {
private final InputStream inputStream;
public MessageWaiter(Process process) {
this(process.getInputStream());
}
public MessageWaiter(InputStream inputStream) {
this.inputStream = inputStream;
}
public void waitFor(String message) {
System.out.println("Waiting for message: [" + message + "]");
final Scanner scanner = new Scanner(inputStream, Charsets.UTF_8.name()).useDelimiter(Pattern.quote(message));
scanner.next();
}
}