Skip to content

Commit 0d1b880

Browse files
committed
Match expected logs case-insensitively
1 parent 04b79e3 commit 0d1b880

File tree

2 files changed

+21
-0
lines changed
  • compatibility
    • api/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat
    • common/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat

2 files changed

+21
-0
lines changed

compatibility/api/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/TestLog.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
*/
2020
package org.neo4j.gds.compat;
2121

22+
import org.intellij.lang.annotations.Language;
2223
import org.neo4j.gds.annotation.SuppressForbidden;
2324
import org.neo4j.logging.Log;
2425

@@ -32,6 +33,8 @@ public interface TestLog extends Log {
3233

3334
void assertContainsMessage(String level, String fragment);
3435

36+
void assertMessageMatches(String level, @Language("RegExp") String pattern);
37+
3538
boolean containsMessage(String level, String fragment);
3639

3740
boolean hasMessages(String level);

compatibility/common/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/TestLogImpl.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.util.concurrent.ConcurrentHashMap;
2727
import java.util.concurrent.ConcurrentLinkedQueue;
2828
import java.util.concurrent.ConcurrentMap;
29+
import java.util.regex.Pattern;
2930

3031
public class TestLogImpl implements TestLog {
3132

@@ -50,6 +51,23 @@ public void assertContainsMessage(String level, String fragment) {
5051
}
5152
}
5253

54+
@Override
55+
public void assertMessageMatches(String level, String pattern) {
56+
var compiled = Pattern.compile(pattern);
57+
var messageList = messages.getOrDefault(level, new ConcurrentLinkedQueue<>());
58+
if (messageList.stream().noneMatch(compiled.asPredicate())) {
59+
throw new RuntimeException(
60+
String.format(
61+
Locale.US,
62+
"Expected log output to match `%s` for log level `%s`%nLog messages:%n%s",
63+
pattern,
64+
level,
65+
String.join("\n", messageList)
66+
)
67+
);
68+
}
69+
}
70+
5371
@Override
5472
public boolean containsMessage(String level, String fragment) {
5573
ConcurrentLinkedQueue<String> messageList = messages.getOrDefault(level, new ConcurrentLinkedQueue<>());

0 commit comments

Comments
 (0)