24
24
25
25
import rx .Observer ;
26
26
import rx .Subscription ;
27
+ import rx .functions .Func0 ;
27
28
import rx .observables .ConnectableObservable ;
28
29
import rx .subjects .PublishSubject ;
29
30
import rx .subjects .Subject ;
@@ -34,8 +35,7 @@ public class OnSubscribeMulticastTest {
34
35
public void testMulticast () {
35
36
Subject <String , String > source = PublishSubject .create ();
36
37
37
- ConnectableObservable <String > multicasted = source .multicast (
38
- PublishSubject .<String > create ());
38
+ ConnectableObservable <String > multicasted = source .multicast (new PublishSubjectFactory ());
39
39
40
40
@ SuppressWarnings ("unchecked" )
41
41
Observer <String > observer = mock (Observer .class );
@@ -62,8 +62,7 @@ public void testMulticast() {
62
62
public void testMulticastConnectTwice () {
63
63
Subject <String , String > source = PublishSubject .create ();
64
64
65
- ConnectableObservable <String > multicasted = source .multicast (
66
- PublishSubject .<String > create ());
65
+ ConnectableObservable <String > multicasted = source .multicast (new PublishSubjectFactory ());
67
66
68
67
@ SuppressWarnings ("unchecked" )
69
68
Observer <String > observer = mock (Observer .class );
@@ -87,8 +86,7 @@ public void testMulticastConnectTwice() {
87
86
public void testMulticastDisconnect () {
88
87
Subject <String , String > source = PublishSubject .create ();
89
88
90
- ConnectableObservable <String > multicasted = source .multicast (
91
- PublishSubject .<String > create ());
89
+ ConnectableObservable <String > multicasted = source .multicast (new PublishSubjectFactory ());
92
90
93
91
@ SuppressWarnings ("unchecked" )
94
92
Observer <String > observer = mock (Observer .class );
@@ -102,6 +100,9 @@ public void testMulticastDisconnect() {
102
100
connection .unsubscribe ();
103
101
source .onNext ("three" );
104
102
103
+ // subscribe again
104
+ multicasted .subscribe (observer );
105
+ // reconnect
105
106
multicasted .connect ();
106
107
source .onNext ("four" );
107
108
source .onCompleted ();
@@ -113,4 +114,13 @@ public void testMulticastDisconnect() {
113
114
verify (observer , times (1 )).onCompleted ();
114
115
115
116
}
117
+
118
+ private static final class PublishSubjectFactory implements Func0 <Subject <String , String >> {
119
+
120
+ @ Override
121
+ public Subject <String , String > call () {
122
+ return PublishSubject .<String > create ();
123
+ }
124
+
125
+ }
116
126
}
0 commit comments