-
Notifications
You must be signed in to change notification settings - Fork 0
/
LogTest.java
129 lines (99 loc) · 4.51 KB
/
LogTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package me.someoverflow.someutils;
import me.someoverflow.someutils.log.ConsoleColors;
import me.someoverflow.someutils.log.SomeLogFormatter;
import me.someoverflow.someutils.log.SomeLogger;
import org.junit.jupiter.api.*;
import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class LogTest {
SomeLogger logger;
final String loggerName = "testLogger";
SomeLogFormatter formatter = new SomeLogFormatter.Default();
@BeforeEach
void setupLogger() {
logger = new SomeLogger(loggerName, true, "", "test.log");
logger.setDebugging(true);
logger.setBothFormatter(formatter);
}
@Nested
class ConsoleTest {
private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
private final ByteArrayOutputStream errContent = new ByteArrayOutputStream();
private final PrintStream originalOut = System.out;
private final PrintStream originalErr = System.err;
@BeforeEach
public void setUpStreams() {
System.setOut(new PrintStream(outContent));
System.setErr(new PrintStream(errContent));
}
@AfterEach
public void restoreStreams() {
System.setOut(originalOut);
System.setErr(originalErr);
}
@Test
@DisplayName("Test LogLevel outputs")
void testOut() {
StringBuilder terminal = new StringBuilder();
String message = "";
String format = "";
// Debug
message = "Test Debug";
logger.log(SomeLogger.LogLevel.DEBUG, message);
logger.debug(message);
format = formatter.format(loggerName, SomeLogger.LogLevel.DEBUG, message);
terminal.append(format).append(ConsoleColors.RESET).append("\r\n");
format = formatter.format(loggerName, SomeLogger.LogLevel.DEBUG, SomeLogger.debugColor + message);
terminal.append(format).append(ConsoleColors.RESET).append("\r\n");
assertEquals(
terminal.toString(),
outContent.toString(),
"Check if the thing that got logged is in the out stream"
);
// Info
message = "Info Debug";
logger.log(SomeLogger.LogLevel.INFO, message);
logger.info(message);
format = formatter.format(loggerName, SomeLogger.LogLevel.INFO, message);
terminal.append(format).append(ConsoleColors.RESET).append("\r\n");
format = formatter.format(loggerName, SomeLogger.LogLevel.INFO, SomeLogger.infoColor + message);
terminal.append(format).append(ConsoleColors.RESET).append("\r\n");
assertEquals(
terminal.toString(),
outContent.toString(),
"Check if the thing that got logged is in the out stream"
);
// Warning
message = "Warning Debug";
logger.log(SomeLogger.LogLevel.WARNING, message);
logger.warn(message);
format = formatter.format(loggerName, SomeLogger.LogLevel.WARNING, message);
terminal.append(format).append(ConsoleColors.RESET).append("\r\n");
format = formatter.format(loggerName, SomeLogger.LogLevel.WARNING, SomeLogger.warnColor + message);
terminal.append(format).append(ConsoleColors.RESET).append("\r\n");
assertEquals(
terminal.toString(),
outContent.toString(),
"Check if the thing that got logged is in the out stream"
);
// Error
message = "Error Debug";
logger.log(SomeLogger.LogLevel.ERROR, message);
logger.error(message);
terminal = new StringBuilder();
format = formatter.format(loggerName, SomeLogger.LogLevel.ERROR, message);
terminal.append(format).append(ConsoleColors.RESET).append("\r\n");
format = formatter.format(loggerName, SomeLogger.LogLevel.ERROR, SomeLogger.errorColor + message);
terminal.append(format).append(ConsoleColors.RESET).append("\r\n");
assertEquals(
terminal.toString(),
errContent.toString(),
"Check if the thing that got logged is in the out stream"
);
}
}
// TODO: 30.04.2023 Log-File Tests
// TODO: 30.04.2023 Formatter Tests
}