SELF
- the "self" type of this assertion class. Please read "Emulating 'self types' using Java Generics to simplify fluent API implementation"
for more details.ELEMENT
- the type of elements of the "actual" value.public interface ObjectEnumerableAssert<SELF extends ObjectEnumerableAssert<SELF,ELEMENT>,ELEMENT> extends EnumerableAssert<SELF,ELEMENT>
Modifier and Type | Method and Description |
---|---|
SELF |
allMatch(Predicate<? super ELEMENT> predicate)
Verifies that all the elements of actual match the given
Predicate . |
SELF |
allMatch(Predicate<? super ELEMENT> predicate,
String predicateDescription)
Verifies that all the elements of actual match the given
Predicate . |
SELF |
allSatisfy(Consumer<? super ELEMENT> requirements)
Verifies that all the elements satisfy given requirements expressed as a
Consumer . |
SELF |
anyMatch(Predicate<? super ELEMENT> predicate)
Verifies whether any elements match the provided
Predicate . |
SELF |
anySatisfy(Consumer<? super ELEMENT> requirements)
Verifies that at least one element satisfies the given requirements expressed as a
Consumer . |
SELF |
are(Condition<? super ELEMENT> condition)
Verifies that each element value satisfies the given condition.
|
SELF |
areAtLeast(int n,
Condition<? super ELEMENT> condition)
Verifies that there are at least n elements in the actual group satisfying the given condition.
|
SELF |
areAtLeastOne(Condition<? super ELEMENT> condition)
Verifies that there is at least one element in the actual group satisfying the given condition.
|
SELF |
areAtMost(int n,
Condition<? super ELEMENT> condition)
Verifies that there are at most n elements in the actual group satisfying the given condition.
|
SELF |
areExactly(int n,
Condition<? super ELEMENT> condition)
Verifies that there are exactly n elements in the actual group satisfying the given condition.
|
SELF |
areNot(Condition<? super ELEMENT> condition)
Verifies that each element value does not satisfy the given condition.
|
SELF |
contains(ELEMENT... values)
Verifies that the actual group contains the given values, in any order.
|
SELF |
containsAll(Iterable<? extends ELEMENT> iterable)
Verifies that the actual group contains all the elements of given
Iterable , in any order. |
SELF |
containsAnyElementsOf(Iterable<ELEMENT> iterable)
|
SELF |
containsAnyOf(ELEMENT... values)
Verifies that the actual
Iterable contains at least one of the given values. |
SELF |
containsExactly(ELEMENT... values)
Verifies that the actual group contains exactly the given values and nothing else, in order.
This assertion should only be used with groups that have a consistent iteration order (i.e. |
SELF |
containsExactlyElementsOf(Iterable<? extends ELEMENT> iterable)
Same as
containsExactly(Object...) but handle the Iterable to array conversion : verifies that
actual contains exactly the elements of the given iterable and nothing else in the same order. |
SELF |
containsExactlyInAnyOrder(ELEMENT... values)
Verifies that the actual group contains exactly the given values and nothing else, in any order.
|
SELF |
containsExactlyInAnyOrderElementsOf(Iterable<? extends ELEMENT> values)
Verifies that the actual group contains exactly the given values and nothing else, in any order.
|
SELF |
containsNull()
Verifies that the actual group contains at least a null element.
|
SELF |
containsOnly(ELEMENT... values)
Verifies that the actual group contains only the given values and nothing else, in any order and ignoring duplicates (i.e.
|
SELF |
containsOnlyElementsOf(Iterable<? extends ELEMENT> iterable)
Same semantic as
containsOnly(Object[]) : verifies that actual contains all the elements of the given
iterable and nothing else, in any order and ignoring duplicates (i.e. |
SELF |
containsOnlyNulls()
Verifies that the actual group contains only null elements and nothing else.
|
SELF |
containsOnlyOnce(ELEMENT... values)
Verifies that the actual group contains the given values only once.
|
SELF |
containsSequence(ELEMENT... sequence)
Verifies that the actual group contains the given sequence in the correct order and without extra values between the sequence values.
|
SELF |
containsSequence(Iterable<? extends ELEMENT> sequence)
Verifies that the actual group contains the given sequence in the correct order and without extra values between the sequence values.
|
SELF |
containsSubsequence(ELEMENT... sequence)
Verifies that the actual group contains the given subsequence in the correct order (possibly with other values between them).
|
SELF |
containsSubsequence(Iterable<? extends ELEMENT> sequence)
Verifies that the actual group contains the given subsequence in the correct order (possibly with other values between them).
|
SELF |
doesNotContain(ELEMENT... values)
Verifies that the actual group does not contain the given values.
|
SELF |
doesNotContainAnyElementsOf(Iterable<? extends ELEMENT> iterable)
Verifies that actual does not contain any elements of the given
Iterable (i.e. |
SELF |
doesNotContainNull()
Verifies that the actual group does not contain null elements.
|
SELF |
doesNotContainSequence(ELEMENT... sequence)
Verifies that the actual group does not contain the given sequence,
a sequence is defined by an ordered group of values without extra values between them.
|
SELF |
doesNotContainSequence(Iterable<? extends ELEMENT> sequence)
Verifies that the actual group does not contain the given sequence,
a sequence is defined by an ordered group of values without extra values between them.
|
SELF |
doesNotContainSubsequence(ELEMENT... sequence)
Verifies that the actual group does not contain the given subsequence,
a subsequence is defined by an ordered group of values with possibly extra values between them.
|
SELF |
doesNotContainSubsequence(Iterable<? extends ELEMENT> sequence)
Verifies that the actual group does not contain the given subsequence,
a subsequence is defined by an ordered group of values with possibly extra values between them.
|
SELF |
doesNotHaveAnyElementsOfTypes(Class<?>... unexpectedTypes)
Verifies that all the elements in the actual
Object group do not belong to the specified types (including subclasses). |
SELF |
doesNotHaveDuplicates()
Verifies that the actual group does not contain duplicates.
|
SELF |
doNotHave(Condition<? super ELEMENT> condition)
Verifies that all elements do not satisfy the given condition.
|
SELF |
endsWith(ELEMENT[] sequence)
Verifies that the actual group ends with the given sequence of objects, without any other objects between them.
|
SELF |
endsWith(ELEMENT first,
ELEMENT... sequence)
Verifies that the actual group ends with the given sequence of objects, without any other objects between them.
|
SELF |
hasAtLeastOneElementOfType(Class<?> expectedType)
Verifies that at least one element in the actual
Object group has the specified type (matching
includes subclasses of the given type). |
SELF |
hasOnlyElementsOfType(Class<?> expectedType)
Verifies that all the elements in the actual
Object group belong to the specified type (matching includes
subclasses of the given type). |
SELF |
hasOnlyElementsOfTypes(Class<?>... types)
Verifies that all elements of the actual group are instances of the given types.
|
SELF |
hasSameElementsAs(Iterable<? extends ELEMENT> iterable)
An alias of
containsOnlyElementsOf(Iterable) : verifies that actual contains all the elements of the
given iterable and nothing else, in any order. |
SELF |
have(Condition<? super ELEMENT> condition)
Verifies that all elements satisfy the given condition.
|
SELF |
haveAtLeast(int n,
Condition<? super ELEMENT> condition)
Verifies that there are at least n elements in the actual group satisfying the given condition.
|
SELF |
haveAtLeastOne(Condition<? super ELEMENT> condition)
Verifies that there is at least one element in the actual group satisfying the given condition.
|
SELF |
haveAtMost(int n,
Condition<? super ELEMENT> condition)
Verifies that there are at most n elements in the actual group satisfying the given condition.
|
SELF |
haveExactly(int n,
Condition<? super ELEMENT> condition)
Verifies that there are exactly n elements in the actual group satisfying the given condition.
|
SELF |
isSubsetOf(ELEMENT... values)
Verifies that all the elements of actual are present in the given values.
|
SELF |
isSubsetOf(Iterable<? extends ELEMENT> values)
Verifies that all the elements of actual are present in the given
Iterable . |
SELF |
noneMatch(Predicate<? super ELEMENT> predicate)
Verifies that no elements match the given
Predicate . |
SELF |
startsWith(ELEMENT... sequence)
Verifies that the actual group starts with the given sequence of objects, without any other objects between them.
|
hasSameSizeAs, hasSameSizeAs, hasSize, isEmpty, isNotEmpty, isNullOrEmpty, usingDefaultElementComparator, usingElementComparator
SELF contains(ELEMENT... values)
Example:
Iterable<String> abc = newArrayList("a", "b", "c");
// assertions will pass
assertThat(abc).contains("b", "a");
assertThat(abc).contains("b", "a", "b");
// assertion will fail
assertThat(abc).contains("d");
If you want to specify the elements to check with an Iterable
, use containsAll(Iterable)
instead.
values
- the given values.this
assertion object.NullPointerException
- if the given argument is null
.IllegalArgumentException
- if the given argument is an empty array.AssertionError
- if the actual group is null
.AssertionError
- if the actual group does not contain the given values.SELF containsOnly(ELEMENT... values)
If you need to check exactly the elements and their duplicates use:
containsExactly(Object...)
if the order does mattercontainsExactlyInAnyOrder(Object...)
if the order does not matterExample:
Iterable<String> abc = newArrayList("a", "b", "c");
// assertions will pass as order does not matter
assertThat(abc).containsOnly("c", "b", "a");
// duplicates are ignored
assertThat(abc).containsOnly("a", "a", "b", "c", "c");
// ... on both actual and expected values
assertThat(asList("a", "a", "b")).containsOnly("a", "b")
.containsOnly("a", "a", "b", "b");
// assertion will fail because "c" is missing in the given values
assertThat(abc).containsOnly("a", "b");
// assertion will fail because "d" is missing in abc (use isSubsetOf if you want this assertion to pass)
assertThat(abc).containsOnly("a", "b", "c", "d");
If you need to check that actual is a subset of the given values, use isSubsetOf(Object...)
.
If you want to specify the elements to check with an Iterable
, use containsOnlyElementsOf(Iterable)
instead.
values
- the given values.this
assertion object.NullPointerException
- if the given argument is null
.IllegalArgumentException
- if the given argument is an empty array.AssertionError
- if the actual group is null
.AssertionError
- if the actual group does not contain the given values, i.e. the actual group contains some
or none of the given values, or the actual group contains more values than the given ones.SELF containsOnlyNulls()
Example:
// assertion will pass
Iterable<String> items = Arrays.asList(null, null, null);
assertThat(items).containsOnlyNulls();
// assertion will fail because items2 contains a not null element
Iterable<String> items2 = Arrays.asList(null, null, "notNull");
assertThat(items2).containsOnlyNulls();
// assertion will fail since an empty iterable does not contain any elements and therefore no null ones.
Iterable<String> empty = new ArrayList<>();
assertThat(empty).containsOnlyNulls();
this
assertion object.AssertionError
- if the actual group is null
.AssertionError
- if the actual group is empty or contains non null elements.SELF containsOnlyOnce(ELEMENT... values)
Examples :
// lists are used in the examples but it would also work with arrays
// assertions will pass
assertThat(newArrayList("winter", "is", "coming")).containsOnlyOnce("winter");
assertThat(newArrayList("winter", "is", "coming")).containsOnlyOnce("coming", "winter");
// assertions will fail
assertThat(newArrayList("winter", "is", "coming")).containsOnlyOnce("Lannister");
assertThat(newArrayList("Arya", "Stark", "daughter", "of", "Ned", "Stark")).containsOnlyOnce("Stark");
assertThat(newArrayList("Arya", "Stark", "daughter", "of", "Ned", "Stark")).containsOnlyOnce("Stark", "Lannister", "Arya");
values
- the given values.this
assertion object.NullPointerException
- if the given argument is null
.IllegalArgumentException
- if the given argument is an empty array.AssertionError
- if the actual group is null
.AssertionError
- if the actual group does not contain the given values, i.e. the actual group contains some
or none of the given values, or the actual group contains more than once these values.SELF containsExactly(ELEMENT... values)
HashSet
, prefer containsOnly(Object...)
in that case).
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertion will pass
assertThat(elvesRings).containsExactly(vilya, nenya, narya);
// assertion will fail as actual and expected order differ
assertThat(elvesRings).containsExactly(nenya, vilya, narya);
If you want to specify the elements to check with an Iterable
, use containsExactlyElementsOf(Iterable)
instead.
values
- the given values.this
assertion object.NullPointerException
- if the given argument is null
.AssertionError
- if the actual group is null
.AssertionError
- if the actual group does not contain the given values with same order, i.e. the actual group
contains some or none of the given values, or the actual group contains more values than the given ones
or values are the same but the order is not.SELF containsExactlyInAnyOrder(ELEMENT... values)
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya, vilya);
// assertion will pass
assertThat(elvesRings).containsExactlyInAnyOrder(vilya, vilya, nenya, narya);
// assertion will fail as vilya is contained twice in elvesRings.
assertThat(elvesRings).containsExactlyInAnyOrder(nenya, vilya, narya);
If you want to specify the elements to check with an Iterable
, use containsExactlyInAnyOrderElementsOf(Iterable)
instead.
values
- the given values.this
assertion object.NullPointerException
- if the given argument is null
.AssertionError
- if the actual group is null
.AssertionError
- if the actual group does not contain the given values, i.e. the actual group
contains some or none of the given values, or the actual group contains more values than the given ones.SELF containsExactlyInAnyOrderElementsOf(Iterable<? extends ELEMENT> values)
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya, vilya);
Iterable<Ring> elvesRingsSomeMissing = newArrayList(vilya, nenya, narya);
Iterable<Ring> elvesRingsDifferentOrder = newArrayList(nenya, narya, vilya, vilya);
// assertion will pass
assertThat(elvesRings).containsExactlyInAnyOrder(elvesRingsDifferentOrder);
// assertion will fail as vilya is contained twice in elvesRings.
assertThat(elvesRings).containsExactlyInAnyOrder(elvesRingsSomeMissing);
If you want to directly specify the elements to check, use containsExactlyInAnyOrder(Object...)
instead.
values
- the given values.this
assertion object.NullPointerException
- if the given argument is null
.AssertionError
- if the actual group is null
.AssertionError
- if the actual group does not contain the given values, i.e. the actual group
contains some or none of the given values, or the actual group contains more values than the given ones.SELF containsSequence(ELEMENT... sequence)
Use containsSubsequence(Object...)
to allow values between the expected sequence values.
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertions will pass
assertThat(elvesRings).containsSequence(vilya, nenya)
.containsSequence(nenya, narya);
// assertions will fail, the elements order is correct but there is a value between them (nenya)
assertThat(elvesRings).containsSequence(vilya, narya);
assertThat(elvesRings).containsSequence(nenya, vilya);
If you want to specify the sequence to check with an Iterable
, use containsSequence(Iterable)
instead.
sequence
- the sequence of objects to look for.AssertionError
- if the actual group is null
.AssertionError
- if the given array is null
.AssertionError
- if the actual group does not contain the given sequence.SELF containsSequence(Iterable<? extends ELEMENT> sequence)
Use containsSubsequence(Iterable)
to allow values between the expected sequence values.
Example:
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertions will pass
assertThat(elvesRings).containsSequence(newArrayList(vilya, nenya))
.containsSequence(newArrayList(nenya, narya));
// assertions will fail, the elements order is correct but there is a value between them (nenya)
assertThat(elvesRings).containsSequence(newArrayList(vilya, narya));
assertThat(elvesRings).containsSequence(newArrayList(nenya, vilya));
If you want to directly specify the elements of the sequence to check, use containsSequence(Object...)
instead.
sequence
- the sequence of objects to look for.AssertionError
- if the actual group is null
.AssertionError
- if the given array is null
.AssertionError
- if the actual group does not contain the given sequence.SELF doesNotContainSequence(ELEMENT... sequence)
Use doesNotContainSubsequence(Object...)
to also ensure the sequence does not exist with values between the expected sequence values.
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertions will pass, the elements order is correct but there is a value between them (nenya)
assertThat(elvesRings).doesNotContainSequence(vilya, narya)
.doesNotContainSequence(nenya, vilya);
// assertions will fail
assertThat(elvesRings).doesNotContainSequence(vilya, nenya);
assertThat(elvesRings).doesNotContainSequence(nenya, narya);
If you want to specify the sequence not to find with an Iterable
, use doesNotContainSequence(Iterable)
instead.
sequence
- the sequence of objects to look for.AssertionError
- if the actual group is null
.AssertionError
- if the given array is null
.AssertionError
- if the actual group contains the given sequence.SELF doesNotContainSequence(Iterable<? extends ELEMENT> sequence)
Use doesNotContainSubsequence(Iterable)
to also ensure the sequence does not exist with values between the sequence values.
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertions will pass, the elements order is correct but there is a value between them (nenya)
assertThat(elvesRings).doesNotContainSequence(newArrayList(vilya, narya))
.doesNotContainSequence(newArrayList(nenya, vilya));
// assertions will fail
assertThat(elvesRings).doesNotContainSequence(newArrayList(vilya, nenya));
assertThat(elvesRings).doesNotContainSequence(newArrayList(nenya, narya));
If you want to directly specify the elements of the sequence not to find, use doesNotContainSequence(Object...)
instead.
sequence
- the sequence of objects to look for.AssertionError
- if the actual group is null
.AssertionError
- if the given array is null
.AssertionError
- if the actual group contains the given sequence.SELF containsSubsequence(ELEMENT... sequence)
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertions will pass
assertThat(elvesRings).containsSubsequence(vilya, nenya)
.containsSubsequence(vilya, narya);
// assertion will fail
assertThat(elvesRings).containsSubsequence(nenya, vilya);
If you want to specify the elements of the subsequence to check with an Iterable
, use containsSubsequence(Iterable)
instead.
sequence
- the sequence of objects to look for.AssertionError
- if the actual group is null
.AssertionError
- if the given array is null
.AssertionError
- if the actual group does not contain the given subsequence.SELF containsSubsequence(Iterable<? extends ELEMENT> sequence)
Example:
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertions will pass
assertThat(elvesRings).containsSubsequence(newArrayList(vilya, nenya))
.containsSubsequence(newArrayList(vilya, narya));
// assertion will fail
assertThat(elvesRings).containsSubsequence(newArrayList(nenya, vilya));
If you want to directly specify the subsequence to check, use containsSubsequence(Object...)
instead.
sequence
- the sequence of objects to look for.AssertionError
- if the actual group is null
.AssertionError
- if the given array is null
.AssertionError
- if the actual group does not contain the given subsequence.SELF doesNotContainSubsequence(ELEMENT... sequence)
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertions will pass
assertThat(elvesRings).doesNotContainSubsequence(nenya, vilya)
.doesNotContainSubsequence(narya, vilya);
// assertion will fail
assertThat(elvesRings).doesNotContainSubsequence(vilya, nenya);
assertThat(elvesRings).doesNotContainSubsequence(vilya, narya);
If you want to specify the subsequence not to find with an Iterable
, use doesNotContainSubsequence(Iterable)
instead.
sequence
- the sequence of objects to look for.AssertionError
- if the actual group is null
.AssertionError
- if the given array is null
.AssertionError
- if the actual group contains the given subsequence.SELF doesNotContainSubsequence(Iterable<? extends ELEMENT> sequence)
Example:
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertions will pass
assertThat(elvesRings).doesNotContainSubsequence(newArrayList(nenya, vilya));
.doesNotContainSubsequence(newArrayList(narya, vilya));
// assertion will fail
assertThat(elvesRings).doesNotContainSubsequence(newArrayList(vilya, nenya));
assertThat(elvesRings).doesNotContainSubsequence(newArrayList(vilya, narya));
If you want to directly specify the elements of the subsequence not to find, use doesNotContainSubsequence(Object...)
instead.
sequence
- the sequence of objects to look for.AssertionError
- if the actual group is null
.AssertionError
- if the given array is null
.AssertionError
- if the actual group contains the given subsequence.SELF doesNotContain(ELEMENT... values)
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<String> abc = newArrayList("a", "b", "c");
// assertions will pass
assertThat(abc).doesNotContain("d")
.doesNotContain("d", "e");
// assertions will fail
assertThat(abc).doesNotContain("a");
assertThat(abc).doesNotContain("a", "b");
assertThat(abc).doesNotContain("c", "d");
If you want to specify the elements not to find with an Iterable
, use doesNotContainAnyElementsOf(Iterable)
instead.
values
- the given values.this
assertion object.NullPointerException
- if the given argument is null
.IllegalArgumentException
- if the given argument is an empty array.AssertionError
- if the actual group is null
.AssertionError
- if the actual group contains any of the given values.SELF doesNotHaveDuplicates()
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<String> abc = newArrayList("a", "b", "c");
Iterable<String> lotsOfAs = newArrayList("a", "a", "a");
// assertion will pass
assertThat(abc).doesNotHaveDuplicates();
// assertion will fail
assertThat(lotsOfAs).doesNotHaveDuplicates();
this
assertion object.AssertionError
- if the actual group is null
.AssertionError
- if the actual group contains duplicates.SELF startsWith(ELEMENT... sequence)
containsSequence(Object...)
, but it also verifies that the first element in the
sequence is also first element of the actual group.
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<String> abc = newArrayList("a", "b", "c");
// assertions will pass
assertThat(abc).startsWith("a")
.startsWith("a", "b");
// assertion will fail
assertThat(abc).startsWith("c");
sequence
- the sequence of objects to look for.NullPointerException
- if the given argument is null
.IllegalArgumentException
- if the given argument is an empty array.AssertionError
- if the actual group is null
.AssertionError
- if the actual group does not start with the given sequence of objects.SELF endsWith(ELEMENT first, ELEMENT... sequence)
containsSequence(Object...)
, but it also verifies that the last element in the
sequence is also last element of the actual group.
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<String> abc = newArrayList("a", "b", "c");
// assertions will pass
assertThat(abc).endsWith("c")
.endsWith("b", "c");
// assertions will fail
assertThat(abc).endsWith("a");
assertThat(abc).endsWith("a", "b");
first
- the first element of the sequence of objects to look for.sequence
- the rest of the sequence of objects to look for.NullPointerException
- if the given argument is null
.IllegalArgumentException
- if the given argument is an empty array.AssertionError
- if the actual group is null
.AssertionError
- if the actual group does not end with the given sequence of objects.SELF endsWith(ELEMENT[] sequence)
containsSequence(Object...)
, but it also verifies that the last element in the
sequence is also last element of the actual group.
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<String> abc = newArrayList("a", "b", "c");
// assertions will pass
assertThat(abc).endsWith(new String[0])
.endsWith(new String[] {"c"})
.endsWith(new String[] {"b", "c"});
// assertions will fail
assertThat(abc).endsWith(new String[] {"a"});
assertThat(abc).endsWith(new String[] {"a", "b"});
sequence
- the sequence of objects to look for.NullPointerException
- if the given argument is null
.AssertionError
- if the actual group is null
.AssertionError
- if the actual group does not end with the given sequence of objects.SELF containsNull()
Example:
Iterable<String> abc = newArrayList("a", "b", "c");
Iterable<String> abNull = newArrayList("a", "b", null);
// assertion will pass
assertThat(abNull).containsNull();
// assertion will fail
assertThat(abc).containsNull();
this
assertion object.AssertionError
- if the actual group is null
.AssertionError
- if the actual group does not contain a null element.SELF doesNotContainNull()
Example:
Iterable<String> abc = newArrayList("a", "b", "c");
Iterable<String> abNull = newArrayList("a", "b", null);
// assertion will pass
assertThat(abc).doesNotContainNull();
// assertion will fail
assertThat(abNull).doesNotContainNull();
this
assertion object.AssertionError
- if the actual group is null
.AssertionError
- if the actual group contains a null element.SELF are(Condition<? super ELEMENT> condition)
Example:
Iterable<String> abc = newArrayList("a", "b", "c");
Iterable<String> abcc = newArrayList("a", "b", "cc");
Condition<String> singleCharacterString
= new Condition<>(s -> s.length() == 1, "single character String");
// assertion will pass
assertThat(abc).are(singleCharacterString);
// assertion will fail
assertThat(abcc).are(singleCharacterString);
condition
- the given condition.this
object.NullPointerException
- if the given condition is null
.AssertionError
- if an element cannot be cast to T.AssertionError
- if one or more elements do not satisfy the given condition.SELF areNot(Condition<? super ELEMENT> condition)
Example:
Iterable<String> abc = newArrayList("a", "b", "c");
Iterable<String> abcc = newArrayList("a", "b", "cc");
Condition<String> moreThanOneCharacter =
= new Condition<>(s -> s.length() > 1, "more than one character");
// assertion will pass
assertThat(abc).areNot(moreThanOneCharacter);
// assertion will fail
assertThat(abcc).areNot(moreThanOneCharacter);
condition
- the given condition.this
object.NullPointerException
- if the given condition is null
.AssertionError
- if an element cannot be cast to T.AssertionError
- if one or more elements satisfy the given condition.SELF have(Condition<? super ELEMENT> condition)
Example:
Iterable<String> abc = newArrayList("a", "b", "c");
Iterable<String> abcc = newArrayList("a", "b", "cc");
Condition<String> onlyOneCharacter =
= new Condition<>(s -> s.length() == 1, "only one character");
// assertion will pass
assertThat(abc).have(onlyOneCharacter);
// assertion will fail
assertThat(abcc).have(onlyOneCharacter);
condition
- the given condition.this
object.NullPointerException
- if the given condition is null
.AssertionError
- if an element cannot be cast to T.AssertionError
- if one or more elements do not satisfy the given condition.SELF doNotHave(Condition<? super ELEMENT> condition)
Example:
Iterable<String> abc = newArrayList("a", "b", "c");
Iterable<String> abcc = newArrayList("a", "b", "cc");
Condition<String> moreThanOneCharacter =
= new Condition<>(s -> s.length() > 1, "more than one character");
// assertion will pass
assertThat(abc).doNotHave(moreThanOneCharacter);
// assertion will fail
assertThat(abcc).doNotHave(moreThanOneCharacter);
condition
- the given condition.this
object.NullPointerException
- if the given condition is null
.AssertionError
- if an element cannot be cast to T.AssertionError
- if one or more elements satisfy the given condition.SELF areAtLeast(int n, Condition<? super ELEMENT> condition)
Example:
Iterable<Integer> oneTwoThree = newArrayList(1, 2, 3);
Condition<Integer> oddNumber = new Condition<>(value % 2 == 1, "odd number");
// assertion will pass
oneTwoThree.areAtLeast(2, oddNumber);
// assertion will fail
oneTwoThree.areAtLeast(3, oddNumber);
n
- the minimum number of times the condition should be verified.condition
- the given condition.this
object.NullPointerException
- if the given condition is null
.AssertionError
- if an element can not be cast to T.AssertionError
- if the number of elements satisfying the given condition is < n.SELF areAtLeastOne(Condition<? super ELEMENT> condition)
This method is an alias for areAtLeast(1, condition)
.
Example:
// jedi is a Condition<String>
assertThat(newLinkedHashSet("Luke", "Solo", "Leia")).areAtLeastOne(jedi);
condition
- the given condition.this
assertion object.haveAtLeast(int, Condition)
SELF areAtMost(int n, Condition<? super ELEMENT> condition)
Example:
Iterable<Integer> oneTwoThree = newArrayList(1, 2, 3);
Condition<Integer> oddNumber = new Condition<>(value % 2 == 1, "odd number");
// assertions will pass
oneTwoThree.areAtMost(2, oddNumber)
.areAtMost(3, oddNumber);
// assertion will fail
oneTwoThree.areAtMost(1, oddNumber);
n
- the number of times the condition should be at most verified.condition
- the given condition.this
object.NullPointerException
- if the given condition is null
.AssertionError
- if an element cannot be cast to T.AssertionError
- if the number of elements satisfying the given condition is > n.SELF areExactly(int n, Condition<? super ELEMENT> condition)
Example:
Iterable<Integer> oneTwoThree = newArrayList(1, 2, 3);
Condition<Integer> oddNumber = new Condition<>(value % 2 == 1, "odd number");
// assertion will pass
oneTwoThree.areExactly(2, oddNumber);
// assertions will fail
oneTwoThree.areExactly(1, oddNumber);
oneTwoThree.areExactly(3, oddNumber);
n
- the exact number of times the condition should be verified.condition
- the given condition.this
object.NullPointerException
- if the given condition is null
.AssertionError
- if an element cannot be cast to T.AssertionError
- if the number of elements satisfying the given condition is ≠ n.SELF haveAtLeastOne(Condition<? super ELEMENT> condition)
This method is an alias for haveAtLeast(1, condition)
.
Example:
Iterable<BasketBallPlayer> bullsPlayers = newArrayList(butler, rose);
// potentialMvp is a Condition<BasketBallPlayer>
assertThat(bullsPlayers).haveAtLeastOne(potentialMvp);
condition
- the given condition.this
assertion object.haveAtLeast(int, Condition)
SELF haveAtLeast(int n, Condition<? super ELEMENT> condition)
Example:
Iterable<Integer> oneTwoThree = newArrayList(1, 2, 3);
Condition<Integer> oddNumber = new Condition<>(value % 2 == 1, "odd number");
// assertion will pass
oneTwoThree.haveAtLeast(2, oddNumber);
// assertion will fail
oneTwoThree.haveAtLeast(3, oddNumber);
This method is an alias for areAtLeast(int, Condition)
.n
- the minimum number of times the condition must hold.condition
- the given condition.this
assertion object.SELF haveAtMost(int n, Condition<? super ELEMENT> condition)
Example:
Iterable<Integer> oneTwoThree = newArrayList(1, 2, 3);
Condition<Integer> oddNumber = new Condition<>(value % 2 == 1, "odd number");
// assertions will pass
oneTwoThree.haveAtMost(2, oddNumber);
oneTwoThree.haveAtMost(3, oddNumber);
// assertion will fail
oneTwoThree.haveAtMost(1, oddNumber);
This method is an alias areAtMost(int, Condition)
.n
- the maximum number of times the condition must hold.condition
- the given condition.this
assertion object.SELF haveExactly(int n, Condition<? super ELEMENT> condition)
Example:
Iterable<Integer> oneTwoThree = newArrayList(1, 2, 3);
Condition<Integer> oddNumber = new Condition<>(value % 2 == 1, "odd number");
// assertion will pass
oneTwoThree.haveExactly(2, oddNumber);
// assertions will fail
oneTwoThree.haveExactly(1, oddNumber);
oneTwoThree.haveExactly(3, oddNumber);
This method is an alias areExactly(int, Condition)
.n
- the exact number of times the condition must hold.condition
- the given condition.this
assertion object.SELF containsAll(Iterable<? extends ELEMENT> iterable)
Iterable
, in any order.
Example:
Iterable<String> abc = Arrays.asList("a", "b", "c");
// assertions will pass
assertThat(abc).containsAll(Arrays.asList("b", "c"))
.containsAll(Arrays.asList("a", "b", "c"));
// assertions will fail
assertThat(abc).containsAll(Arrays.asList("d"));
assertThat(abc).containsAll(Arrays.asList("a", "b", "c", "d"));
If you want to directly specify the elements to check, use contains(Object...)
instead.
iterable
- the given Iterable
we will get elements from.this
assertion object.NullPointerException
- if the given argument is null
.AssertionError
- if the actual group is null
.AssertionError
- if the actual group does not contain all the elements of given Iterable
.SELF hasOnlyElementsOfTypes(Class<?>... types)
Example:
Iterable<? extends Object> objects = Arrays.asList("foo", new StringBuilder());
// assertions will pass
assertThat(objects).hasOnlyElementsOfTypes(CharSequence.class)
.hasOnlyElementsOfTypes(String.class, StringBuilder.class);
// assertions will fail
assertThat(objects).hasOnlyElementsOfTypes(Number.class);
assertThat(objects).hasOnlyElementsOfTypes(String.class, Number.class);
assertThat(objects).hasOnlyElementsOfTypes(String.class);
types
- the expected classes and interfacesthis
assertion object.NullPointerException
- if the given argument is null
.AssertionError
- if the actual group is null
.AssertionError
- if not all elements of the actual group are instances of one of the given typesSELF hasAtLeastOneElementOfType(Class<?> expectedType)
Object
group has the specified type (matching
includes subclasses of the given type).
Example:
Number[] numbers = { 2, 6L, 8.0 };
// successful assertion:
assertThat(numbers).hasAtLeastOneElementOfType(Long.class);
// assertion failure:
assertThat(numbers).hasAtLeastOneElementOfType(Float.class);
expectedType
- the expected type.NullPointerException
- if the given type is null
.AssertionError
- if the actual Object
group does not have any elements of the given type.SELF hasOnlyElementsOfType(Class<?> expectedType)
Object
group belong to the specified type (matching includes
subclasses of the given type).
Example:
Number[] numbers = { 2, 6, 8 };
// successful assertion:
assertThat(numbers).hasOnlyElementsOfType(Integer.class);
// assertion failure:
assertThat(numbers).hasOnlyElementsOfType(Long.class);
expectedType
- the expected type.NullPointerException
- if the given type is null
.AssertionError
- if one element is not of the expected type.SELF doesNotHaveAnyElementsOfTypes(Class<?>... unexpectedTypes)
Object
group do not belong to the specified types (including subclasses).
Example:
Number[] numbers = { 2, 6, 8.0 };
// successful assertion:
assertThat(numbers).doesNotHaveAnyElementsOfTypes(Long.class, Float.class);
// assertion failure:
assertThat(numbers).doesNotHaveAnyElementsOfTypes(Long.class, Integer.class);
unexpectedTypes
- the not expected types.NullPointerException
- if the given type is null
.AssertionError
- if one element's type matches the given types.SELF containsExactlyElementsOf(Iterable<? extends ELEMENT> iterable)
containsExactly(Object...)
but handle the Iterable
to array conversion : verifies that
actual contains exactly the elements of the given iterable and nothing else in the same order.
Example:
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertion will pass
assertThat(elvesRings).containsExactlyElementsOf(newLinkedList(vilya, nenya, narya));
// assertion will fail as actual and expected order differ
assertThat(elvesRings).containsExactlyElementsOf(newLinkedList(nenya, vilya, narya));
If you want to directly specify the elements to check, use containsExactly(Object...)
instead.
iterable
- the given Iterable
we will get elements from.this
assertion object.SELF containsOnlyElementsOf(Iterable<? extends ELEMENT> iterable)
containsOnly(Object[])
: verifies that actual contains all the elements of the given
iterable and nothing else, in any order and ignoring duplicates (i.e. once a value is found, its duplicates are also considered found).
Use isSubsetOf(Iterable)
to check that actual is a subset of given iterable
Example:
Iterable<Ring> rings = newArrayList(nenya, vilya);
// assertion will pass
assertThat(rings).containsOnlyElementsOf(newArrayList(nenya, vilya))
.containsOnlyElementsOf(newArrayList(nenya, nenya, vilya, vilya));
assertThat(newArrayList(nenya, nenya, vilya, vilya)).containsOnlyElementsOf(rings);
// assertion will fail as actual does not contain narya
assertThat(rings).containsOnlyElementsOf(newLinkedList(nenya, vilya, narya));
// assertion will fail as actual contains nenya
assertThat(rings).containsOnlyElementsOf(newLinkedList(vilya));
If you want to directly specify the elements to check, use containsOnly(Object...)
instead.
iterable
- the given Iterable
we will get elements from.this
assertion object.SELF hasSameElementsAs(Iterable<? extends ELEMENT> iterable)
containsOnlyElementsOf(Iterable)
: verifies that actual contains all the elements of the
given iterable and nothing else, in any order.
Example:
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertions will pass:
assertThat(elvesRings).hasSameElementsAs(newArrayList(nenya, narya, vilya))
.hasSameElementsAs(newArrayList(nenya, narya, vilya, nenya));
// assertions will fail:
assertThat(elvesRings).hasSameElementsAs(newArrayList(nenya, narya));
assertThat(elvesRings).hasSameElementsAs(newArrayList(nenya, narya, vilya, oneRing));
iterable
- the Iterable whose elements we expect to be presentAssertionError
- if the actual group is null
NullPointerException
- if the given Iterable
is null
AssertionError
- if the actual Iterable
does not have the same elements, in any order, as the given
Iterable
SELF doesNotContainAnyElementsOf(Iterable<? extends ELEMENT> iterable)
Iterable
(i.e. none).
Example:
Iterable<String> abc = newArrayList("a", "b", "c");
// assertion succeeds:
assertThat(actual).doesNotContainAnyElementsOf(newArrayList("d", "e"));
// assertion fails:
assertThat(actual).doesNotContainAnyElementsOf(newArrayList("d", "e", "a"));
If you want to directly specify the elements not to find, use doesNotContain(Object...)
instead.
iterable
- the Iterable
whose elements must not be in the actual group.this
assertion object.NullPointerException
- if the given argument is null
.IllegalArgumentException
- if the given argument is an empty iterable.AssertionError
- if the actual group is null
.AssertionError
- if the actual group contains some elements of the given Iterable
.SELF isSubsetOf(Iterable<? extends ELEMENT> values)
Iterable
.
Example:
// an Iterable is used in the example but it would also work with an array
List<Ring> ringsOfPower = newArrayList(oneRing, vilya, nenya, narya, dwarfRing, manRing);
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertion will pass:
assertThat(elvesRings).isSubsetOf(ringsOfPower);
// assertion will fail:
assertThat(elvesRings).isSubsetOf(newArrayList(nenya, narya));
If you want to directly specify the set of elements, use isSubsetOf(Object...)
instead.
values
- the Iterable
that should contain all actual elements.AssertionError
- if the actual Iterable
is null
.NullPointerException
- if the given Iterable
is null
.AssertionError
- if the actual Iterable
is not subset of set Iterable
.SELF isSubsetOf(ELEMENT... values)
Example:
// an Iterable is used in the example but it would also work with an array
Iterable<Ring> elvesRings = newArrayList(vilya, nenya, narya);
// assertions will pass:
assertThat(elvesRings).isSubsetOf(vilya, nenya, narya)
.isSubsetOf(vilya, nenya, narya, dwarfRing);
// assertions will fail:
assertThat(elvesRings).isSubsetOf(vilya, nenya);
assertThat(elvesRings).isSubsetOf(vilya, nenya, dwarfRing);
If you want to specify the set of elements an Iterable
, use isSubsetOf(Iterable)
instead.
values
- the values that should be used for checking the elements of actual.AssertionError
- if the actual Iterable
is null
.AssertionError
- if the actual Iterable
is not subset of the given values.SELF allMatch(Predicate<? super ELEMENT> predicate)
Predicate
.
Example :
Iterable<String> abc = newArrayList("a", "b", "c");
Iterable<String> abcc = newArrayList("a", "b", "cc");
// assertion will pass
assertThat(abc).allMatch(s -> s.length() == 1);
// assertion will fail
assertThat(abcc).allMatch(s -> s.length() == 1);
Note that you can achieve the same result with are(Condition)
or have(Condition)
.predicate
- the given Predicate
.this
object.NullPointerException
- if the given predicate is null
.AssertionError
- if an element cannot be cast to T.AssertionError
- if one or more elements don't satisfy the given predicate.SELF allMatch(Predicate<? super ELEMENT> predicate, String predicateDescription)
Predicate
. The predicate description is used
to get an informative error message.
Example :
Iterable<String> abc = newArrayList("a", "b", "c");
Iterable<String> abcc = newArrayList("a", "b", "cc");
// assertion will pass
assertThat(abc).allMatch(s -> s.length() == 1, "length of 1");
// assertion will fail
assertThat(abcc).allMatch(s -> s.length() == 1, "length of 1");
The message of the failed assertion would be:
Expecting all elements of:
<["a", "b", "cc"]>
to match 'length of 1' predicate but this element did not:
<"cc">
predicate
- the given Predicate
.predicateDescription
- a description of the Predicate
used in the error messagethis
object.NullPointerException
- if the given predicate is null
.AssertionError
- if an element cannot be cast to T.AssertionError
- if one or more elements don't satisfy the given predicate.SELF allSatisfy(Consumer<? super ELEMENT> requirements)
Consumer
.
This is useful to perform a group of assertions on elements.
Example:
assertThat(myIcelanderFriends).allSatisfy(person -> {
assertThat(person.getCountry()).isEqualTo("Iceland");
assertThat(person.getPhoneCountryCode()).isEqualTo("+354");
});
If the actual iterable/array is empty, this assertion succeeds as there is no elements to check.
requirements
- the given Consumer
.this
object.NullPointerException
- if the given Consumer
is null
.AssertionError
- if one or more elements don't satisfy given requirements.SELF anyMatch(Predicate<? super ELEMENT> predicate)
Predicate
.
Example :
Iterable<String> abcc = newArrayList("a", "b", "cc");
// assertion will pass
assertThat(abcc).anyMatch(s -> s.length() == 2);
// assertion will fail
assertThat(abcc).anyMatch(s -> s.length() > 2);
Note that you can achieve the same result with areAtLeastOne(Condition)
or haveAtLeastOne(Condition)
.predicate
- the given Predicate
.this
object.NullPointerException
- if the given predicate is null
.AssertionError
- if no elements satisfy the given predicate.SELF anySatisfy(Consumer<? super ELEMENT> requirements)
Consumer
.
This is useful to check that a group of assertions is verified by (at least) one element.
If the group of elements to assert is empty, the assertion will fail.
Example:
// assume that one icelander in myIcelanderFriends has a name finishing by 'son'
assertThat(myIcelanderFriends).anySatisfy(person -> {
assertThat(person.getCountry()).isEqualTo("Iceland");
assertThat(person.getSurname()).endsWith("son");
});
// assertion fails for empty group, whatever the requirements are.
assertThat(emptyGroup).anySatisfy($ -> assertThat(true).isTrue());
requirements
- the given Consumer
.this
object.NullPointerException
- if the given Consumer
is null
.AssertionError
- none elements satisfy the given requirements.SELF containsAnyOf(ELEMENT... values)
Iterable
contains at least one of the given values.
Example:
Iterable<String> abc = Arrays.asList("a", "b", "c");
// assertions will pass
assertThat(abc).containsAnyOf("b")
.containsAnyOf("b", "c")
.containsAnyOf("a", "b", "c")
.containsAnyOf("a", "b", "c", "d")
.containsAnyOf("e", "f", "g", "b");
// assertions will fail
assertThat(abc).containsAnyOf("d");
assertThat(abc).containsAnyOf("d", "e", "f", "g");
If you want to specify the elements to check with an Iterable
, use containsAnyElementsOf(Iterable)
instead.
values
- the values whose at least one which is expected to be in the Iterable
under test.this
assertion object.NullPointerException
- if the array of values is null
.IllegalArgumentException
- if the array of values is empty and the Iterable
under test is not empty.AssertionError
- if the Iterable
under test is null
.AssertionError
- if the Iterable
under test does not contain any of the given values
.SELF containsAnyElementsOf(Iterable<ELEMENT> iterable)
Iterable
under test contains at least one of the given Iterable
elements.
Example:
Iterable<String> abc = Arrays.asList("a", "b", "c");
// assertions will pass
assertThat(abc).containsAnyElementsOf(Arrays.asList("b"))
.containsAnyElementsOf(Arrays.asList("b", "c"))
.containsAnyElementsOf(Arrays.asList("a", "b", "c"))
.containsAnyElementsOf(Arrays.asList("a", "b", "c", "d"))
.containsAnyElementsOf(Arrays.asList("e", "f", "g", "b"));
// assertions will fail
assertThat(abc).containsAnyElementsOf(Arrays.asList("d"));
assertThat(abc).containsAnyElementsOf(Arrays.asList("d", "e", "f", "g"));
If you want to directly specify the elements to check, use containsAnyOf(Object...)
instead.
iterable
- the iterable whose at least one element is expected to be in the Iterable
under test.this
assertion object.NullPointerException
- if the iterable of expected values is null
.IllegalArgumentException
- if the iterable of expected values is empty and the Iterable
under test is not empty.AssertionError
- if the Iterable
under test is null
.AssertionError
- if the Iterable
under test does not contain any of elements from the given Iterable
.SELF noneMatch(Predicate<? super ELEMENT> predicate)
Predicate
.
Example :
Iterable<String> abcc = newArrayList("a", "b", "cc");
// assertion will pass
assertThat(abcc).noneMatch(s -> s.isEmpty());
// assertion will fail
assertThat(abcc).noneMatch(s -> s.length() == 2);
Note that you can achieve the same result with areNot(Condition)
or doNotHave(Condition)
.predicate
- the given Predicate
.this
object.NullPointerException
- if the given predicate is null
.AssertionError
- if an element cannot be cast to T.AssertionError
- if any element satisfy the given predicate.Copyright © 2014–2018 AssertJ. All rights reserved.