![JAR search and dependency download from the Maven repository](/logo.png)
com.avito.truth.ResultSubject.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.avito.android.Result
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
public class ResultSubject private constructor(
private val failureMetadata: FailureMetadata,
private val actual: Result
) : Subject(failureMetadata, actual) {
public fun isSuccess(): SuccessSubject {
when (actual) {
is Result.Failure -> {
failWithActual(Fact.simpleFact("expected to be Success, but failure with ${actual.throwable}"))
throw IllegalStateException("Can't be here")
}
is Result.Success ->
return SuccessSubject(failureMetadata, actual.value)
}
}
public fun isFailure(): FailureSubject {
when (actual) {
is Result.Success -> {
failWithActual(Fact.simpleFact("expected to be Failure, but was Success"))
throw IllegalStateException("Can't be here")
}
is Result.Failure ->
return FailureSubject(failureMetadata, actual.throwable)
}
}
public class SuccessSubject internal constructor(
failureMetadata: FailureMetadata,
private val actual: T
) : Subject(failureMetadata, actual) {
public fun withValue(body: (T) -> Unit) {
body(actual)
}
}
public class FailureSubject internal constructor(
failureMetadata: FailureMetadata,
private val actual: Throwable
) : Subject(failureMetadata, actual) {
public fun withThrowable(body: (Throwable) -> Unit) {
body(actual)
}
}
public companion object {
@JvmStatic
private val RESULT_SUBJECT_FACTORY: Factory, Result<*>> =
Factory, Result<*>> { metadata, actual -> ResultSubject(metadata, actual) }
@JvmStatic
public fun results(): Factory, Result<*>> = RESULT_SUBJECT_FACTORY
@Suppress("UNCHECKED_CAST")
@JvmStatic
public fun assertThat(result: Result): ResultSubject =
Truth.assertAbout(RESULT_SUBJECT_FACTORY).that(result) as ResultSubject
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy