interface AssertionContainer<T> : SubjectProvider<T>
(source)
Represents the extension point of the logic level for subjects of type T.
In contrast to expectation functions defined for Expect which usually return Expect, functions defined for AssertionContainer return Assertion so that they can be appended to whatever we want.
Note, do not use SubjectProvider as this interface will be removed with 0.17.0.
T
- The type of the subject of this
expectation.
abstract val components: ComponentFactoryContainer
Do not use yet, this is experimental |
|
abstract val maybeSubject: Option<T>
Either Some wrapping the subject of an Assertion or None in case a previous subject transformation could not be carried out. |
abstract fun <I : Any> getImpl(kClass: KClass<I>, defaultFactory: () -> I): I
Do not use yet, this is experimental and will definitely change in 0.17.0 or 0.18.0. |
abstract fun addAssertion(assertion: Assertion): SubjectProvider<T>
Adds the given assertion to this holder. |
val <T> AssertionContainer<T>.changeSubject: SubjectChangerBuilder.KindStep<T>
Entry point to use the SubjectChangerBuilder based on this AssertionContainer. |
|
val <T> AssertionContainer<T>.extractFeature: FeatureExtractorBuilder.DescriptionStep<T>
Entry point to use the FeatureExtractorBuilder based on this AssertionContainer. |
|
val <T> AssertionContainer<T>.featureExtractor: FeatureExtractor |
|
val AssertionContainer<*>.iterableLikeToIterableTransformer: IterableLikeToIterableTransformer |
|
val AssertionContainer<*>.mapLikeToMapTransformer: MapLikeToIterablePairTransformer |
|
val <T> AssertionContainer<T>.subjectChanger: SubjectChanger |
fun <T> AssertionContainer<T>.collect(assertionCreator: Expect<T>.() -> Unit): Assertion
Use this function if you want to make Assertions about a feature or you perform a type transformation or any other action which results in an Expect being created for a different subject and you do not require this resulting Expect. |
|
fun <T> AssertionContainer<*>.collectBasedOnSubject(maybeSubject: Option<T>, assertionCreator: Expect<T>.() -> Unit): Assertion
Use this function if you want to make Assertions about a feature or you perform a type transformation or any other action which results in an Expect being created for a different subject and you do not require this resulting Expect. |
|
fun <T> AssertionContainer<T>.collectForComposition(assertionCreator: Expect<T>.() -> Unit): List<Assertion>
Use this function if you want to collect Assertions and use it as part of another Assertion (e.g. as part of an AssertionGroup). |
|
fun <T> AssertionContainer<*>.collectForCompositionBasedOnSubject(maybeSubject: Option<T>, assertionCreator: Expect<T>.() -> Unit): List<Assertion>
Use this function if you want to collect Assertions and use it as part of another Assertion (e.g. as part of an AssertionGroup). |
|
fun <T> AssertionContainer<*>.
Use this function if you want to make Assertions about a feature or you perform a type transformation or any other action which results in an Expect being created for a different subject and you do not require this resulting Expect. |
|
fun <T> AssertionContainer<T>.createDescriptiveAssertion(description: Translatable, representation: Any?, test: (T) -> Boolean): Assertion
Creates a DescriptiveAssertion based on the given description, representation and test. |
|
fun <T, R> AssertionContainer<T>.genericSubjectBasedFeature(provider: (T) -> MetaFeature<R>): FeatureExtractorBuilder.ExecutionStep<T, R> |
|
fun <T> AssertionContainer<*>.iterableLikeToIterable(iterableLike: IterableLike): Iterable<T>
Transforms the given iterableLike to an Iterable with an element type T. |
|
fun <T> AssertionContainer<*>.iterableLikeToIterableWithoutCheckForElements(iterableLike: IterableLike): Iterable<T>
Transforms the given iterableLike to an Iterable with an element type T. |
|
fun <T, R> AssertionContainer<T>.manualFeature(description: String, provider: T.() -> R): FeatureExtractorBuilder.ExecutionStep<T, R>
Convenience method to pass a String as description which is wrapped into an Untranslatable instead of passing a Translatable. |
|
fun <K, V> AssertionContainer<*>.mapLikeToIterablePair(mapLike: MapLike): List<Pair<K, V>>
Transforms the given MapLike to |
|
fun <K, V> AssertionContainer<*>.mapLikeToVarArgPairs(mapLike: MapLike): Pair<Pair<K, V>, Array<out Pair<K, V>>>
Transforms the given MapLike to an Iterable with an element type Pair |
|
fun <T> AssertionContainer<T>.toExpect(): Expect<T>
Casts this AssertionContainer back to an Expect so that you can use it in places where an Expect is used. |
interface ExpectInternal<T> : Expect<T>, AssertionContainer<T>
Sole purpose of this interface is to hide AssertionContainer from newcomers which usually don't have to deal with this. |