Skip to content

Commit 4e88e56

Browse files
Covariance Test with GroupedObservable.compose
1 parent 357effa commit 4e88e56

File tree

1 file changed

+43
-1
lines changed

1 file changed

+43
-1
lines changed

src/test/java/rx/CovarianceTest.java

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
package rx;
1717

18+
import static org.junit.Assert.assertEquals;
19+
1820
import java.util.ArrayList;
1921
import java.util.Arrays;
2022
import java.util.LinkedHashSet;
@@ -26,6 +28,8 @@
2628
import rx.Observable.Transformer;
2729
import rx.functions.Func1;
2830
import rx.functions.Func2;
31+
import rx.observables.GroupedObservable;
32+
import rx.observers.TestSubscriber;
2933

3034
/**
3135
* Test super/extends of generics.
@@ -63,7 +67,45 @@ public Integer call(Media t1, Media t2) {
6367
o2.toSortedList(SORT_FUNCTION);
6468
}
6569

66-
70+
@Test
71+
public void testGroupByCompose() {
72+
Observable<Movie> movies = Observable.just(new HorrorMovie(), new ActionMovie(), new Movie());
73+
TestSubscriber<String> ts = new TestSubscriber<String>();
74+
movies.groupBy(new Func1<Movie, Class<? extends Movie>>() {
75+
76+
@Override
77+
public Class<? extends Movie> call(Movie m) {
78+
return m.getClass();
79+
}
80+
81+
}).flatMap(new Func1<GroupedObservable<Class<? extends Movie>, Movie>, Observable<String>>() {
82+
83+
@Override
84+
public Observable<String> call(GroupedObservable<Class<? extends Movie>, Movie> g) {
85+
return g.compose(new Transformer<Movie, Movie>() {
86+
87+
@Override
88+
public Observable<? extends Movie> call(Observable<Movie> m) {
89+
return m.concatWith(Observable.just(new ActionMovie()));
90+
}
91+
92+
}).map(new Func1<Movie, String>() {
93+
94+
@Override
95+
public String call(Movie m) {
96+
return m.toString();
97+
}
98+
99+
});
100+
}
101+
102+
}).subscribe(ts);
103+
ts.assertTerminalEvent();
104+
ts.assertNoErrors();
105+
// System.out.println(ts.getOnNextEvents());
106+
assertEquals(6, ts.getOnNextEvents().size());
107+
}
108+
67109
@Test
68110
public void testCovarianceOfCompose() {
69111
Observable<HorrorMovie> movie = Observable.just(new HorrorMovie());

0 commit comments

Comments
 (0)