dave08
: Any
interface UseCase<in Request : Any, out Response : Any> { suspend fun execute(request: Request): Response }
class UseCaseSpy<Request : Any, Response>( private val returnIfNoResponse: (suspend (Request) -> Response)? = null, private val allowNullResponse: Boolean = false ): UseCase<Request, Response> { var request: Request? = null var responseToReturn: Response? = null override suspend fun execute(request: Request): Response { this.request = request val response = responseToReturn ?: returnIfNoResponse?.invoke(request) if (response == null && !allowNullResponse) error("Either responseToReturn or returnIfNoResponse needs to be provided.") return response } }
execute
Response?
Youssef Shoaib [MOD]
interface UseCase<in Request : Any, out Response : Any> { suspend fun execute(request: Request): Response? }
Response
UseCaseSpy
A modern programming language that makes developers happier.