001package org.junit.runner.manipulation;
002
003/**
004 * Interface for runners that allow ordering of tests.
005 *
006 * <p>Beware of using this interface to cope with order dependencies between tests.
007 * Tests that are isolated from each other are less expensive to maintain and
008 * can be run individually.
009 *
010 * @since 4.13
011 */
012public interface Orderable extends Sortable {
013
014    /**
015     * Orders the tests using <code>orderer</code>
016     *
017     * @throws InvalidOrderingException if orderer does something invalid (like remove or add
018     * children)
019     */
020    void order(Orderer orderer) throws InvalidOrderingException;
021}