package junit.extensions;

import junit.framework.* ;

/**
 * A Decorator for Tests. Use TestDecorator as the base class
 * for defining new test decorators. Test decorator subclasses
 * can be introduced to add behaviour before or after a test
 * is run.
 *
 */
public class TestDecorator extends Assert implements Test {
        protected Test fTest;

        public TestDecorator(Test test) {
                fTest = test;
        }

        /**
         * The basic run behaviour.
         */
        public void basicRun(TestResult result) {
                fTest.run(result);
        }

        public int countTestCases() {
                return fTest.countTestCases();
        }

        public void run(TestResult result) {
                basicRun(result);
        }

        public String toString() {
                return fTest.toString();
        }

        public Test getTest() {
                return fTest;
        }
}