Ejemplo n.º 1
0
  void checkOutput(String msg) {
    boolean shouldPrintSource =
        posKind == PositionKind.POS
            && xdiagsSource != XDiagsSource.NO_SOURCE
            && (xdiagsSource == XDiagsSource.SOURCE || outputKind == OutputKind.BASIC);
    String errorLine =
        posKind.getOutput(outputKind)
            + errorKind.getOutput(outputKind, summaryIndent, detailsIndent);
    if (xdiagsCompact != XDiagsCompact.COMPACT)
      errorLine +=
          multiKind.getOutput(
              outputKind, errorKind, multiPolicy, summaryIndent, detailsIndent, subdiagsIndent);
    String[] lines = errorLine.split("\n");
    if (xdiagsCompact == XDiagsCompact.COMPACT) {
      errorLine = lines[0];
      lines = new String[] {errorLine};
    }
    if (shouldPrintSource) {
      if (sourceLineKind.isAfterSummary()) {
        String sep = "\n";
        if (lines.length == 1) {
          errorLine += "\n";
          sep = "";
        }
        errorLine =
            errorLine.replaceFirst(
                "\n",
                Matcher.quoteReplacement(
                    xdiagsSource.getOutput(caretKind, sourceIndent, outputKind) + sep));
      } else errorLine += xdiagsSource.getOutput(caretKind, sourceIndent, outputKind);
    }

    if (!msg.equals(errorLine)) {
      printInfo(msg, errorLine);
      throw new AssertionError("errors were found");
    }
  }