Support rx.Completable

This commit is contained in:
Sebastien Deleuze 2016-07-04 11:05:49 +02:00
parent a1d4fe6938
commit b7b6704c7e
2 changed files with 17 additions and 0 deletions

View File

@ -20,10 +20,12 @@ import java.util.LinkedHashSet;
import java.util.Set;
import org.reactivestreams.Publisher;
import reactor.core.converter.RxJava1CompletableConverter;
import reactor.core.converter.RxJava1ObservableConverter;
import reactor.core.converter.RxJava1SingleConverter;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import rx.Completable;
import rx.Observable;
import rx.Single;
@ -43,6 +45,8 @@ public final class ReactorToRxJava1Converter implements GenericConverter {
pairs.add(new GenericConverter.ConvertiblePair(Observable.class, Flux.class));
pairs.add(new GenericConverter.ConvertiblePair(Mono.class, Single.class));
pairs.add(new GenericConverter.ConvertiblePair(Single.class, Mono.class));
pairs.add(new GenericConverter.ConvertiblePair(Mono.class, Completable.class));
pairs.add(new GenericConverter.ConvertiblePair(Completable.class, Mono.class));
return pairs;
}
@ -63,6 +67,12 @@ public final class ReactorToRxJava1Converter implements GenericConverter {
else if (Single.class.isAssignableFrom(targetType.getType())) {
return RxJava1SingleConverter.from((Publisher) source);
}
else if (Completable.class.isAssignableFrom(sourceType.getType())) {
return RxJava1CompletableConverter.from((Completable) source);
}
else if (Completable.class.isAssignableFrom(targetType.getType())) {
return RxJava1CompletableConverter.from((Publisher) source);
}
return null;
}

View File

@ -20,6 +20,7 @@ import org.junit.Test;
import org.reactivestreams.Publisher;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import rx.Completable;
import rx.Observable;
import rx.Single;
@ -49,9 +50,15 @@ public class ReactorToRxJava1ConverterTests {
assertTrue(this.conversionService.canConvert(Mono.class, Single.class));
assertTrue(this.conversionService.canConvert(Single.class, Mono.class));
assertTrue(this.conversionService.canConvert(Mono.class, Completable.class));
assertTrue(this.conversionService.canConvert(Completable.class, Mono.class));
assertFalse(this.conversionService.canConvert(Flux.class, Single.class));
assertFalse(this.conversionService.canConvert(Single.class, Flux.class));
assertFalse(this.conversionService.canConvert(Flux.class, Completable.class));
assertFalse(this.conversionService.canConvert(Completable.class, Flux.class));
assertFalse(this.conversionService.canConvert(Mono.class, Observable.class));
assertFalse(this.conversionService.canConvert(Observable.class, Mono.class));