/******************************************************************************* * Copyright (c) 2000, 2012 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.debug.jdi.tests; import java.util.Enumeration; import junit.framework.AssertionFailedError; import junit.framework.Test; import junit.framework.TestFailure; import junit.framework.TestResult; /** * Tests a <code>TestResult</code> */ public class TextTestResult extends TestResult { /** * @see junit.framework.TestResult#addError(junit.framework.Test, java.lang.Throwable) */ @Override public synchronized void addError(Test test, Throwable t) { super.addError(test, t); System.out.println("E"); } /** * @see junit.framework.TestResult#addFailure(junit.framework.Test, junit.framework.AssertionFailedError) */ @Override public synchronized void addFailure(Test test, AssertionFailedError t) { super.addFailure(test, t); System.out.print("F"); } /** * Prints failures to the standard output */ public synchronized void print() { printHeader(); printErrors(); printFailures(); } /** * Prints the errors to the standard output */ public void printErrors() { if (errorCount() != 0) { if (errorCount() == 1) System.out.println("There was " + errorCount() + " error:"); else System.out.println("There were " + errorCount() + " errors:"); int i = 1; for (Enumeration<?> e = errors(); e.hasMoreElements(); i++) { TestFailure failure = (TestFailure) e.nextElement(); System.out.println(i + ") " + failure.failedTest()); failure.thrownException().printStackTrace(); System.out.println(); } } } /** * Prints failures to the standard output */ public void printFailures() { if (failureCount() != 0) { if (failureCount() == 1) System.out.println("There was " + failureCount() + " failure:"); else System.out.println( "There were " + failureCount() + " failures:"); int i = 1; for (Enumeration<?> e = failures(); e.hasMoreElements(); i++) { TestFailure failure = (TestFailure) e.nextElement(); System.out.print(i + ") " + failure.failedTest()); Throwable t = failure.thrownException(); if (t.getMessage() != null) System.out.println(" \"" + t.getMessage() + "\""); else { System.out.println(); failure.thrownException().printStackTrace(); } } } } /** * Prints the header of the report */ public void printHeader() { if (wasSuccessful()) { System.out.println(); System.out.print("OK"); System.out.println(" (" + runCount() + " tests)"); } else { System.out.println(); System.out.println("!!!FAILURES!!!"); System.out.println("Test Results:"); System.out.println( "Run: " + runCount() + " Failures: " + failureCount() + " Errors: " + errorCount()); } } /** * @see junit.framework.TestResult#startTest(junit.framework.Test) */ @Override public synchronized void startTest(Test test) { super.startTest(test); System.out.print("."); } }