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.nio.file.Files;
23
24 import org.junit.jupiter.api.Test;
25 import org.junit.jupiter.api.io.TempDir;
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 void nullOutputFileNoMirror() throws Exception {
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 void nullOutputFileWithMirror() throws Exception {
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 void nullOutputFileWithMirrorWriteByte() throws Exception {
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 void outputFileNoMirror(@TempDir File tempDir) throws Exception {
80 File outputFile = new File(tempDir, "/target/test.log");
81
82 try (FileLogger fileLogger = new FileLogger(outputFile)) {
83 fileLogger.consumeLine("Test1");
84 fileLogger.getPrintStream().println("Test2");
85 fileLogger.getPrintStream().flush();
86
87 assertEquals(outputFile, fileLogger.getOutputFile());
88 }
89
90 assertTrue(outputFile.exists());
91 assertEquals(EXPECTED_LOG, new String(Files.readAllBytes(outputFile.toPath())));
92 }
93
94 @Test
95 void outputFileWithMirror(@TempDir File tempDir) throws Exception {
96 File outputFile = new File(tempDir, "target/test.log");
97 TestMirrorHandler mirrorHandler = new TestMirrorHandler();
98
99 try (FileLogger fileLogger = new FileLogger(outputFile, mirrorHandler)) {
100 fileLogger.consumeLine("Test1");
101 fileLogger.getPrintStream().println("Test2");
102 fileLogger.getPrintStream().flush();
103
104 assertEquals(outputFile, fileLogger.getOutputFile());
105 }
106
107 assertEquals(EXPECTED_LOG, mirrorHandler.getLoggedMessage());
108
109 assertTrue(outputFile.exists());
110 assertEquals(EXPECTED_LOG, new String(Files.readAllBytes(outputFile.toPath())));
111 }
112 }