#✅ - How do I unit test Amplify Auth for Android (kotlin) ?

1 messages · Page 1 of 1 (latest)

heavy gazelle
#

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?

thorny hawk
hot dragonBOT
#

✅ - How do I unit test Amplify Auth for Android (kotlin) ?