/******************************************************************************* * Copyright (c) 2000, 2014 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.jdt.core.tests.junit.extension; import java.util.*; import junit.framework.*; @SuppressWarnings({ "unchecked", "rawtypes" }) public class TestResult extends junit.framework.TestResult { TestCase currentTest; /** * TestResult constructor comment. */ public TestResult() { super(); } /** * Adds an error to the list of errors. The passed in exception * caused the error. */ public synchronized void addError(Test test, Throwable t) { TestFailure testFailure= new TestFailure(test, t); this.fErrors.add(testFailure); for (Iterator e= cloneListeners().iterator(); e.hasNext(); ) { ((TestListener)e.next()).addError(test, testFailure); } } /** * Adds a failure to the list of failures. The passed in exception * caused the failure. */ public synchronized void addFailure(Test test, AssertionFailedError t) { TestFailure testFailure= new TestFailure(test, t); this.fFailures.add(testFailure); for (Iterator e= cloneListeners().iterator(); e.hasNext(); ) { ((TestListener)e.next()).addFailure(test, testFailure); } } /** * Returns a copy of the listeners. */ private synchronized List cloneListeners() { List result = new ArrayList(); result.addAll(this.fListeners); return result; } protected void run(final TestCase test) { this.currentTest = test; super.run(test); this.currentTest = null; } public synchronized void stop() { super.stop(); if (this.currentTest != null && this.currentTest instanceof StopableTestCase) { ((StopableTestCase)this.currentTest).stop(); } } }