From 24703add51b07bb3a218bdd612d31a5a613d62de Mon Sep 17 00:00:00 2001 From: Fred Bricon Date: Wed, 15 Nov 2023 14:40:55 +0100 Subject: [PATCH] Provide better test failure messages in XMLAssert.assertPublishDiagnostics() Signed-off-by: Fred Bricon --- .../src/test/java/org/eclipse/lemminx/XMLAssert.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/org.eclipse.lemminx/src/test/java/org/eclipse/lemminx/XMLAssert.java b/org.eclipse.lemminx/src/test/java/org/eclipse/lemminx/XMLAssert.java index eb6656e97..574ad501e 100644 --- a/org.eclipse.lemminx/src/test/java/org/eclipse/lemminx/XMLAssert.java +++ b/org.eclipse.lemminx/src/test/java/org/eclipse/lemminx/XMLAssert.java @@ -35,6 +35,7 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; +import java.util.stream.Stream; import org.eclipse.lemminx.client.CodeLensKind; import org.eclipse.lemminx.client.CodeLensKindCapabilities; @@ -875,7 +876,9 @@ public static void testPublishDiagnosticsFor(String xml, String fileURI, public static void assertPublishDiagnostics(List actual, PublishDiagnosticsParams... expected) { - assertEquals(expected.length, actual.size()); + assertEquals(expected.length, actual.size(), () -> { + return "Unexpected diagnostics. Expected:"+ getMessages(Arrays.stream(expected)) + ",\nReceived: " +getMessages(actual.stream()); + }); for (int i = 0; i < expected.length; i++) { assertEquals(expected[i].getUri(), actual.get(i).getUri()); actual.get(i).getDiagnostics().forEach(d -> { @@ -888,6 +891,12 @@ public static void assertPublishDiagnostics(List actua } } + private static List getMessages(Stream diagParams) { + return diagParams.flatMap(d -> d.getDiagnostics().stream()) + .map(d -> cleanExceptionMessage.apply(d.getMessage())) + .collect(Collectors.toList()); + } + private static final Function cleanExceptionMessage = (message) -> { if (message.contains("[")) { String exceptionClassName = message.substring(message.indexOf("[") + 1, message.indexOf("]"));