diff --git a/smithy-model/src/main/java/software/amazon/smithy/model/validation/testrunner/SmithyTestCase.java b/smithy-model/src/main/java/software/amazon/smithy/model/validation/testrunner/SmithyTestCase.java index b721e4811f2..1246b0f7107 100644 --- a/smithy-model/src/main/java/software/amazon/smithy/model/validation/testrunner/SmithyTestCase.java +++ b/smithy-model/src/main/java/software/amazon/smithy/model/validation/testrunner/SmithyTestCase.java @@ -116,7 +116,7 @@ public Result createResult(ValidatedResult validatedResult) { .filter(event -> !isModelDeprecationEvent(event)) .collect(Collectors.toList()); - return new SmithyTestCase.Result(getModelLocation(), unmatchedEvents, extraEvents); + return new SmithyTestCase.Result(getModelLocation(), unmatchedEvents, extraEvents, actualEvents); } private static boolean compareEvents(ValidationEvent expected, ValidationEvent actual) { @@ -197,15 +197,18 @@ public static final class Result { private final String modelLocation; private final Collection unmatchedEvents; private final Collection extraEvents; + private final Collection actualEvents; Result( String modelLocation, Collection unmatchedEvents, - Collection extraEvents + Collection extraEvents, + Collection actualEvents ) { this.modelLocation = modelLocation; this.unmatchedEvents = Collections.unmodifiableCollection(new TreeSet<>(unmatchedEvents)); this.extraEvents = Collections.unmodifiableCollection(new TreeSet<>(extraEvents)); + this.actualEvents = Collections.unmodifiableCollection(new TreeSet<>(actualEvents)); } @Override @@ -236,6 +239,13 @@ public String toString() { builder.append('\n'); } + builder.append("\nActual events\n" + + "-------------\n"); + for (ValidationEvent event : actualEvents) { + builder.append(event.toString().replace("\n", "\\n")).append("\n"); + } + builder.append('\n'); + return builder.toString(); } diff --git a/smithy-model/src/test/java/software/amazon/smithy/model/validation/testrunner/SmithyTestCaseTest.java b/smithy-model/src/test/java/software/amazon/smithy/model/validation/testrunner/SmithyTestCaseTest.java index 05da96569e1..45783883704 100644 --- a/smithy-model/src/test/java/software/amazon/smithy/model/validation/testrunner/SmithyTestCaseTest.java +++ b/smithy-model/src/test/java/software/amazon/smithy/model/validation/testrunner/SmithyTestCaseTest.java @@ -119,7 +119,8 @@ public void newlinesAreBetweenEventsWhenFormatting() { SmithyTestCase.Result result = new SmithyTestCase.Result( "/foo/bar.json", ListUtils.of(e1, e2), - ListUtils.of(e1, e2)); + ListUtils.of(e1, e2), + ListUtils.of()); assertThat(result.toString(), equalTo("=======================\n" @@ -136,6 +137,11 @@ public void newlinesAreBetweenEventsWhenFormatting() { + "Encountered unexpected events\n" + "-----------------------------\n" + "[DANGER] foo.baz#Bar: a | FooBar N/A:0:0\n" - + "[DANGER] foo.baz#Bar: b | FooBar N/A:0:0\n\n")); + + "[DANGER] foo.baz#Bar: b | FooBar N/A:0:0\n" + + "\n" + + "\n" + + "Actual events\n" + + "-------------\n" + + "\n")); } }