1 package org.junit.internal.requests;
2
3 import org.junit.internal.runners.ErrorReportingRunner;
4 import org.junit.runner.Request;
5 import org.junit.runner.Runner;
6 import org.junit.runner.manipulation.Filter;
7 import org.junit.runner.manipulation.NoTestsRemainException;
8
9
10
11
12 public final class FilterRequest extends Request {
13 private final Request request;
14
15
16
17
18
19 private final Filter fFilter;
20
21
22
23
24
25
26
27
28 public FilterRequest(Request request, Filter filter) {
29 this.request = request;
30 this.fFilter = filter;
31 }
32
33 @Override
34 public Runner getRunner() {
35 try {
36 Runner runner = request.getRunner();
37 fFilter.apply(runner);
38 return runner;
39 } catch (NoTestsRemainException e) {
40 return new ErrorReportingRunner(Filter.class, new Exception(String
41 .format("No tests found matching %s from %s", fFilter
42 .describe(), request.toString())));
43 }
44 }
45 }