aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/junit/internal/requests/OrderingRequest.java
blob: 441e595a368094f88eba22dff7ba44a061e09c41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package org.junit.internal.requests;

import org.junit.internal.runners.ErrorReportingRunner;
import org.junit.runner.Request;
import org.junit.runner.Runner;
import org.junit.runner.manipulation.InvalidOrderingException;
import org.junit.runner.manipulation.Ordering;

/** @since 4.13 */
public class OrderingRequest extends MemoizingRequest {
    private final Request request;
    private final Ordering ordering;

    public OrderingRequest(Request request, Ordering ordering) {
        this.request = request;
        this.ordering = ordering;
    }

    @Override
    protected Runner createRunner() {
        Runner runner = request.getRunner();
        try {
            ordering.apply(runner);
        } catch (InvalidOrderingException e) {
            return new ErrorReportingRunner(ordering.getClass(), e);
        }
        return runner;
    }
}