11package rx .operators ;
22
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 ;
74
85import org .junit .Before ;
96import org .junit .Test ;
107import org .junit .runner .RunWith ;
11- import org .mockito .Mock ;
128import org .mockito .MockitoAnnotations ;
139import org .robolectric .RobolectricTestRunner ;
14- import rx .Subscriber ;
1510import rx .functions .Functions ;
11+ import rx .observers .TestSubscriber ;
12+
13+ import java .util .Arrays ;
1614
1715@ RunWith (RobolectricTestRunner .class )
1816public class OperatorWeakBindingTest {
1917
20- @ Mock
21- private Subscriber <String > subscriber ;
18+ private TestSubscriber <String > subscriber = new TestSubscriber <String >();
2219
2320 @ Before
2421 public void setUp () throws Exception {
@@ -34,10 +31,9 @@ public void shouldForwardAllNotificationsWhenSubscriberAndTargetAlive() {
3431 weakSub .onCompleted ();
3532 weakSub .onError (new Exception ());
3633
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 ());
4137 }
4238
4339 @ Test
@@ -51,8 +47,9 @@ public void shouldUnsubscribeFromSourceSequenceWhenSubscriberReleased() {
5147 weakSub .onCompleted ();
5248 weakSub .onError (new Exception ());
5349
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 ());
5653 }
5754
5855 @ Test
@@ -66,8 +63,9 @@ public void shouldUnsubscribeFromSourceSequenceWhenTargetObjectReleased() {
6663 weakSub .onCompleted ();
6764 weakSub .onError (new Exception ());
6865
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 ());
7169 }
7270
7371 @ Test
@@ -81,6 +79,16 @@ public void shouldUnsubscribeFromSourceSequenceWhenPredicateFailsToPass() {
8179 weakSub .onCompleted ();
8280 weakSub .onError (new Exception ());
8381
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 ();
8593 }
8694}
0 commit comments