You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iceraven-browser/app/src/test/java/org/mozilla/fenix/helpers/DisableNavGraphProviderAsse...

44 lines
1.4 KiB
Kotlin

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.fenix.helpers
import io.mockk.every
import io.mockk.mockkObject
import io.mockk.unmockkObject
import org.junit.rules.TestWatcher
import org.junit.runner.Description
import org.mozilla.fenix.perf.NavGraphProvider
/**
* Disables the call order assertions defined by the [NavGraphProvider] for use in testing.
* This is necessary because unit tests generally don't follow the application lifecycle and thus
* call the methods out of order, causing an assertion to be thrown unexpectedly. You may need to
* apply this rule if you see the following exception in your test:
*
* Unfortunately, JUnit 4 discourages setting test state globally so we apply this to each test that
* has the failure rather than disabling it globally.
*/
class DisableNavGraphProviderAssertionRule : TestWatcher() {
// public for code reuse.
fun setUp() {
mockkObject(NavGraphProvider)
every { NavGraphProvider.blockForNavGraphInflation(any()) } returns Unit
}
// public for code reuse.
fun tearDown() { //
unmockkObject(NavGraphProvider)
}
override fun starting(description: Description?) {
setUp()
}
override fun finished(description: Description?) {
tearDown()
}
}