19
19
20
20
import com .twitter .sdk .android .core .Result ;
21
21
import com .twitter .sdk .android .core .SessionManager ;
22
+ import com .twitter .sdk .android .core .TwitterAuthToken ;
22
23
23
24
import org .junit .Before ;
24
25
import org .junit .Test ;
31
32
import static org .mockito .Matchers .any ;
32
33
import static org .mockito .Mockito .mock ;
33
34
import static org .mockito .Mockito .verify ;
35
+ import static org .mockito .Mockito .verifyNoMoreInteractions ;
34
36
import static org .mockito .Mockito .verifyZeroInteractions ;
37
+ import static org .mockito .Mockito .when ;
35
38
36
39
@ RunWith (RobolectricGradleTestRunner .class )
37
40
@ Config (constants = BuildConfig .class , sdk = 21 )
@@ -58,16 +61,52 @@ public void setUp() throws Exception {
58
61
}
59
62
60
63
@ Test
61
- public void testSuccess () throws Exception {
64
+ public void testSuccess_tokenChanged () throws Exception {
65
+ final DigitsSession changedSession = new DigitsSession (TestConstants .ANY_TOKEN ,
66
+ TestConstants .USER_ID , TestConstants .PHONE );
67
+ when (sessionManager .getSession (TestConstants .USER_ID )).thenReturn (changedSession );
68
+
69
+ verificationCallback .addSessionListener (sessionListener );
70
+ verificationCallback .addSessionListener (sessionListener2 );
71
+ verificationCallback .success (result );
72
+
73
+ verify (sessionManager ).setSession (TestConstants .USER_ID ,
74
+ DigitsSession .create (result .data ));
75
+ verify (sessionListener ).changed (any (DigitsSession .class ));
76
+ verify (sessionListener2 ).changed (any (DigitsSession .class ));
77
+ }
78
+
79
+ @ Test
80
+ public void testSuccess_phoneChanged () throws Exception {
81
+ final DigitsSession changedSession =
82
+ new DigitsSession (new TwitterAuthToken (TestConstants .TOKEN , TestConstants .SECRET ),
83
+ TestConstants .USER_ID , TestConstants .ES_RAW_PHONE );
84
+ when (sessionManager .getSession (TestConstants .USER_ID )).thenReturn (changedSession );
85
+
62
86
verificationCallback .addSessionListener (sessionListener );
63
87
verificationCallback .addSessionListener (sessionListener2 );
64
88
verificationCallback .success (result );
89
+
65
90
verify (sessionManager ).setSession (TestConstants .USER_ID ,
66
91
DigitsSession .create (result .data ));
67
92
verify (sessionListener ).changed (any (DigitsSession .class ));
68
93
verify (sessionListener2 ).changed (any (DigitsSession .class ));
69
94
}
70
95
96
+ @ Test
97
+ public void testSuccess_noSessionChange () throws Exception {
98
+ when (sessionManager .getSession (TestConstants .USER_ID )).thenReturn (
99
+ DigitsSession .create (result .data ));
100
+
101
+ verificationCallback .addSessionListener (sessionListener );
102
+ verificationCallback .addSessionListener (sessionListener2 );
103
+ verificationCallback .success (result );
104
+
105
+ verifyZeroInteractions (sessionListener );
106
+ verify (sessionManager ).getSession (TestConstants .USER_ID );
107
+ verifyNoMoreInteractions (sessionManager );
108
+ }
109
+
71
110
public void testSuccess_nullListener () throws Exception {
72
111
sessionListenerMap .put (null , Boolean .TRUE );
73
112
verificationCallback .success (result );
0 commit comments