Skip to content

Instantly share code, notes, and snippets.

@delacrixmorgan
Last active November 27, 2019 07:02
Show Gist options
  • Select an option

  • Save delacrixmorgan/43d18bfedbab6d732a678a58813e571f to your computer and use it in GitHub Desktop.

Select an option

Save delacrixmorgan/43d18bfedbab6d732a678a58813e571f to your computer and use it in GitHub Desktop.
Android Instrumented Test

Instrumented Tests

Multiple Login Profiles

internal fun loginAsAdmin(completion: (() -> Unit)) {
    // TODO (Login as Admin)
}

internal fun loginAsUser(completion: (() -> Unit)) {
    // TODO (Login as User)
}

@Test
fun testLoadAdmin() {
    val signal = CountDownLatch(1)
    loginAsAdmin {
        // TODO (Do Admin Stuff)
    }
    signal.await(20, TimeUnit.SECONDS)
}

@Test
fun testLoadUser() {
    val signal = CountDownLatch(1)
    loginAsUser {
        // TODO (Do User Stuff)
    }
    signal.await(20, TimeUnit.SECONDS)
}

API Callback

@Test
fun loadUserQuests() {
    val signal = CountDownLatch(1)
    val questCategoryPresenter = QuestCategoryPresenter(appContext)

    questCategoryPresenter.loadUserQuests() { quests, exception ->
        exception?.let {
            Assert.fail(it.localizedMessage)
            signal.countDown()
            return@loadUserQuests
        }

        Assert.assertTrue("Quests is Empty", quests.isNotEmpty())
        signal.countDown()
    }

    signal.await()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment