E - the type of element of group to filter.public class Filters<E> extends Object
Iterable or array according to the specified filter criteria.
Filter criteria can be expressed either by a Condition or a pseudo filter language on elements properties.
With fluent filter language on element properties/fields :
assertThat(filter(players).with("pointsPerGame").greaterThan(20)
.and("assistsPerGame").greaterThan(7).get())
.containsOnly(james, rose);
With Condition :
List<Player> players = ...;
Condition<Player> potentialMVP = new Condition<Player>("is a possible MVP"){
public boolean matches(Player player) {
return player.getPointsPerGame() > 20 && player.getAssistsPerGame() > 7;
};
};
// use filter static method to build Filters
assertThat(filter(players).being(potentialMVP).get()).containsOnly(james, rose);| Modifier and Type | Method and Description |
|---|---|
Filters<E> |
and(String propertyOrFieldName)
Alias of
with(String) for synthetic sugar to write things like : |
Filters<E> |
being(Condition<? super E> condition)
Filter the underlying group, keeping only elements satisfying the given
Condition.Same as having(Condition) - pick the method you prefer to have the most readable code. |
Filters<E> |
equalsTo(Object propertyValue)
Filters the underlying iterable to keep object with property (specified by
with(String)) equals to
given
value. |
static <E> Filters<E> |
filter(E[] array)
Creates a new
with the array to filter. |
static <E> Filters<E> |
filter(Iterable<E> iterable)
|
Iterable<E> |
get()
Returns the resulting filtered Iterable<E> (even if the constructor parameter type was an array).
|
Filters<E> |
having(Condition<? super E> condition)
Filter the underlying group, keeping only elements satisfying the given
Condition.Same as being(Condition) - pick the method you prefer to have the most readable code. |
Filters<E> |
in(Object... propertyValues)
Filters the underlying iterable to keep object with property (specified by
with(String)) equals to
one of the
given values. |
Filters<E> |
notEqualsTo(Object propertyValue)
Filters the underlying iterable to keep object with property (specified by
with(String)) not equals
to given
value. |
Filters<E> |
notIn(Object... propertyValues)
Filters the underlying iterable to keep object with property (specified by
with(String)) not in the
given
values. |
Filters<E> |
with(String propertyOrFieldName)
Sets the name of the property used for filtering, it may be a nested property like
"adress.street.name". |
Filters<E> |
with(String propertyOrFieldName,
Object propertyValue)
Filter the underlying group, keeping only elements with a property equals to given value.
|
public static <E> Filters<E> filter(Iterable<E> iterable)
Filters with the Iterable to filter.
Chain this call to express filter criteria either by a Condition or a pseudo filter language on elements
properties or fields (reading private fields is supported but disabled by calling
Assertions.setAllowExtractingPrivateFields(false).
Note that the given Iterable is not modified, the filters are performed on a copy.
With fluent filter language on element properties/fields :
List<Player> players = ...;
assertThat(filter(players).with("pointsPerGame").greaterThan(20)
.and("assistsPerGame").greaterThan(7).get())
.containsOnly(james, rose);
With Condition :
public boolean matches(Player player) {
return player.getPointsPerGame() > 20 && player.getAssistsPerGame() > 7;
};
};
// use filter static method to build Filters
assertThat(filter(players).being(potentialMVP).get()).containsOnly(james, rose);iterable - the Iterable to filter.Filters.NullPointerException - if the given iterable is null.public static <E> Filters<E> filter(E[] array)
Filters with the array to filter.
Chain this call to express filter criteria either by a Condition or a pseudo filter language on elements
properties.
Note that the given array is not modified, the filters are performed on an Iterable copy of the array.
With Condition :
Player[] players = ...;
assertThat(filter(players).with("pointsPerGame").greaterThan(20)
.and("assistsPerGame").greaterThan(7).get())
.containsOnly(james, rose);
With Condition :
Condition<Player> potentialMVP = new Condition<Player>("is a possible MVP"){
public boolean matches(Player player) {
return player.getPointsPerGame() > 20 && player.getAssistsPerGame() > 7;
};
};
// use filter static method to build Filters
assertThat(filter(players).being(potentialMVP).get()).containsOnly(james, rose);array - the array to filter.Filters.NullPointerException - if the given array is null.public Filters<E> being(Condition<? super E> condition)
Condition.having(Condition) - pick the method you prefer to have the most readable code.
List<Player> players = ...;
Condition<Player> potentialMVP = new Condition<Player>("is a possible MVP") {
public boolean matches(Player player) {
return player.getPointsPerGame() > 20 && player.getAssistsPerGame() > 7;
};
};
// use filter static method to build Filters
assertThat(filter(players).being(potentialMVP).get()).containsOnly(james, rose);condition - the filter Condition.Filters to chain other filter operations.IllegalArgumentException - if the given condition is null.public Filters<E> having(Condition<? super E> condition)
Condition.being(Condition) - pick the method you prefer to have the most readable code.
List<Player> players = ...;
Condition<Player> mvpStats = new Condition<Player>("is a possible MVP") {
public boolean matches(Player player) {
return player.getPointsPerGame() > 20 && player.getAssistsPerGame() > 7;
};
};
// use filter static method to build Filters
assertThat(filter(players).having(mvpStats).get()).containsOnly(james, rose);condition - the filter Condition.Filters to chain other filter operations.IllegalArgumentException - if the given condition is null.public Filters<E> with(String propertyOrFieldName, Object propertyValue)
Let's, for example, filter Employees with name "Alex" :
filter(employees).with("name", "Alex").get();
which is shortcut of :
filter(employees).with("name").equalsTo("Alex").get();propertyOrFieldName - the name of the property/field whose value will compared to given value. It may be a
nested property.propertyValue - the expected property value.Filters to chain other filter operations.IntrospectionError - if an element in the given Iterable does not have a property with a given
propertyOrFieldName.IllegalArgumentException - if the given propertyOrFieldName is null.public Filters<E> with(String propertyOrFieldName)
"adress.street.name".
The typical usage is to chain this call with a comparison method, for example :
filter(employees).with("name").equalsTo("Alex").get();propertyOrFieldName - the name of the property/field used for filtering. It may be a nested property.Filters to chain other filter operation.IllegalArgumentException - if the given propertyOrFieldName is null.public Filters<E> and(String propertyOrFieldName)
with(String) for synthetic sugar to write things like :
filter(employees).with("name").equalsTo("Alex").and("job").notEqualsTo("lawyer").get();propertyOrFieldName - the name of the property/field used for filtering. It may be a nested property.Filters to chain other filter operation.IllegalArgumentException - if the given propertyOrFieldName is null.public Filters<E> equalsTo(Object propertyValue)
with(String)) equals to
given
value.
Typical usage :
filter(employees).with("name").equalsTo("Luke").get();propertyValue - the filter value.Filters to chain other filter operation.IllegalArgumentException - if the property name to filter on has not been set.public Filters<E> notEqualsTo(Object propertyValue)
with(String)) not equals
to given
value.
Typical usage :
filter(employees).with("name").notEqualsTo("Vader").get();propertyValue - the filter value.Filters to chain other filter operation.IllegalArgumentException - if the property name to filter on has not been set.public Filters<E> in(Object... propertyValues)
with(String)) equals to
one of the
given values.
Typical usage :
filter(players).with("team").in("Bulls", "Lakers").get();propertyValues - the filter values.Filters to chain other filter operation.IllegalArgumentException - if the property name to filter on has not been set.public Filters<E> notIn(Object... propertyValues)
with(String)) not in the
given
values.
Typical usage :
filter(players).with("team").notIn("Heat", "Lakers").get();propertyValues - the filter values.Filters to chain other filter operation.IllegalArgumentException - if the property name to filter on has not been set.Copyright © 2014–2016 AssertJ. All rights reserved.