20
20
import org .junit .Test ;
21
21
22
22
import rx .Observable .Transformer ;
23
+ import rx .functions .Func1 ;
23
24
import rx .functions .Func2 ;
24
25
25
26
/**
26
27
* Test super/extends of generics.
27
28
*
28
- * See https://github.com/ReactiveX /RxJava/pull/331
29
+ * See https://github.com/Netflix /RxJava/pull/331
29
30
*/
30
31
public class CovarianceTest {
31
32
@@ -61,11 +62,11 @@ public Integer call(Media t1, Media t2) {
61
62
62
63
@ Test
63
64
public void testCovarianceOfCompose () {
64
- Observable <HorrorMovie > movie = Observable .< HorrorMovie > just (new HorrorMovie ());
65
+ Observable <HorrorMovie > movie = Observable .just (new HorrorMovie ());
65
66
Observable <Movie > movie2 = movie .compose (new Transformer <Movie , Movie >() {
66
67
67
68
@ Override
68
- public Observable <Movie > call (Observable <? extends Movie > t1 ) {
69
+ public Observable <? extends Movie > call (Observable <? extends Movie > t1 ) {
69
70
return Observable .just (new Movie ());
70
71
}
71
72
@@ -77,12 +78,45 @@ public void testCovarianceOfCompose2() {
77
78
Observable <Movie > movie = Observable .<Movie > just (new HorrorMovie ());
78
79
Observable <HorrorMovie > movie2 = movie .compose (new Transformer <Movie , HorrorMovie >() {
79
80
@ Override
80
- public Observable <HorrorMovie > call (Observable <? extends Movie > t1 ) {
81
+ public Observable <? extends HorrorMovie > call (Observable <? extends Movie > t1 ) {
81
82
return Observable .just (new HorrorMovie ());
82
83
}
83
84
});
84
85
}
85
-
86
+
87
+ @ Test
88
+ public void testCovarianceOfCompose3 () {
89
+ Observable <Movie > movie = Observable .<Movie >just (new HorrorMovie ());
90
+ Observable <HorrorMovie > movie2 = movie .compose (new Transformer <Movie , HorrorMovie >() {
91
+ @ Override
92
+ public Observable <? extends HorrorMovie > call (Observable <? extends Movie > t1 ) {
93
+ return Observable .just (new HorrorMovie ()).map (new Func1 <HorrorMovie , HorrorMovie >() {
94
+
95
+ @ Override
96
+ public HorrorMovie call (HorrorMovie horrorMovie ) {
97
+ return horrorMovie ;
98
+ }
99
+ });
100
+ }
101
+ });
102
+ }
103
+
104
+ @ Test
105
+ public void testCovarianceOfCompose4 () {
106
+ Observable <HorrorMovie > movie = Observable .just (new HorrorMovie ());
107
+ Observable <HorrorMovie > movie2 = movie .compose (new Transformer <HorrorMovie , HorrorMovie >() {
108
+ @ Override
109
+ public Observable <? extends HorrorMovie > call (Observable <? extends HorrorMovie > t1 ) {
110
+ return t1 .map (new Func1 <HorrorMovie , HorrorMovie >() {
111
+
112
+ @ Override
113
+ public HorrorMovie call (HorrorMovie horrorMovie ) {
114
+ return horrorMovie ;
115
+ }
116
+ });
117
+ }
118
+ });
119
+ }
86
120
87
121
/*
88
122
* Most tests are moved into their applicable classes such as [Operator]Tests.java
0 commit comments