001    package junit.extensions;
002    
003    import junit.framework.Assert;
004    import junit.framework.Test;
005    import junit.framework.TestResult;
006    
007    /**
008     * A Decorator for Tests. Use TestDecorator as the base class for defining new
009     * test decorators. Test decorator subclasses can be introduced to add behaviour
010     * before or after a test is run.
011     */
012    @SuppressWarnings("deprecation")
013    public class TestDecorator extends Assert implements Test {
014        protected Test fTest;
015    
016        public TestDecorator(Test test) {
017            fTest = test;
018        }
019    
020        /**
021         * The basic run behaviour.
022         */
023        public void basicRun(TestResult result) {
024            fTest.run(result);
025        }
026    
027        public int countTestCases() {
028            return fTest.countTestCases();
029        }
030    
031        public void run(TestResult result) {
032            basicRun(result);
033        }
034    
035        @Override
036        public String toString() {
037            return fTest.toString();
038        }
039    
040        public Test getTest() {
041            return fTest;
042        }
043    }