public typealias HttpResponseCallback = (HttpResponse) -> Unit
public typealias HttpFailureCallback = (Failure) -> Unit
public interface HttpClient {
/**
* Make a [Request], and complete with a [HttpResult]
*
* @param request The request details
* @param completion: The closure to call when the request is complete
*/
public fun submit(
request: Request,
onResponse: HttpResponseCallback,
onFailure: HttpFailureCallback
): RequestDisposable
}
When I try to mock it, MocKMP generates this, which fails to compile:
internal class MockHttpClient(
private val mocker: Mocker
) : HttpClient {
public override fun submit(
request: Request,
onResponse: HttpResponseCallback<HttpResponse, Unit>,
onFailure: HttpFailureCallback<Failure, Unit>
): RequestDisposable = this.mocker.register(this,
"submit(com.quizlet.shared.httpclient.Request, ?, ?)", request, onResponse, onFailure)
public override fun toString(): String = this.mocker.register(this, "toString()", default = {
super.toString() })
}
It looks like it's using my typealias names in place of Function1.
If I inline my typealiases, MocKMP generates this, which compiles fine:
internal class MockHttpClient(
private val mocker: Mocker
) : HttpClient {
public override fun submit(
request: Request,
onResponse: Function1<HttpResponse, Unit>,
onFailure: Function1<Failure, Unit>
): RequestDisposable = this.mocker.register(this,
"submit(com.quizlet.shared.httpclient.Request, kotlin.Function1, kotlin.Function1)", request,
onResponse, onFailure)
public override fun toString(): String = this.mocker.register(this, "toString()", default = {
super.toString() })
}
I have some code like
When I try to mock it, MocKMP generates this, which fails to compile:
It looks like it's using my typealias names in place of
Function1
.If I inline my typealiases, MocKMP generates this, which compiles fine: