Home | History | Annotate | Download | only in extensions
      1 package junit.extensions;
      2 
      3 import junit.framework.*;
      4 
      5 /**
      6  * A Decorator that runs a test repeatedly.
      7  *
      8  */
      9 public class RepeatedTest extends  TestDecorator {
     10 	private int fTimesRepeat;
     11 
     12 	public RepeatedTest(Test test, int repeat) {
     13 		super(test);
     14 		if (repeat < 0)
     15 			throw new IllegalArgumentException("Repetition count must be > 0");
     16 		fTimesRepeat= repeat;
     17 	}
     18 	public int countTestCases() {
     19 		return super.countTestCases()*fTimesRepeat;
     20 	}
     21 	public void run(TestResult result) {
     22 		for (int i= 0; i < fTimesRepeat; i++) {
     23 			if (result.shouldStop())
     24 				break;
     25 			super.run(result);
     26 		}
     27 	}
     28 	public String toString() {
     29 		return super.toString()+"(repeated)";
     30 	}
     31 }
     32