Skip to content

Commit d213d50

Browse files
committed
HV-1591 Add extra methods to ListAppender
Make it easier to get and filter the logged messages for testing
1 parent 73ae8ee commit d213d50

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

engine/src/test/java/org/hibernate/validator/testutils/ListAppender.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,19 @@
44
*/
55
package org.hibernate.validator.testutils;
66

7+
import static java.util.Collections.unmodifiableList;
8+
79
import java.util.ArrayList;
810
import java.util.Collections;
911
import java.util.List;
12+
import java.util.function.Predicate;
1013

14+
import org.apache.logging.log4j.Level;
1115
import org.apache.logging.log4j.core.LogEvent;
1216
import org.apache.logging.log4j.core.appender.AbstractAppender;
1317
import org.apache.logging.log4j.core.config.Property;
1418
import org.apache.logging.log4j.core.impl.MutableLogEvent;
19+
import org.apache.logging.log4j.message.Message;
1520

1621
/**
1722
* A simple log appender for tests.
@@ -39,6 +44,25 @@ public void clear() {
3944
}
4045

4146
public List<LogEvent> getEvents() {
42-
return Collections.unmodifiableList( this.events );
47+
return unmodifiableList( this.events );
48+
}
49+
50+
/**
51+
* Returns all logged messages
52+
*/
53+
public List<String> getMessages() {
54+
return getMessages( logEvent -> true );
55+
}
56+
57+
/**
58+
* Returns logged messages matching the specified {@link Level}
59+
*/
60+
public List<String> getMessages(Level level) {
61+
return getMessages( logEvent -> logEvent.getLevel().equals( level ) );
62+
}
63+
64+
private List<String> getMessages(Predicate<LogEvent> filter) {
65+
return events.stream().filter( filter ).map( LogEvent::getMessage )
66+
.map( Message::getFormattedMessage ).toList();
4367
}
4468
}

0 commit comments

Comments
 (0)