158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotpackage junit.extensions;
258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotimport junit.framework.Assert;
458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotimport junit.framework.Test;
558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotimport junit.framework.TestResult;
658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot/**
858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * A Decorator for Tests. Use TestDecorator as the base class
958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * for defining new test decorators. Test decorator subclasses
1058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * can be introduced to add behaviour before or after a test
1158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * is run.
1258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot *
1358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot */
1458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotpublic class TestDecorator extends Assert implements Test {
1558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	protected Test fTest;
1658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
1758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	public TestDecorator(Test test) {
1858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		fTest= test;
1958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	}
2058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	/**
2158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	 * The basic run behaviour.
2258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	 */
2358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	public void basicRun(TestResult result) {
2458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		fTest.run(result);
2558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	}
2658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	public int countTestCases() {
2758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		return fTest.countTestCases();
2858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	}
2958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	public void run(TestResult result) {
3058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		basicRun(result);
3158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	}
3258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
3358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	public String toString() {
3458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		return fTest.toString();
3558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	}
3658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
3758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	public Test getTest() {
3858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		return fTest;
3958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	}
4058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot}