@@ -3,7 +3,10 @@ package org.wordpress.android.sharedlogin.resolver
33import android.content.ContentResolver
44import android.content.Context
55import android.database.MatrixCursor
6+ import com.nhaarman.mockitokotlin2.KArgumentCaptor
67import com.nhaarman.mockitokotlin2.any
8+ import com.nhaarman.mockitokotlin2.argumentCaptor
9+ import com.nhaarman.mockitokotlin2.doAnswer
710import com.nhaarman.mockitokotlin2.mock
811import com.nhaarman.mockitokotlin2.never
912import com.nhaarman.mockitokotlin2.times
@@ -16,6 +19,7 @@ import org.wordpress.android.fluxc.annotations.action.Action
1619import org.wordpress.android.fluxc.store.AccountStore
1720import org.wordpress.android.fluxc.store.AccountStore.UpdateTokenPayload
1821import org.wordpress.android.provider.query.QueryResult
22+ import org.wordpress.android.reader.savedposts.resolver.ReaderSavedPostsResolver
1923import org.wordpress.android.resolver.ContentResolverWrapper
2024import org.wordpress.android.sharedlogin.JetpackSharedLoginFlag
2125import org.wordpress.android.sharedlogin.SharedLoginAnalyticsTracker
@@ -28,6 +32,9 @@ import org.wordpress.android.util.AccountActionBuilderWrapper
2832import org.wordpress.android.viewmodel.ContextProvider
2933
3034class 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