Skip to content

Commit a957c78

Browse files
strekhaakarnokd
authored andcommitted
Implement 'toString' method for some Emitters (#5995)
* Implement 'toString' method for Emitters * Add tests to check that toString method of Emitters contains class name * Add 'assertEmpty' to prevent catching assertions by 'onError' * Add test to ensure that SerializedEmitter delegates 'toString' to parent emitter * Override emitter's 'toString' method * Add tests to check 'toString' method contains Emitter's class name * Add test for 'toString' method of SerializedEmitter
1 parent 416771e commit a957c78

File tree

10 files changed

+100
-0
lines changed

10 files changed

+100
-0
lines changed

src/main/java/io/reactivex/internal/operators/completable/CompletableCreate.java

+5
Original file line numberDiff line numberDiff line change
@@ -118,5 +118,10 @@ public void dispose() {
118118
public boolean isDisposed() {
119119
return DisposableHelper.isDisposed(get());
120120
}
121+
122+
@Override
123+
public String toString() {
124+
return String.format("%s{%s}", getClass().getSimpleName(), super.toString());
125+
}
121126
}
122127
}

src/main/java/io/reactivex/internal/operators/flowable/FlowableCreate.java

+10
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,11 @@ public boolean isCancelled() {
233233
public FlowableEmitter<T> serialize() {
234234
return this;
235235
}
236+
237+
@Override
238+
public String toString() {
239+
return emitter.toString();
240+
}
236241
}
237242

238243
abstract static class BaseEmitter<T>
@@ -338,6 +343,11 @@ public final long requested() {
338343
public final FlowableEmitter<T> serialize() {
339344
return new SerializedEmitter<T>(this);
340345
}
346+
347+
@Override
348+
public String toString() {
349+
return String.format("%s{%s}", getClass().getSimpleName(), super.toString());
350+
}
341351
}
342352

343353
static final class MissingEmitter<T> extends BaseEmitter<T> {

src/main/java/io/reactivex/internal/operators/maybe/MaybeCreate.java

+5
Original file line numberDiff line numberDiff line change
@@ -145,5 +145,10 @@ public void dispose() {
145145
public boolean isDisposed() {
146146
return DisposableHelper.isDisposed(get());
147147
}
148+
149+
@Override
150+
public String toString() {
151+
return String.format("%s{%s}", getClass().getSimpleName(), super.toString());
152+
}
148153
}
149154
}

src/main/java/io/reactivex/internal/operators/observable/ObservableCreate.java

+10
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,11 @@ public void dispose() {
126126
public boolean isDisposed() {
127127
return DisposableHelper.isDisposed(get());
128128
}
129+
130+
@Override
131+
public String toString() {
132+
return String.format("%s{%s}", getClass().getSimpleName(), super.toString());
133+
}
129134
}
130135

131136
/**
@@ -279,6 +284,11 @@ public boolean isDisposed() {
279284
public ObservableEmitter<T> serialize() {
280285
return this;
281286
}
287+
288+
@Override
289+
public String toString() {
290+
return emitter.toString();
291+
}
282292
}
283293

284294
}

src/main/java/io/reactivex/internal/operators/single/SingleCreate.java

+5
Original file line numberDiff line numberDiff line change
@@ -123,5 +123,10 @@ public void dispose() {
123123
public boolean isDisposed() {
124124
return DisposableHelper.isDisposed(get());
125125
}
126+
127+
@Override
128+
public String toString() {
129+
return String.format("%s{%s}", getClass().getSimpleName(), super.toString());
130+
}
126131
}
127132
}

src/test/java/io/reactivex/internal/operators/completable/CompletableCreateTest.java

+10
Original file line numberDiff line numberDiff line change
@@ -297,4 +297,14 @@ public void subscribe(CompletableEmitter e) throws Exception {
297297
RxJavaPlugins.reset();
298298
}
299299
}
300+
301+
@Test
302+
public void emitterHasToString() {
303+
Completable.create(new CompletableOnSubscribe() {
304+
@Override
305+
public void subscribe(CompletableEmitter emitter) throws Exception {
306+
assertTrue(emitter.toString().contains(CompletableCreate.Emitter.class.getSimpleName()));
307+
}
308+
}).test().assertEmpty();
309+
}
300310
}

src/test/java/io/reactivex/internal/operators/flowable/FlowableCreateTest.java

+24
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
import static org.junit.Assert.*;
1717

1818
import java.io.IOException;
19+
import java.util.HashMap;
1920
import java.util.List;
21+
import java.util.Map;
2022

2123
import org.junit.Test;
2224
import org.reactivestreams.*;
@@ -931,4 +933,26 @@ public void subscribe(FlowableEmitter<Object> e) throws Exception {
931933
}
932934
}
933935
}
936+
937+
@Test
938+
public void emittersHasToString() {
939+
Map<BackpressureStrategy, Class<? extends FlowableEmitter>> emitterMap =
940+
new HashMap<BackpressureStrategy, Class<? extends FlowableEmitter>>();
941+
942+
emitterMap.put(BackpressureStrategy.MISSING, FlowableCreate.MissingEmitter.class);
943+
emitterMap.put(BackpressureStrategy.ERROR, FlowableCreate.ErrorAsyncEmitter.class);
944+
emitterMap.put(BackpressureStrategy.DROP, FlowableCreate.DropAsyncEmitter.class);
945+
emitterMap.put(BackpressureStrategy.LATEST, FlowableCreate.LatestAsyncEmitter.class);
946+
emitterMap.put(BackpressureStrategy.BUFFER, FlowableCreate.BufferAsyncEmitter.class);
947+
948+
for (final Map.Entry<BackpressureStrategy, Class<? extends FlowableEmitter>> entry : emitterMap.entrySet()) {
949+
Flowable.create(new FlowableOnSubscribe<Object>() {
950+
@Override
951+
public void subscribe(FlowableEmitter<Object> emitter) throws Exception {
952+
assertTrue(emitter.toString().contains(entry.getValue().getSimpleName()));
953+
assertTrue(emitter.serialize().toString().contains(entry.getValue().getSimpleName()));
954+
}
955+
}, entry.getKey()).test().assertEmpty();
956+
}
957+
}
934958
}

src/test/java/io/reactivex/internal/operators/maybe/MaybeCreateTest.java

+10
Original file line numberDiff line numberDiff line change
@@ -335,4 +335,14 @@ public void subscribe(MaybeEmitter<Object> e) throws Exception {
335335
RxJavaPlugins.reset();
336336
}
337337
}
338+
339+
@Test
340+
public void emitterHasToString() {
341+
Maybe.create(new MaybeOnSubscribe<Object>() {
342+
@Override
343+
public void subscribe(MaybeEmitter<Object> emitter) throws Exception {
344+
assertTrue(emitter.toString().contains(MaybeCreate.Emitter.class.getSimpleName()));
345+
}
346+
}).test().assertEmpty();
347+
}
338348
}

src/test/java/io/reactivex/internal/operators/observable/ObservableCreateTest.java

+11
Original file line numberDiff line numberDiff line change
@@ -643,4 +643,15 @@ public void subscribe(ObservableEmitter<Object> e) throws Exception {
643643
RxJavaPlugins.reset();
644644
}
645645
}
646+
647+
@Test
648+
public void emitterHasToString() {
649+
Observable.create(new ObservableOnSubscribe<Object>() {
650+
@Override
651+
public void subscribe(ObservableEmitter<Object> emitter) throws Exception {
652+
assertTrue(emitter.toString().contains(ObservableCreate.CreateEmitter.class.getSimpleName()));
653+
assertTrue(emitter.serialize().toString().contains(ObservableCreate.CreateEmitter.class.getSimpleName()));
654+
}
655+
}).test().assertEmpty();
656+
}
646657
}

src/test/java/io/reactivex/internal/operators/single/SingleCreateTest.java

+10
Original file line numberDiff line numberDiff line change
@@ -307,4 +307,14 @@ public void subscribe(SingleEmitter<Object> e) throws Exception {
307307
RxJavaPlugins.reset();
308308
}
309309
}
310+
311+
@Test
312+
public void emitterHasToString() {
313+
Single.create(new SingleOnSubscribe<Object>() {
314+
@Override
315+
public void subscribe(SingleEmitter<Object> emitter) throws Exception {
316+
assertTrue(emitter.toString().contains(SingleCreate.Emitter.class.getSimpleName()));
317+
}
318+
}).test().assertEmpty();
319+
}
310320
}

0 commit comments

Comments
 (0)