1
1
package rx .operators ;
2
2
3
- import static org .mockito .Matchers .any ;
4
- import static org .mockito .Mockito .verify ;
5
- import static org .mockito .Mockito .verifyNoMoreInteractions ;
6
- import static org .mockito .Mockito .verifyZeroInteractions ;
3
+ import static org .junit .Assert .assertEquals ;
7
4
8
5
import org .junit .Before ;
9
6
import org .junit .Test ;
10
7
import org .junit .runner .RunWith ;
11
- import org .mockito .Mock ;
12
8
import org .mockito .MockitoAnnotations ;
13
9
import org .robolectric .RobolectricTestRunner ;
14
- import rx .Subscriber ;
15
10
import rx .functions .Functions ;
11
+ import rx .observers .TestSubscriber ;
12
+
13
+ import java .util .Arrays ;
16
14
17
15
@ RunWith (RobolectricTestRunner .class )
18
16
public class OperatorWeakBindingTest {
19
17
20
- @ Mock
21
- private Subscriber <String > subscriber ;
18
+ private TestSubscriber <String > subscriber = new TestSubscriber <String >();
22
19
23
20
@ Before
24
21
public void setUp () throws Exception {
@@ -34,10 +31,9 @@ public void shouldForwardAllNotificationsWhenSubscriberAndTargetAlive() {
34
31
weakSub .onCompleted ();
35
32
weakSub .onError (new Exception ());
36
33
37
- verify (subscriber ).onNext ("one" );
38
- verify (subscriber ).onNext ("two" );
39
- verify (subscriber ).onCompleted ();
40
- verify (subscriber ).onError (any (Exception .class ));
34
+ subscriber .assertReceivedOnNext (Arrays .asList ("one" , "two" ));
35
+ assertEquals (1 , subscriber .getOnCompletedEvents ().size ());
36
+ assertEquals (1 , subscriber .getOnErrorEvents ().size ());
41
37
}
42
38
43
39
@ Test
@@ -51,8 +47,9 @@ public void shouldUnsubscribeFromSourceSequenceWhenSubscriberReleased() {
51
47
weakSub .onCompleted ();
52
48
weakSub .onError (new Exception ());
53
49
54
- verify (subscriber ).onNext ("one" );
55
- verifyNoMoreInteractions (subscriber );
50
+ subscriber .assertReceivedOnNext (Arrays .asList ("one" ));
51
+ assertEquals (0 , subscriber .getOnCompletedEvents ().size ());
52
+ assertEquals (0 , subscriber .getOnErrorEvents ().size ());
56
53
}
57
54
58
55
@ Test
@@ -66,8 +63,9 @@ public void shouldUnsubscribeFromSourceSequenceWhenTargetObjectReleased() {
66
63
weakSub .onCompleted ();
67
64
weakSub .onError (new Exception ());
68
65
69
- verify (subscriber ).onNext ("one" );
70
- verifyNoMoreInteractions (subscriber );
66
+ subscriber .assertReceivedOnNext (Arrays .asList ("one" ));
67
+ assertEquals (0 , subscriber .getOnCompletedEvents ().size ());
68
+ assertEquals (0 , subscriber .getOnErrorEvents ().size ());
71
69
}
72
70
73
71
@ Test
@@ -81,6 +79,16 @@ public void shouldUnsubscribeFromSourceSequenceWhenPredicateFailsToPass() {
81
79
weakSub .onCompleted ();
82
80
weakSub .onError (new Exception ());
83
81
84
- verifyZeroInteractions (subscriber );
82
+ assertEquals (0 , subscriber .getOnNextEvents ().size ());
83
+ assertEquals (0 , subscriber .getOnCompletedEvents ().size ());
84
+ assertEquals (0 , subscriber .getOnErrorEvents ().size ());
85
+ }
86
+
87
+ @ Test
88
+ public void unsubscribeWillUnsubscribeFromWrappedSubscriber () {
89
+ OperatorWeakBinding <String , Object > op = new OperatorWeakBinding <String , Object >(new Object ());
90
+
91
+ op .call (subscriber ).unsubscribe ();
92
+ subscriber .assertUnsubscribed ();
85
93
}
86
94
}
0 commit comments