Skip to content

Commit 68a14b9

Browse files
authored
Merge pull request #2 from akarnokd/AsConverterFix
as(): Fix tests and update validator
2 parents c1f26ee + e13a978 commit 68a14b9

File tree

2 files changed

+98
-8
lines changed

2 files changed

+98
-8
lines changed

src/test/java/io/reactivex/ConverterTest.java

+58-8
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,24 @@
1+
/**
2+
* Copyright (c) 2016-present, RxJava Contributors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
5+
* compliance with the License. You may obtain a copy of the License at
6+
*
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*
9+
* Unless required by applicable law or agreed to in writing, software distributed under the License is
10+
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
11+
* the License for the specific language governing permissions and limitations under the License.
12+
*/
13+
114
package io.reactivex;
215

3-
import io.reactivex.exceptions.TestException;
16+
import static org.junit.Assert.*;
17+
418
import org.junit.Test;
519

6-
import static org.junit.Assert.*;
20+
import io.reactivex.exceptions.TestException;
21+
import io.reactivex.parallel.*;
722

823
public final class ConverterTest {
924

@@ -70,7 +85,7 @@ public Integer apply(Maybe<Integer> v) {
7085
@Test
7186
public void completableConverterThrows() {
7287
try {
73-
Completable.complete().as(new CompletableConverter() {
88+
Completable.complete().as(new CompletableConverter<Completable>() {
7489
@Override
7590
public Completable apply(Completable v) {
7691
throw new TestException("Forced failure");
@@ -84,32 +99,44 @@ public Completable apply(Completable v) {
8499

85100
// Test demos for signature generics in compose() methods. Just needs to compile.
86101

102+
@SuppressWarnings({ "rawtypes", "unchecked" })
87103
@Test
88104
public void observableGenericsSignatureTest() {
89105
A<String, Integer> a = new A<String, Integer>() { };
90106

91-
Observable.just(a).as(ConverterTest.<Integer>testObservableConverterCreator());
107+
Observable.just(a).as((ObservableConverter)ConverterTest.testObservableConverterCreator());
92108
}
93109

110+
@SuppressWarnings({ "rawtypes", "unchecked" })
94111
@Test
95112
public void singleGenericsSignatureTest() {
96113
A<String, Integer> a = new A<String, Integer>() { };
97114

98-
Single.just(a).as(ConverterTest.<Integer>testSingleConverterCreator());
115+
Single.just(a).as((SingleConverter)ConverterTest.<String>testSingleConverterCreator());
99116
}
100117

118+
@SuppressWarnings({ "rawtypes", "unchecked" })
101119
@Test
102120
public void maybeGenericsSignatureTest() {
103121
A<String, Integer> a = new A<String, Integer>() { };
104122

105-
Maybe.just(a).as(ConverterTest.<Integer>testMaybeConverterCreator());
123+
Maybe.just(a).as((MaybeConverter)ConverterTest.<String>testMaybeConverterCreator());
106124
}
107125

126+
@SuppressWarnings({ "rawtypes", "unchecked" })
108127
@Test
109128
public void flowableGenericsSignatureTest() {
110129
A<String, Integer> a = new A<String, Integer>() { };
111130

112-
Flowable.just(a).as(ConverterTest.<Integer>testFlowableConverterCreator());
131+
Flowable.just(a).as((FlowableConverter)ConverterTest.<String>testFlowableConverterCreator());
132+
}
133+
134+
@SuppressWarnings({ "rawtypes", "unchecked" })
135+
@Test
136+
public void parallelFlowableGenericsSignatureTest() {
137+
A<String, Integer> a = new A<String, Integer>() { };
138+
139+
Flowable.just(a).parallel().as((ParallelFlowableConverter)ConverterTest.<String>testParallelFlowableConverterCreator());
113140
}
114141

115142
@Test
@@ -140,6 +167,12 @@ public void compositeTest() {
140167
.as(converter)
141168
.test()
142169
.assertComplete();
170+
171+
Flowable.just(1)
172+
.parallel()
173+
.as(converter)
174+
.test()
175+
.assertValue(1);
143176
}
144177

145178
interface A<T, R> { }
@@ -185,11 +218,28 @@ public B<T> apply(Flowable<A<T, ?>> a) {
185218
};
186219
}
187220

188-
private static class CompositeConverter implements ObservableConverter<Integer, Flowable<Integer>>,
221+
private static <T> ParallelFlowableConverter<A<T, ?>, B<T>> testParallelFlowableConverterCreator() {
222+
return new ParallelFlowableConverter<A<T, ?>, B<T>>() {
223+
@Override
224+
public B<T> apply(ParallelFlowable<A<T, ?>> a) {
225+
return new B<T>() {
226+
};
227+
}
228+
};
229+
}
230+
231+
static class CompositeConverter
232+
implements ObservableConverter<Integer, Flowable<Integer>>,
233+
ParallelFlowableConverter<Integer, Flowable<Integer>>,
189234
FlowableConverter<Integer, Observable<Integer>>,
190235
MaybeConverter<Integer, Flowable<Integer>>,
191236
SingleConverter<Integer, Flowable<Integer>>,
192237
CompletableConverter<Flowable<Integer>> {
238+
@Override
239+
public Flowable<Integer> apply(ParallelFlowable<Integer> upstream) throws Exception {
240+
return upstream.sequential();
241+
}
242+
193243
@Override
194244
public Flowable<Integer> apply(Completable upstream) throws Exception {
195245
return upstream.toFlowable();

src/test/java/io/reactivex/ParamValidationCheckerTest.java

+40
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,46 @@ public void checkParallelFlowable() {
560560

561561
defaultValues.put(ParallelFailureHandling.class, ParallelFailureHandling.ERROR);
562562

563+
@SuppressWarnings("rawtypes")
564+
class MixedConverters implements FlowableConverter, ObservableConverter, SingleConverter,
565+
MaybeConverter, CompletableConverter, ParallelFlowableConverter {
566+
567+
@Override
568+
public Object apply(ParallelFlowable upstream) throws Exception {
569+
return upstream;
570+
}
571+
572+
@Override
573+
public Object apply(Completable upstream) throws Exception {
574+
return upstream;
575+
}
576+
577+
@Override
578+
public Object apply(Maybe upstream) throws Exception {
579+
return upstream;
580+
}
581+
582+
@Override
583+
public Object apply(Single upstream) throws Exception {
584+
return upstream;
585+
}
586+
587+
@Override
588+
public Object apply(Observable upstream) throws Exception {
589+
return upstream;
590+
}
591+
592+
@Override
593+
public Object apply(Flowable upstream) throws Exception {
594+
return upstream;
595+
}
596+
}
597+
598+
MixedConverters mc = new MixedConverters();
599+
for (Class<?> c : MixedConverters.class.getInterfaces()) {
600+
defaultValues.put(c, mc);
601+
}
602+
563603
// -----------------------------------------------------------------------------------
564604

565605
defaultInstances = new HashMap<Class<?>, List<Object>>();

0 commit comments

Comments
 (0)