1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.shared.scriptinterpreter;
20
21 import java.io.File;
22 import java.io.IOException;
23 import java.nio.file.Files;
24
25 import org.junit.jupiter.api.Test;
26
27 import static org.junit.jupiter.api.Assertions.assertEquals;
28 import static org.junit.jupiter.api.Assertions.assertNull;
29 import static org.junit.jupiter.api.Assertions.assertTrue;
30
31
32
33
34 public class FileLoggerTest {
35
36 public static final String EXPECTED_LOG = "Test1" + System.lineSeparator() + "Test2" + System.lineSeparator();
37
38 @Test
39 public void nullOutputFileNoMirror() throws IOException {
40 try (FileLogger fileLogger = new FileLogger(null)) {
41 fileLogger.consumeLine("Test1");
42 fileLogger.getPrintStream().println("Test2");
43 fileLogger.getPrintStream().flush();
44
45 assertNull(fileLogger.getOutputFile());
46 }
47 }
48
49 @Test
50 public void nullOutputFileWithMirror() throws IOException {
51 TestMirrorHandler mirrorHandler = new TestMirrorHandler();
52
53 try (FileLogger fileLogger = new FileLogger(null, mirrorHandler)) {
54 fileLogger.consumeLine("Test1");
55 fileLogger.getPrintStream().println("Test2");
56 fileLogger.getPrintStream().flush();
57
58 assertNull(fileLogger.getOutputFile());
59 }
60
61 assertEquals(EXPECTED_LOG, mirrorHandler.getLoggedMessage());
62 }
63
64 @Test
65 public void nullOutputFileWithMirrorWriteByte() throws IOException {
66 TestMirrorHandler mirrorHandler = new TestMirrorHandler();
67
68 try (FileLogger fileLogger = new FileLogger(null, mirrorHandler)) {
69 fileLogger.getPrintStream().write('A');
70 fileLogger.getPrintStream().flush();
71
72 assertNull(fileLogger.getOutputFile());
73 }
74
75 assertEquals("A" + System.lineSeparator(), mirrorHandler.getLoggedMessage());
76 }
77
78 @Test
79 public void outputFileNoMirror() throws IOException {
80 File outputFile = new File("target/test.log");
81 if (outputFile.exists()) {
82 outputFile.delete();
83 }
84
85 try (FileLogger fileLogger = new FileLogger(outputFile)) {
86 fileLogger.consumeLine("Test1");
87 fileLogger.getPrintStream().println("Test2");
88 fileLogger.getPrintStream().flush();
89
90 assertEquals(outputFile, fileLogger.getOutputFile());
91 }
92
93 assertTrue(outputFile.exists());
94 assertEquals(EXPECTED_LOG, new String(Files.readAllBytes(outputFile.toPath())));
95 }
96
97 @Test
98 public void outputFileWithMirror() throws IOException {
99 File outputFile = new File("target/test.log");
100 if (outputFile.exists()) {
101 outputFile.delete();
102 }
103 TestMirrorHandler mirrorHandler = new TestMirrorHandler();
104
105 try (FileLogger fileLogger = new FileLogger(outputFile, mirrorHandler)) {
106 fileLogger.consumeLine("Test1");
107 fileLogger.getPrintStream().println("Test2");
108 fileLogger.getPrintStream().flush();
109
110 assertEquals(outputFile, fileLogger.getOutputFile());
111 }
112
113 assertEquals(EXPECTED_LOG, mirrorHandler.getLoggedMessage());
114
115 assertTrue(outputFile.exists());
116 assertEquals(EXPECTED_LOG, new String(Files.readAllBytes(outputFile.toPath())));
117 }
118 }