Bug 1849525 - Fix review checker service test issue with mockito

fenix/120.0
rahulsainani 1 year ago committed by mergify[bot]
parent da278b6635
commit f919ee7d84

@ -4,23 +4,21 @@
package org.mozilla.fenix.shopping.middleware package org.mozilla.fenix.shopping.middleware
import io.mockk.every
import io.mockk.mockk
import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.runTest
import mozilla.components.browser.state.state.BrowserState import mozilla.components.browser.state.state.BrowserState
import mozilla.components.browser.state.state.createTab import mozilla.components.browser.state.state.createTab
import mozilla.components.browser.state.store.BrowserStore import mozilla.components.browser.state.store.BrowserStore
import mozilla.components.concept.engine.EngineSession import mozilla.components.concept.engine.EngineSession
import mozilla.components.concept.engine.shopping.ProductAnalysis import mozilla.components.concept.engine.shopping.ProductAnalysis
import mozilla.components.support.test.any
import mozilla.components.support.test.mock
import mozilla.components.support.test.rule.MainCoroutineRule import mozilla.components.support.test.rule.MainCoroutineRule
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull import org.junit.Assert.assertNull
import org.junit.Ignore
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
import org.mockito.Mockito.doAnswer import org.mozilla.fenix.shopping.ProductAnalysisTestData
@Ignore("Intermittent failure, see https://bugzilla.mozilla.org/show_bug.cgi?id=1849525.")
class DefaultReviewQualityCheckServiceTest { class DefaultReviewQualityCheckServiceTest {
@get:Rule @get:Rule
@ -29,13 +27,14 @@ class DefaultReviewQualityCheckServiceTest {
@Test @Test
fun `GIVEN fetch is called WHEN onResult is invoked THEN product analysis returns the same data`() = fun `GIVEN fetch is called WHEN onResult is invoked THEN product analysis returns the same data`() =
runTest { runTest {
val engineSession = mock<EngineSession>() val engineSession = mockk<EngineSession>()
val expected = mock<ProductAnalysis>() val expected = ProductAnalysisTestData.productAnalysis()
doAnswer { invocation -> every {
val onResult: (ProductAnalysis) -> Unit = invocation.getArgument(1) engineSession.requestProductAnalysis(any(), any(), any())
onResult(expected) }.answers {
}.`when`(engineSession).requestProductAnalysis(any(), any(), any()) secondArg<(ProductAnalysis) -> Unit>().invoke(expected)
}
val tab = createTab( val tab = createTab(
url = "https://www.shopping.org/product", url = "https://www.shopping.org/product",
@ -57,12 +56,13 @@ class DefaultReviewQualityCheckServiceTest {
@Test @Test
fun `GIVEN fetch is called WHEN onException is invoked THEN product analysis returns null`() = fun `GIVEN fetch is called WHEN onException is invoked THEN product analysis returns null`() =
runTest { runTest {
val engineSession = mock<EngineSession>() val engineSession = mockk<EngineSession>()
doAnswer { invocation -> every {
val onException: (Throwable) -> Unit = invocation.getArgument(2) engineSession.requestProductAnalysis(any(), any(), any())
onException(RuntimeException()) }.answers {
}.`when`(engineSession).requestProductAnalysis(any(), any(), any()) thirdArg<(Throwable) -> Unit>().invoke(RuntimeException())
}
val tab = createTab( val tab = createTab(
url = "https://www.shopping.org/product", url = "https://www.shopping.org/product",
@ -81,13 +81,14 @@ class DefaultReviewQualityCheckServiceTest {
@Test @Test
fun `WHEN fetch is called THEN fetch is called for the selected tab`() = runTest { fun `WHEN fetch is called THEN fetch is called for the selected tab`() = runTest {
val engineSession = mock<EngineSession>() val engineSession = mockk<EngineSession>()
val expected = ProductAnalysisTestData.productAnalysis()
val expected = mock<ProductAnalysis>() every {
doAnswer { invocation -> engineSession.requestProductAnalysis(any(), any(), any())
val onResult: (ProductAnalysis) -> Unit = invocation.getArgument(1) }.answers {
onResult(expected) secondArg<(ProductAnalysis) -> Unit>().invoke(expected)
}.`when`(engineSession).requestProductAnalysis(any(), any(), any()) }
val tab1 = createTab( val tab1 = createTab(
url = "https://www.mozilla.org", url = "https://www.mozilla.org",

Loading…
Cancel
Save