Env tests: added test for UT-runner. rubymine/108.125
authorDmitry Trofimov <dmitry.trofimov@jetbrains.com>
Thu, 5 May 2011 17:08:54 +0000 (21:08 +0400)
committerDmitry Trofimov <dmitry.trofimov@jetbrains.com>
Thu, 5 May 2011 17:15:15 +0000 (21:15 +0400)
platform/testRunner/src/com/intellij/execution/testframework/Filter.java

index 08715b0b61838b18b951f13bcd428c130c59b17c..25c580b8b493ca6ceea528192dbcc474d9221f00 100644 (file)
  */
 package com.intellij.execution.testframework;
 
+import org.jetbrains.annotations.Nullable;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-public abstract class Filter {
+public abstract class Filter<T extends AbstractTestProxy> {
   /**
    * All instances (and subclasses's instances) should be singletons.
    *
@@ -28,18 +30,19 @@ public abstract class Filter {
   protected Filter() {
   }
 
-  public abstract boolean shouldAccept(AbstractTestProxy test);
+  public abstract boolean shouldAccept(T test);
 
-  public List<AbstractTestProxy> select(final List<? extends AbstractTestProxy> tests) {
-    final ArrayList<AbstractTestProxy> result = new ArrayList<AbstractTestProxy>();
-    for (final AbstractTestProxy test : tests) {
+  public List<T> select(final List<? extends T> tests) {
+    final List<T> result = new ArrayList<T>();
+    for (final T test : tests) {
       if (shouldAccept(test)) result.add(test);
     }
     return result;
   }
 
-  public AbstractTestProxy detectIn(final Collection<? extends AbstractTestProxy> collection) {
-    for (final AbstractTestProxy test : collection) {
+  @Nullable
+  public T detectIn(final Collection<? extends T> collection) {
+    for (final T test : collection) {
       if (shouldAccept(test)) return test;
     }
     return null;
@@ -75,6 +78,12 @@ public abstract class Filter {
     }
   };
 
+  public static final Filter PASSED = new Filter() {
+    public boolean shouldAccept(final AbstractTestProxy test) {
+      return test.isPassed();
+    }
+  };
+
   public static final Filter FAILED_OR_INTERRUPTED = new Filter() {
     public boolean shouldAccept(final AbstractTestProxy test) {
       return test.isInterrupted() || test.isDefect();