// Copyright © 2011-2013, Esko Luontola <www.orfjackal.net> // This software is released under the Apache License 2.0. // The license text is at http://www.apache.org/licenses/LICENSE-2.0 package fi.jumi.launcher.ui; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; public class PlainTextPrinterTest { private final StringBuilder output = new StringBuilder(); private final PlainTextPrinter printer = new PlainTextPrinter(output); @Test public void prints_stdout() { printer.printOut("foo"); printer.printOut("bar"); assertThat(output.toString(), is("foobar")); } @Test public void prints_stderr() { printer.printErr("foo"); printer.printErr("bar"); assertThat(output.toString(), is("foobar")); } @Test public void prints_meta_lines() { printer.printMetaLine("foo"); printer.printMetaLine("bar"); assertThat(output.toString(), is("foo\nbar\n")); } @Test public void if_previous_stdout_did_not_end_with_newline_then_meta_goes_on_a_new_line() { printer.printOut("out"); printer.printMetaLine("meta"); assertThat(output.toString(), is("out\nmeta\n")); } @Test public void if_previous_stdout_ended_with_Unix_newline_then_meta_is_printed_right_after_it() { printer.printOut("out\n"); printer.printMetaLine("meta"); assertThat(output.toString(), is("out\nmeta\n")); } @Test public void if_previous_stdout_ended_with_DOS_newline_then_meta_is_printed_right_after_it() { printer.printOut("out\r\n"); printer.printMetaLine("meta"); assertThat(output.toString(), is("out\r\nmeta\n")); } @Test public void printing_meta_incrementally() { printer.printMetaIncrement("a"); printer.printMetaIncrement("b"); printer.printMetaIncrement("c"); assertThat(output.toString(), is("abc")); } @Test public void printing_meta_incrementally_prints_a_newline_if_previous_stdout_did_not_end_with_newline() { printer.printOut("out"); printer.printMetaIncrement("meta"); assertThat(output.toString(), is("out\nmeta")); } @Test public void meta_line_starts_a_new_line_after_meta_increment() { printer.printMetaIncrement("inc"); printer.printMetaLine("line"); assertThat(output.toString(), is("inc\nline\n")); } @Test public void stdout_starts_a_new_line_after_meta_increment() { printer.printMetaIncrement("inc"); printer.printOut("out"); assertThat(output.toString(), is("inc\nout")); } }