У меня есть следующий запечатанный класс в Котлине
sealed class Result<T, E> {
class Success<T, E>(val result: T) : Result<T, E>()
class Failure<T, E>(val failure: E) : Result<T, E>()
}
и я возвращаю сущность Результата из create()
функции
и использование следующего с RxJava2,
return Single.fromCallable { repository.create(details) }
.map {
return@map when(result) {
is Result.Success -> CreatedState.Success(result.result)
is Result.Failure -> CreatedState.Error(result.failure)
}
}
Насколько я могу судить, функциональность работает так, как задумано. Однако, когда я тестирую это,
val testSubscriber = underTest.create(newDetails).test()
Я получаю java.lang.IllegalStateException
и вижу kotlin.NoWhenBranchMatchedException
в списке исключений (при выполнении assertComplete()
), который я не могу понять, как это произойдет, так как мой, когда проверка является исчерпывающей. Или я что-то там упускаю?
ТИА!