Skip to content

Commit 5ea3b59

Browse files
committed
Fixing unit testing
1 parent 4abfd30 commit 5ea3b59

1 file changed

Lines changed: 37 additions & 2 deletions

File tree

WordPress/src/test/java/org/wordpress/android/sharedlogin/resolver/SharedLoginResolverTest.kt

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ package org.wordpress.android.sharedlogin.resolver
33
import android.content.ContentResolver
44
import android.content.Context
55
import android.database.MatrixCursor
6+
import com.nhaarman.mockitokotlin2.KArgumentCaptor
67
import com.nhaarman.mockitokotlin2.any
8+
import com.nhaarman.mockitokotlin2.argumentCaptor
9+
import com.nhaarman.mockitokotlin2.doAnswer
710
import com.nhaarman.mockitokotlin2.mock
811
import com.nhaarman.mockitokotlin2.never
912
import com.nhaarman.mockitokotlin2.times
@@ -16,6 +19,7 @@ import org.wordpress.android.fluxc.annotations.action.Action
1619
import org.wordpress.android.fluxc.store.AccountStore
1720
import org.wordpress.android.fluxc.store.AccountStore.UpdateTokenPayload
1821
import org.wordpress.android.provider.query.QueryResult
22+
import org.wordpress.android.reader.savedposts.resolver.ReaderSavedPostsResolver
1923
import org.wordpress.android.resolver.ContentResolverWrapper
2024
import org.wordpress.android.sharedlogin.JetpackSharedLoginFlag
2125
import org.wordpress.android.sharedlogin.SharedLoginAnalyticsTracker
@@ -28,6 +32,9 @@ import org.wordpress.android.util.AccountActionBuilderWrapper
2832
import org.wordpress.android.viewmodel.ContextProvider
2933

3034
class SharedLoginResolverTest {
35+
private lateinit var onSuccessFlagsCaptor: KArgumentCaptor<() -> Unit>
36+
private lateinit var onSuccessRaaderPostsCaptor: KArgumentCaptor<() -> Unit>
37+
3138
private val jetpackSharedLoginFlag: JetpackSharedLoginFlag = mock()
3239
private val contextProvider: ContextProvider = mock()
3340
private val wordPressPublicData: WordPressPublicData = mock()
@@ -39,6 +46,8 @@ class SharedLoginResolverTest {
3946
private val appPrefsWrapper: AppPrefsWrapper = mock()
4047
private val sharedLoginAnalyticsTracker: SharedLoginAnalyticsTracker = mock()
4148
private val userFlagsResolver: UserFlagsResolver = mock()
49+
private val readerSavedPostsResolver: ReaderSavedPostsResolver = mock()
50+
4251
private val classToTest = SharedLoginResolver(
4352
jetpackSharedLoginFlag,
4453
contextProvider,
@@ -50,7 +59,8 @@ class SharedLoginResolverTest {
5059
accountActionBuilderWrapper,
5160
appPrefsWrapper,
5261
sharedLoginAnalyticsTracker,
53-
userFlagsResolver
62+
userFlagsResolver,
63+
readerSavedPostsResolver
5464
)
5565
private val loggedInToken = "valid"
5666
private val notLoggedInToken = ""
@@ -106,10 +116,23 @@ class SharedLoginResolverTest {
106116
}
107117

108118
@Test
109-
fun `Should dispatch UpdateTokenPayload if access token is NOT empty`() {
119+
fun `Should dispatch UpdateTokenPayload if access token is NOT, flags and saved posts are migrated`() {
110120
featureEnabled()
121+
onSuccessFlagsCaptor = argumentCaptor()
122+
onSuccessRaaderPostsCaptor = argumentCaptor()
123+
111124
whenever(queryResult.getValue<String>(mockCursor)).thenReturn(loggedInToken)
125+
whenever(userFlagsResolver.tryGetUserFlags(
126+
onSuccessFlagsCaptor.capture(),
127+
any()
128+
)).doAnswer { onSuccessFlagsCaptor.firstValue.invoke() }
129+
whenever(readerSavedPostsResolver.tryGetReaderSavedPosts(
130+
onSuccessRaaderPostsCaptor.capture(),
131+
any()
132+
)).doAnswer { onSuccessRaaderPostsCaptor.firstValue.invoke() }
133+
112134
classToTest.tryJetpackLogin()
135+
113136
verify(dispatcher).dispatch(updateTokenAction)
114137
}
115138

@@ -124,7 +147,19 @@ class SharedLoginResolverTest {
124147
@Test
125148
fun `Should NOT dispatch UpdateTokenPayload if access token IS empty`() {
126149
featureEnabled()
150+
onSuccessFlagsCaptor = argumentCaptor()
151+
onSuccessRaaderPostsCaptor = argumentCaptor()
152+
127153
whenever(queryResult.getValue<String>(mockCursor)).thenReturn(notLoggedInToken)
154+
whenever(userFlagsResolver.tryGetUserFlags(
155+
onSuccessFlagsCaptor.capture(),
156+
any()
157+
)).doAnswer { onSuccessFlagsCaptor.firstValue.invoke() }
158+
whenever(readerSavedPostsResolver.tryGetReaderSavedPosts(
159+
onSuccessRaaderPostsCaptor.capture(),
160+
any()
161+
)).doAnswer { onSuccessRaaderPostsCaptor.firstValue.invoke() }
162+
128163
classToTest.tryJetpackLogin()
129164
verify(dispatcher, never()).dispatch(updateTokenAction)
130165
}

0 commit comments

Comments
 (0)