Skip to content

Instantly share code, notes, and snippets.

@abbath0767
Created September 24, 2017 14:05
Show Gist options
  • Save abbath0767/d7040c35e797b0a172fd02439097b6eb to your computer and use it in GitHub Desktop.
Save abbath0767/d7040c35e797b0a172fd02439097b6eb to your computer and use it in GitHub Desktop.
Метод класса B
fun reserveBadCaseDevice(workerId: Int,
condition: DeviceCondition,
result: (Unit) -> Unit,
errorText: (String) -> Unit,
errorId: (Int) -> Unit) {
val data = ReservedWorkerData(
DeviceState.TAKE,
condition, null,
workerId)
val call = apiService.postAsyncReserveDevice(data, prefManager.getPrefToken())
call.enqueue(object : Callback<Void> {
override fun onResponse(call: Call<Void>?, response: Response<Void>?) {
response?.let {
if (response.isSuccessful) {
result.invoke(Unit)
} else {
errorText(apiErrorUtil.parse(response).message)
}
}
}
override fun onFailure(call: Call<Void>?, t: Throwable?) {
errorId(apiErrorUtil.parse(t).message)
}
})
}
Метод класса А в котором используется класс Б
private fun reserveBadCaseUser(condition: DeviceCondition) {
showLoad(true)
deviceInteractor.reserveBadCaseDevice(mCurrentWorker?.id!!, condition,
{
clearCurrentDevice()
validateButtonView()
showLoad(false)
},
{
showLoad(false)
viewState.showErrorToast(it)
},
{
showLoad(false)
viewState.showErrorToast(it)
})
}
И само тестирование
@Test
fun lostClick() {
//setup parameters
//presenter actions
presenter.lostClick()
`when`(deviceInteractor.reserveBadCaseDevice(anyInt(), any(),
any(), any(), any())).then() //каким образом заставить у замоконного класса B (вот он - deviceInteractor) вызвать нужную лямбду
//view reaction
verify(viewState).showLoad(true)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment