Skip to content

Commit

Permalink
Provide better test failure messages in XMLAssert.assertPublishDiagno…
Browse files Browse the repository at this point in the history
…stics()

Signed-off-by: Fred Bricon <[email protected]>
  • Loading branch information
fbricon committed Nov 15, 2023
1 parent e76e5f6 commit 24703ad
Showing 1 changed file with 10 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -875,7 +876,9 @@ public static void testPublishDiagnosticsFor(String xml, String fileURI,

public static void assertPublishDiagnostics(List<PublishDiagnosticsParams> 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 -> {
Expand All @@ -888,6 +891,12 @@ public static void assertPublishDiagnostics(List<PublishDiagnosticsParams> actua
}
}

private static List<String> getMessages(Stream<PublishDiagnosticsParams> diagParams) {
return diagParams.flatMap(d -> d.getDiagnostics().stream())
.map(d -> cleanExceptionMessage.apply(d.getMessage()))
.collect(Collectors.toList());
}

private static final Function<String, String> cleanExceptionMessage = (message) -> {
if (message.contains("[")) {
String exceptionClassName = message.substring(message.indexOf("[") + 1, message.indexOf("]"));
Expand Down

0 comments on commit 24703ad

Please sign in to comment.