carbidecpp20devenv/plugins/org.eclipse.test.source_3.3.0.v20080507/src/org.junit4_4.3.1/junitsrc/org/junit/runner/manipulation/Filter.java
changeset 1 82d1d1de1a01
equal deleted inserted replaced
-1:000000000000 1:82d1d1de1a01
       
     1 package org.junit.runner.manipulation;
       
     2 
       
     3 import org.junit.runner.Description;
       
     4 import org.junit.runner.Request;
       
     5 import org.junit.runner.Runner;
       
     6 
       
     7 /**
       
     8  * The canonical case of filtering is when you want to run a single test method in a class. Rather
       
     9  * than introduce runner API just for that one case, JUnit provides a general filtering mechanism.
       
    10  * If you want to filter the tests to be run, extend <code>Filter</code> and apply an instance of
       
    11  * your filter to the {@link org.junit.runner.Request} before running it (see 
       
    12  * {@link org.junit.runner.JUnitCore#run(Request)}. Alternatively, apply a <code>Filter</code> to 
       
    13  * a {@link org.junit.runner.Runner} before running tests (for example, in conjunction with 
       
    14  * {@link org.junit.runner.RunWith}.
       
    15  */
       
    16 public abstract class Filter {
       
    17 	/**
       
    18 	 * A null <code>Filter</code> that passes all tests through.
       
    19 	 */
       
    20 	public static Filter ALL= new Filter() {
       
    21 		@Override
       
    22 		public boolean shouldRun(Description description) {
       
    23 			return true;
       
    24 		}
       
    25 
       
    26 		@Override
       
    27 		public String describe() {
       
    28 			return "all tests";
       
    29 		}
       
    30 	};
       
    31 
       
    32 	/**
       
    33 	 * @param description the description of the test to be run
       
    34 	 * @return <code>true</code> if the test should be run
       
    35 	 */
       
    36 	public abstract boolean shouldRun(Description description);
       
    37 
       
    38 	/**
       
    39 	 * Invoke with a {@link org.junit.runner.Runner} to cause all tests it intends to run
       
    40 	 * to first be checked with the filter. Only those that pass the filter will be run.
       
    41 	 * @param runner the runner to be filtered by the receiver
       
    42 	 * @throws NoTestsRemainException if the receiver removes all tests
       
    43 	 */
       
    44 	public void apply(Runner runner) throws NoTestsRemainException {
       
    45 		if (runner instanceof Filterable) {
       
    46 			Filterable filterable= (Filterable)runner;
       
    47 			filterable.filter(this);
       
    48 		}
       
    49 	}
       
    50 
       
    51 	/**
       
    52 	 * Returns a textual description of this Filter
       
    53 	 * @return a textual description of this Filter
       
    54 	 */
       
    55 	public abstract String describe();
       
    56 }