carbidecpp20devenv/plugins/org.eclipse.test.source_3.3.0.v20080507/src/org.junit4_4.3.1/junitsrc/junit/extensions/RepeatedTest.java
author cawthron
Wed, 18 Mar 2009 17:21:00 -0500
changeset 1 82d1d1de1a01
permissions -rw-r--r--
import Carbide.c++
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     1
package junit.extensions;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     2
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     3
import junit.framework.Test;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     4
import junit.framework.TestResult;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     5
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     6
/**
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     7
 * A Decorator that runs a test repeatedly.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     8
 * 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     9
 */
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    10
public class RepeatedTest extends TestDecorator {
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    11
	private int fTimesRepeat;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    12
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    13
	public RepeatedTest(Test test, int repeat) {
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    14
		super(test);
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    15
		if (repeat < 0)
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    16
			throw new IllegalArgumentException("Repetition count must be >= 0");
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    17
		fTimesRepeat= repeat;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    18
	}
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    19
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    20
	@Override
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    21
	public int countTestCases() {
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    22
		return super.countTestCases() * fTimesRepeat;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    23
	}
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    24
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    25
	@Override
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    26
	public void run(TestResult result) {
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    27
		for (int i= 0; i < fTimesRepeat; i++) {
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    28
			if (result.shouldStop())
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    29
				break;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    30
			super.run(result);
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    31
		}
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    32
	}
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    33
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    34
	@Override
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    35
	public String toString() {
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    36
		return super.toString() + "(repeated)";
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    37
	}
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    38
}