Class 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 Detail

      • ConsoleWatcher

        public ConsoleWatcher()
    • 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 interface java.lang.AutoCloseable
      • starting

        protected void starting​(org.junit.runner.Description description)
        Overrides:
        starting in class org.junit.rules.TestWatcher
      • failed

        protected void failed​(java.lang.Throwable e,
                              org.junit.runner.Description description)
        Overrides:
        failed in class org.junit.rules.TestWatcher
      • finished

        protected void finished​(org.junit.runner.Description description)
        Overrides:
        finished in class org.junit.rules.TestWatcher