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 {
         {@literal@}Rule
         public ConsoleWatcher out = new ConsoleWatcher();
    
         {@literal@}Test
         public void testOutput() {
             System.err.println("woot!");
    
             assertThat(out.error(), is("woot!\n"));
         }
     }
     
    Note that this watcher hijacks the default System.in, System.out and System.err streams. This may cause problems when other systems prints out to those streams and expects the output to be present for others. In some cases maven may balk at this, but it seems to pass silently (and successfully) in other cases.
    • 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

        @Deprecated
        public ConsoleWatcher interactive()
        Deprecated.
        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
      • succeeded

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

        protected void skipped​(org.junit.AssumptionViolatedException e,
                               org.junit.runner.Description description)
        Overrides:
        skipped in class org.junit.rules.TestWatcher
      • finished

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