com.atlassian.jira.functest.framework.suite
Interface SuiteTransform

All Superinterfaces:
com.google.common.base.Function<Iterable<org.junit.runner.Description>,Iterable<org.junit.runner.Description>>
All Known Implementing Classes:
SortByCategory

public interface SuiteTransform
extends com.google.common.base.Function<Iterable<org.junit.runner.Description>,Iterable<org.junit.runner.Description>>

A transform applied on a collection of test descriptions that results in a new, transformed list. The transform can be anything from sorting and filtering to a side effect without modifying the list of tests itself.

NOTE: Transforms are applied recursively over the tests in runner tree. Transforms that drill down the description tree (which reflects the runner tree) should only return top-level descriptions, as otherwise the tree structure of runners and corresponding descriptions will be broken. Another implication is that a single transform instance passed to the TransformingParentRunner will be executed multiple times on each branch of the runner/test tree that contains children. This has to be taken into consideration by complex transforms maintaining internal state. The order of applying a single transform over elements of the tree is top-down and first child to last (you may e.g. use sorting transform to sort the tree before you apply transforms that assume some particular order of evaluated tests).

NOTE: it is a requirement that the returned iterable must be a copy of the original (i.e. not a modifying 'view' of it), so that changes applied on it will not be reflected in the original. To that end the input iterable is effectively immutable.

Since:
v4.4
See Also:
TransformingParentRunner

Method Summary
 
Methods inherited from interface com.google.common.base.Function
apply, equals
 



Copyright © 2002-2014 Atlassian. All Rights Reserved.