package com.insightfullogic.java8.examples.chapter8.lambdabehave.reporting;
import java.io.PrintStream;
public class ConsoleFormatter implements ReportFormatter {
@Override
public void format(Report report) {
report.suites().forEach(suite -> {
System.out.print(suite.getName());
System.out.println();
suite.specifications().forEach(this::printSpecification);
});
}
private void printSpecification(SpecificationReport specification) {
boolean isSuccess = specification.getResult() == Result.SUCCESS;
PrintStream out = isSuccess ? System.out : System.err;
out.print("\tshould ");
out.print(specification.getDescription());
if (!isSuccess) {
out.print("[");
out.print(specification.getMessage());
out.print("]");
}
out.println();
}
}