doc / ch.tutteli.atrium.domain.builders.creating.collectors / AssertionCollectorBuilder / collect

collect

inline fun <T, A : BaseAssertionPlant<T, A>, C : BaseCollectingAssertionPlant<T, A, C>> collect(noinline subjectProvider: () -> T, noinline collectingPlantFactory: (() -> T) -> C, noinline assertionCreator: C.() -> Unit): AssertionGroup (source)

Overrides AssertionCollector.collect

Use this function if you want to make Assertion about a feature or you perform a type transformation or any other action which results in a sub-BaseAssertionPlant being created and you do not require this resulting plant.

Or in other words, you do not want to make further assertions about the resulting subject in the resulting sub assertion plant.

This function can be useful in several cases. For instance:

Parameters

subjectProvider - Provides the subject which is used as CollectingAssertionPlantNullable.subject.

collectingPlantFactory - The factory method which creates the appropriate collecting plant which is suitable for the given assertionCreator.

assertionCreator - A lambda which typically creates a sub AssertionPlant and adds assertions to it. For instance, if you create a feature assertion or a type transformation assertion, you will typically end up creating a sub assertion plant which delegates created Assertions to the CollectingAssertionPlant.

Exceptions

IllegalArgumentException - in case the given assertionCreator did not create a single assertion, did not pass it to the BaseCollectingAssertionPlant respectively.

Return
The collected assertions as an AssertionGroup with an InvisibleAssertionGroupType.