
com.avito.truth.ExtendedIterableSubject.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of truth-extensions Show documentation
Show all versions of truth-extensions Show documentation
Collection of infrastructure libraries and gradle plugins of Avito Android project
The newest version!
package com.avito.truth
import com.google.common.collect.FluentIterable
import com.google.common.truth.Fact
import com.google.common.truth.FailureMetadata
import com.google.common.truth.Subject
import com.google.common.truth.Subject.Factory
import com.google.common.truth.Truth.assertAbout
public class ExtendedIterableSubject(
failureMetadata: FailureMetadata,
private val actual: Iterable
) : Subject(failureMetadata, actual) {
public fun containsExactlyOne(clazz: Class, condition: (T) -> Boolean) {
val ts = FluentIterable.from(this.actual).filter(clazz)
if (ts.size() != 1) {
failWithActual("contains exactly one instance of", clazz.simpleName)
} else {
val t = ts[0] as T
if (!condition.invoke(t)) {
failWithActual(Fact.simpleFact("contains exactly one instance satisfied by condition"))
}
}
}
public companion object {
public inline fun iterable(): Factory, Iterable> =
Factory { metadata, actual: Iterable ->
ExtendedIterableSubject(metadata, actual)
}
public inline fun assertIterable(iterable: Iterable): ExtendedIterableSubject =
assertAbout(iterable()).that(iterable)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy