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)
|
List<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);
E
- the iterable elements type.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);
E
- the array elements type.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–2019 AssertJ. All rights reserved.