Skip to content

Instantly share code, notes, and snippets.

@o-vitaliy
Created February 7, 2022 17:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save o-vitaliy/a65e5742cbc1f3a7b59b09365b28292b to your computer and use it in GitHub Desktop.
Save o-vitaliy/a65e5742cbc1f3a7b59b09365b28292b to your computer and use it in GitHub Desktop.
FirebaseAnalyticsTest
internal class FirebaseAnalyticsTest {
private val context = mockk<Context>(relaxed = true, relaxUnitFun = true)
private val mockedFirebaseAnalytics =
mockk<GFirebaseAnalytics>(relaxed = true, relaxUnitFun = true)
init {
mockkStatic(GFirebaseAnalytics::class)
every { GFirebaseAnalytics.getInstance(context) } returns mockedFirebaseAnalytics
}
private val analytics = FirebaseAnalytics(context)
@Test
fun `test track event`() {
MockBundle.mock()
val event = "event1"
val values = mapOf("value1" to "11")
analytics.trackEvent(event, values)
verify {
mockedFirebaseAnalytics.logEvent(event, match { it.getString("value1") == "11" })
}
}
}
object MockBundle {
fun mock() {
mockkConstructor(Bundle::class)
val map = mutableMapOf<String, Any?>()
every {
anyConstructed<Bundle>().getString(any())
} answers {
map[it.invocation.args[0] as String] as? String
}
every { anyConstructed<Bundle>().putString(any(), any()) } answers {
map[it.invocation.args[0] as String] = it.invocation.args[1]
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment