@PublicAPI(usage = ACCESS)
    public FailureReport getFailureReport() {
        ImmutableList<String> result = violations.stream()
                .flatMap(event -> event.getDescriptionLines().stream())
                .sorted(natural())
                .collect(toImmutableList());
        FailureMessages failureMessages = new FailureMessages(result, informationAboutNumberOfViolations);
        return new FailureReport(rule, priority, failureMessages);
    }
@Test
    public void properties_are_passed_to_FailureReport() {
        EvaluationResult result = new EvaluationResult(
                hasDescription("special description"),
                events("first bummer", "second bummer"),
                Priority.HIGH);

        assertThat(result.getFailureReport().getDetails()).containsExactly("first bummer", "second bummer");
        assertThat(result.getFailureReport().toString())
                .containsPattern("Priority.*HIGH")
                .contains("special description")
                .contains("first bummer")
                .contains("second bummer");
    }