Package net.morimekta.testing.rules
Class ConsoleWatcher
- java.lang.Object
-
- org.junit.rules.TestWatcher
-
- net.morimekta.testing.rules.ConsoleWatcher
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,org.junit.rules.TestRule
public class ConsoleWatcher extends org.junit.rules.TestWatcher implements java.lang.AutoCloseable
Printed output watcher rule.public class Test { &Rule public ConsoleWatcher out = new ConsoleWatcher(); &Test public void testOutput() { System.err.println("woot!"); assertThat(out.error(), is("woot!\n")); } }
-
-
Constructor Summary
Constructors Constructor Description ConsoleWatcher()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
ConsoleWatcher
dumpErrorOnFailure()
Dump stderr to error output on failure.ConsoleWatcher
dumpOnFailure()
Dump both stdout and stderr to error output on failure.ConsoleWatcher
dumpOutputOnFailure()
Dump stdout to error output on failure.java.lang.String
error()
protected void
failed(java.lang.Throwable e, org.junit.runner.Description description)
protected void
finished(org.junit.runner.Description description)
ConsoleWatcher
interactive()
Set input mode to interactive.ConsoleWatcher
nonInteractive()
Set input mode to non-interactive.java.lang.String
output()
void
reset()
Reset all the streams for the console.ConsoleWatcher
setInput(byte[] in)
Set input to return the given bytes.ConsoleWatcher
setInput(java.lang.Object... in)
Set input with dynamic content.protected void
starting(org.junit.runner.Description description)
net.morimekta.console.util.STTY
tty()
ConsoleWatcher
withTerminalSize(int rows, int cols)
Set the current terminal size.
-
-
-
Method Detail
-
withTerminalSize
public ConsoleWatcher withTerminalSize(int rows, int cols)
Set the current terminal size.- Parameters:
rows
- Row count.cols
- Column count.- Returns:
- The console watcher.
-
nonInteractive
public ConsoleWatcher nonInteractive()
Set input mode to non-interactive. This makes the terminal no longer behave like an interactive terminal (the default for ConsoleWatcher), but as a wrapped shell script.- Returns:
- The console watcher.
-
interactive
public ConsoleWatcher interactive()
Set input mode to interactive. This makes the terminal behave like an interactive terminal (the default for ConsoleWatcher).- Returns:
- The console watcher.
-
dumpOutputOnFailure
public ConsoleWatcher dumpOutputOnFailure()
Dump stdout to error output on failure.- Returns:
- The console watcher.
-
dumpErrorOnFailure
public ConsoleWatcher dumpErrorOnFailure()
Dump stderr to error output on failure.- Returns:
- The console watcher.
-
dumpOnFailure
public ConsoleWatcher dumpOnFailure()
Dump both stdout and stderr to error output on failure.- Returns:
- The console watcher.
-
reset
public void reset()
Reset all the streams for the console.
-
output
public java.lang.String output()
- Returns:
- Get the normal output.
-
error
public java.lang.String error()
- Returns:
- Get the error output.
-
setInput
public ConsoleWatcher setInput(@Nonnull byte[] in)
Set input to return the given bytes.- Parameters:
in
- The bytes for input.- Returns:
- The console watcher.
-
setInput
public ConsoleWatcher setInput(java.lang.Object... in)
Set input with dynamic content.- Parameters:
in
- The input values.- Returns:
- The console watcher.
-
tty
public net.morimekta.console.util.STTY tty()
- Returns:
- The testing TTY
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
-
starting
protected void starting(org.junit.runner.Description description)
- Overrides:
starting
in classorg.junit.rules.TestWatcher
-
failed
protected void failed(java.lang.Throwable e, org.junit.runner.Description description)
- Overrides:
failed
in classorg.junit.rules.TestWatcher
-
finished
protected void finished(org.junit.runner.Description description)
- Overrides:
finished
in classorg.junit.rules.TestWatcher
-
-