I'm trying to do this:
val mockAuth = mock(AuthCategoryBehavior::class.java)
@Test
fun testSignOutComplete() {
val amplifyImp = AmplifyImp(mockAuth)
whenever(mockAuth.signOut(any())).thenAnswer { invocation ->
print("Check")
val callback = invocation.arguments[0] as (Result<Boolean>) -> Unit
callback(Result.success(true))
}
amplifyImp.signOut { signOutResult ->
assertThat(signOutResult.isSuccess).isTrue()
}
}
from this class:
class AmplifyImp(private val amplify: AuthCategoryBehavior) : AmplifyAuthInterface {
override fun signOut(callback: (Result<Boolean>) -> Unit) {
amplify.signOut { signOutResult ->
when (signOutResult) {
is AWSCognitoAuthSignOutResult.CompleteSignOut -> {
callback(Result.success(true))
}
is AWSCognitoAuthSignOutResult.PartialSignOut -> callback(Result.success(true))
is AWSCognitoAuthSignOutResult.FailedSignOut -> {
callback(Result.failure(signOutResult.exception))
}
}
}
}
}
But I get errors from casting, any ideas what should I do?