11package io .jenkins .plugins .util ;
22
3- import java .io .ByteArrayOutputStream ;
4- import java .io .PrintStream ;
5-
63import org .junit .jupiter .api .Test ;
74import org .junit .jupiter .params .ParameterizedTest ;
85import org .junit .jupiter .params .provider .ValueSource ;
96
107import edu .hm .hafner .util .FilteredLog ;
118
9+ import java .io .ByteArrayOutputStream ;
10+ import java .io .IOException ;
11+ import java .io .PrintStream ;
12+ import java .nio .charset .StandardCharsets ;
13+
1214import hudson .model .TaskListener ;
1315
1416import static org .assertj .core .api .Assertions .*;
@@ -28,60 +30,66 @@ class LogHandlerTest {
2830
2931 @ ValueSource (booleans = {true , false })
3032 @ ParameterizedTest (name = "Log some messages and evaluate quiet flag value (quiet = {0})" )
31- void shouldLogInfoAndErrorMessage (final boolean quiet ) {
32- var outputStream = new ByteArrayOutputStream ();
33- var printStream = new PrintStream (outputStream );
34- var taskListener = createTaskListener (printStream );
35-
36- var logger = new FilteredLog ("Title" );
37- logger .logInfo (NOT_SHOWN );
38- logger .logError (NOT_SHOWN );
39-
40- var logHandler = new LogHandler (taskListener , LOG_HANDLER_NAME , logger );
41- logHandler .setQuiet (quiet );
42-
43- logger .logInfo (MESSAGE );
44- logger .logError (MESSAGE );
45-
46- logHandler .log (logger );
47-
48- if (quiet ) {
49- assertThat (outputStream .toString ()).isEmpty ();
50- }
51- else {
52- assertThat (outputStream ).hasToString (String .format (
53- "[%s] [-ERROR-] %s%n"
54- + "[%s] %s%n" ,
55- LOG_HANDLER_NAME , MESSAGE , LOG_HANDLER_NAME , MESSAGE ));
56- }
57- logger .logInfo (ADDITIONAL_MESSAGE );
58- logger .logError (ADDITIONAL_MESSAGE );
59- logHandler .log (logger );
60-
61- if (quiet ) {
62- assertThat (outputStream .toString ()).isEmpty ();
63- }
64- else {
65- assertThat (outputStream ).hasToString (String .format (
66- "[%s] [-ERROR-] %s%n"
67- + "[%s] %s%n"
68- + "[%s] [-ERROR-] %s%n"
69- + "[%s] %s%n" ,
70- LOG_HANDLER_NAME , MESSAGE , LOG_HANDLER_NAME , MESSAGE , LOG_HANDLER_NAME ,
71- ADDITIONAL_MESSAGE , LOG_HANDLER_NAME , ADDITIONAL_MESSAGE ));
33+ void shouldLogInfoAndErrorMessage (final boolean quiet ) throws IOException {
34+ try (var outputStream = new ByteArrayOutputStream ();
35+ var printStream = wrapStream (outputStream )) {
36+ var taskListener = createTaskListener (printStream );
37+
38+ var logger = new FilteredLog ("Title" );
39+ logger .logInfo (NOT_SHOWN );
40+ logger .logError (NOT_SHOWN );
41+
42+ var logHandler = new LogHandler (taskListener , LOG_HANDLER_NAME , logger );
43+ logHandler .setQuiet (quiet );
44+
45+ logger .logInfo (MESSAGE );
46+ logger .logError (MESSAGE );
47+
48+ logHandler .log (logger );
49+
50+ if (quiet ) {
51+ assertThat (outputStream .toString (StandardCharsets .UTF_8 )).isEmpty ();
52+ }
53+ else {
54+ assertThat (outputStream ).hasToString (String .format (
55+ "[%s] [-ERROR-] %s%n"
56+ + "[%s] %s%n" ,
57+ LOG_HANDLER_NAME , MESSAGE , LOG_HANDLER_NAME , MESSAGE ));
58+ }
59+ logger .logInfo (ADDITIONAL_MESSAGE );
60+ logger .logError (ADDITIONAL_MESSAGE );
61+ logHandler .log (logger );
62+
63+ if (quiet ) {
64+ assertThat (outputStream .toString (StandardCharsets .UTF_8 )).isEmpty ();
65+ }
66+ else {
67+ assertThat (outputStream ).hasToString (String .format (
68+ "[%s] [-ERROR-] %s%n"
69+ + "[%s] %s%n"
70+ + "[%s] [-ERROR-] %s%n"
71+ + "[%s] %s%n" ,
72+ LOG_HANDLER_NAME , MESSAGE , LOG_HANDLER_NAME , MESSAGE , LOG_HANDLER_NAME ,
73+ ADDITIONAL_MESSAGE , LOG_HANDLER_NAME , ADDITIONAL_MESSAGE ));
74+ }
7275 }
7376 }
7477
7578 @ Test
76- void shouldLogFormattedMessage () {
77- var outputStream = new ByteArrayOutputStream ();
78- var printStream = new PrintStream (outputStream );
79- var taskListener = createTaskListener (printStream );
80- var logHandler = new LogHandler (taskListener , LOG_HANDLER_NAME );
79+ void shouldLogFormattedMessage () throws IOException {
80+ try (var outputStream = new ByteArrayOutputStream ();
81+ var printStream = wrapStream (outputStream )) {
82+ var taskListener = createTaskListener (printStream );
83+ var logHandler = new LogHandler (taskListener , LOG_HANDLER_NAME );
84+
85+ logHandler .log (LOGGER_MESSAGE );
8186
82- logHandler .log (LOGGER_MESSAGE );
87+ assertThat (outputStream ).hasToString ("[%s] %s%n" .formatted (LOG_HANDLER_NAME , LOGGER_MESSAGE ));
88+ }
89+ }
8390
84- assertThat (outputStream ).hasToString ("[%s] %s%n" .formatted (LOG_HANDLER_NAME , LOGGER_MESSAGE ));
91+ private PrintStream wrapStream (final ByteArrayOutputStream outputStream ) {
92+ return new PrintStream (outputStream , true , StandardCharsets .UTF_8 );
8593 }
8694
8795 private TaskListener createTaskListener (final PrintStream printStream ) {
0 commit comments