Skip to content

Commit

Permalink
Misc cleanup of LoggerTest.
Browse files Browse the repository at this point in the history
  • Loading branch information
norrisjeremy committed Jan 8, 2023
1 parent b6f6137 commit 94f6b13
Showing 1 changed file with 47 additions and 43 deletions.
90 changes: 47 additions & 43 deletions src/test/java/com/jcraft/jsch/LoggerTest.java
Original file line number Diff line number Diff line change
@@ -1,56 +1,60 @@
package com.jcraft.jsch;

import static org.junit.jupiter.api.Assertions.assertEquals;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.LinkedList;
import java.util.stream.Collectors;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.junit.jupiter.api.Test;

class LoggerTest {

public class LoggerTest {

private final Exception testException = new Exception("dummy exception");

@Test
void testLogWithCause() {
LinkedList<String> messages = new LinkedList<>();
public void testLogging() {
List<String> actualMessages = new ArrayList<>();
boolean[] enabledResult = new boolean[1];
Logger logger = new Logger() {
@Override
public void log(int level, String message) {
messages.add(level + ":" + message);
}
@Override
public boolean isEnabled(int level) {
return enabledResult[0];
}
};

Exception ex = new Exception("dummy exception");
Logger logger =
new Logger() {
@Override
public void log(int level, String message) {
if (isEnabled(level)) {
actualMessages.add(level + ":" + message);
}
}

@Override
public boolean isEnabled(int level) {
return enabledResult[0];
}
};

actualMessages.clear();
enabledResult[0] = false;
logger.log(Logger.ERROR, "debug message");
logger.log(Logger.ERROR, "debug message with null cause", null);
logger.log(Logger.ERROR, "debug message with cause", testException);
assertEquals(Collections.emptyList(), actualMessages, "mismatch in logged messages");

StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
ex.printStackTrace(pw);
String expectedTrace = sw.toString();

logger.log(Logger.ERROR, "some message", null);
logger.log(Logger.ERROR, "some message with trace", ex);
assertEquals("", getMessageLines(messages), "message mismatch");

enabledResult[0] = true;
logger.log(Logger.ERROR, "some message", null);
logger.log(Logger.ERROR, "some message with trace", ex);
assertEquals(
Logger.ERROR + ":some message\r\n" +
Logger.ERROR + ":some message with trace" + System.lineSeparator() +
expectedTrace +
"", getMessageLines(messages), "message mismatch");
}

static String getMessageLines(LinkedList<String> messages) {
try {
return messages.stream()
.collect(Collectors.joining("\r\n"));
}
finally {
messages.clear();
try (PrintWriter pw = new PrintWriter(sw, true)) {
testException.printStackTrace(pw);
}
List<String> expectedMessages =
Arrays.asList(
Logger.ERROR + ":debug message",
Logger.ERROR + ":debug message with null cause",
Logger.ERROR + ":debug message with cause" + System.lineSeparator() + sw);

actualMessages.clear();
enabledResult[0] = true;
logger.log(Logger.ERROR, "debug message");
logger.log(Logger.ERROR, "debug message with null cause", null);
logger.log(Logger.ERROR, "debug message with cause", testException);
assertEquals(expectedMessages, actualMessages, "mismatch in logged messages");
}
}

0 comments on commit 94f6b13

Please sign in to comment.