@Override protected void displayOneOrMoreFailure(KoanSuiteResult result) { printSuggestion(result); String message = result.getMessage(); StringBuilder sb = new StringBuilder(); if (ApplicationSettings.isExpectationResultVisible()) { sb.append( message == null || message.length() == 0 || !result.displayIncompleteException() ? "" : new StringBuilder(Strings.getMessage("what_went_wrong")) .append(": ") .append(EOL) .append(message) .append(EOL)); } if (ApplicationSettings .isEncouragementEnabled()) { // added noise to console output, and no real value int totalKoans = result.getTotalNumberOfKoans(); int numberPassing = result.getNumberPassing(); sb.append(EOL) .append(Strings.getMessage("you_have_conquered")) .append(" ") .append(numberPassing) .append(" ") .append(Strings.getMessage("out_of")) .append(" ") .append(totalKoans) .append(" ") .append(totalKoans != 1 ? Strings.getMessage("koans") : Strings.getMessage("koan")) .append("! ") .append(Strings.getMessage("encouragement")); } displayMessage(sb.toString()); }
protected void printSuggestion(KoanSuiteResult result) { KoanMethod failedKoan = result.getFailingMethod(); StringBuilder sb = buildLessonLine(failedKoan); buildInvestigateLine(sb, result.getFailingCase(), failedKoan.getMethod().getName()); sb.append(EOL).append(EOL); buildLineClue(sb, result); displayMessage(sb.toString()); }
private StringBuilder buildLineClue(StringBuilder sb, KoanSuiteResult result) { if (result.getLineNumber() != null && result.getLineNumber().trim().length() != 0) { sb.append(Strings.getMessage("line")) .append(" ") .append(result.getLineNumber()) .append(" ") .append(Strings.getMessage("may_offer_clue")); } return sb; }
protected void displayPassingFailing(KoanSuiteResult result) { StringBuilder sb = new StringBuilder(); appendLabeledClassesList( Strings.getMessage("passing_suites") + ":", result.getPassingSuites(), sb); appendLabeledClassesList( Strings.getMessage("remaining_suites") + ":", result.getRemainingSuites(), sb); sb.append(EOL) .append("Edit & save a koan") .append( ApplicationSettings.isInteractive() ? " to test your progress, or enter '" + ApplicationSettings.getExitChar() + "' to exit." : ", then rerun to test your progress"); displayMessage(sb.toString()); }
protected void displayChart(KoanSuiteResult result) { StringBuilder sb = new StringBuilder(Strings.getMessage("level")) .append(": ") .append(result.getLevel()) .append(EOL); int numberPassing = result.getNumberPassing(); int totalKoans = result.getTotalNumberOfKoans(); double percentPassing = ((double) numberPassing) / ((double) totalKoans); int percentScaledToFifty = (int) (percentPassing * PROGRESS_BAR_WIDTH); sb.append(Strings.getMessage("progress")).append(" ").append(PROGRESS_BAR_START); for (int i = 0; i < PROGRESS_BAR_WIDTH; i++) { if (i < percentScaledToFifty) { sb.append(KoanConstants.COMPLETE_CHAR); } else { sb.append(KoanConstants.INCOMPLETE_CHAR); } } sb.append(PROGRESS_BAR_END); sb.append(' '); sb.append(numberPassing).append("/").append(totalKoans); displayMessage(sb.toString()); }