Skip to content

Commit d7e8e4f

Browse files
committed
2.x: TestObserver shouldn't clear the upstream disposable on terminated
1 parent 37bde8c commit d7e8e4f

File tree

8 files changed

+43
-15
lines changed

8 files changed

+43
-15
lines changed

src/main/java/io/reactivex/observers/TestObserver.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,6 @@ public void onError(Throwable t) {
173173
}
174174

175175
actual.onError(t);
176-
177-
subscription.lazySet(DisposableHelper.DISPOSED);
178176
} finally {
179177
done.countDown();
180178
}
@@ -194,8 +192,6 @@ public void onComplete() {
194192
completions++;
195193

196194
actual.onComplete();
197-
198-
subscription.lazySet(DisposableHelper.DISPOSED);
199195
} finally {
200196
done.countDown();
201197
}

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

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@
1414
package io.reactivex.internal.operators.completable;
1515

1616
import java.util.List;
17+
import java.util.concurrent.atomic.AtomicBoolean;
1718

18-
import org.junit.Test;
19+
import static org.junit.Assert.*;
20+
import org.junit.*;
1921

2022
import io.reactivex.*;
2123
import io.reactivex.exceptions.*;
22-
import io.reactivex.functions.Consumer;
24+
import io.reactivex.functions.*;
2325
import io.reactivex.observers.TestObserver;
2426

2527
public class CompletableDoOnTest {
@@ -52,4 +54,24 @@ public void accept(Throwable e) throws Exception {
5254
TestHelper.assertError(errors, 0, TestException.class, "Outer");
5355
TestHelper.assertError(errors, 1, TestException.class, "Inner");
5456
}
57+
58+
@Test
59+
public void doOnDisposeCalled() {
60+
final AtomicBoolean atomicBoolean = new AtomicBoolean();
61+
62+
assertFalse(atomicBoolean.get());
63+
64+
Completable.complete()
65+
.doOnDispose(new Action() {
66+
@Override
67+
public void run() throws Exception {
68+
atomicBoolean.set(true);
69+
}
70+
})
71+
.test()
72+
.assertResult()
73+
.dispose();
74+
75+
assertTrue(atomicBoolean.get());
76+
}
5577
}

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,8 @@ public void testUntilFires() {
205205

206206
assertFalse("Source still has observers", source.hasObservers());
207207
assertFalse("Until still has observers", until.hasObservers());
208-
assertTrue("Not cancelled!", ts.isCancelled());
208+
// 2.0.2 - not anymore
209+
// assertTrue("Not cancelled!", ts.isCancelled());
209210
}
210211
@Test
211212
public void testMainCompletes() {
@@ -228,7 +229,8 @@ public void testMainCompletes() {
228229

229230
assertFalse("Source still has observers", source.hasObservers());
230231
assertFalse("Until still has observers", until.hasObservers());
231-
assertTrue("Not cancelled!", ts.isCancelled());
232+
// 2.0.2 - not anymore
233+
// assertTrue("Not cancelled!", ts.isCancelled());
232234
}
233235
@Test
234236
public void testDownstreamUnsubscribes() {
@@ -250,7 +252,8 @@ public void testDownstreamUnsubscribes() {
250252

251253
assertFalse("Source still has observers", source.hasObservers());
252254
assertFalse("Until still has observers", until.hasObservers());
253-
assertTrue("Not cancelled!", ts.isCancelled());
255+
// 2.0.2 - not anymore
256+
// assertTrue("Not cancelled!", ts.isCancelled());
254257
}
255258

256259
@Test

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,8 @@ public boolean test(Integer t1) {
228228
ts.assertNoErrors();
229229
ts.assertValue(1);
230230

231-
Assert.assertTrue("Not cancelled!", ts.isCancelled());
231+
// 2.0.2 - not anymore
232+
// Assert.assertTrue("Not cancelled!", ts.isCancelled());
232233
}
233234

234235
@Test

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,9 @@ public Observable<String> call() {
296296
TestObserver<Observable<Integer>> ts = new TestObserver<Observable<Integer>>();
297297
source.window(boundary).subscribe(ts);
298298

299-
assertTrue("Not cancelled!", ts.isCancelled());
299+
// 2.0.2 - not anymore
300+
// assertTrue("Not cancelled!", ts.isCancelled());
301+
ts.assertComplete();
300302
}
301303

302304
@Test

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,8 @@ public Observable<Integer> apply(Integer t) {
226226
ts.assertNoErrors();
227227
ts.assertValueCount(1);
228228

229-
assertTrue("Not cancelled!", ts.isCancelled());
229+
// 2.0.2 - not anymore
230+
// assertTrue("Not cancelled!", ts.isCancelled());
230231
assertFalse(open.hasObservers());
231232
assertFalse(close.hasObservers());
232233
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,8 @@ public void testNoDownstreamUnsubscribe() {
255255

256256
source.onComplete();
257257

258-
assertTrue("Not cancelled!", ts.isCancelled());
258+
// 2.0.2 - not anymore
259+
// assertTrue("Not cancelled!", ts.isCancelled());
259260
}
260261

261262

src/test/java/io/reactivex/observers/TestObserverTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1175,14 +1175,16 @@ public void asyncQueueThrows() {
11751175

11761176
@Test
11771177
public void completedMeansDisposed() {
1178-
assertTrue(Observable.just(1)
1178+
// 2.0.2 - a terminated TestObserver no longer reports isDisposed
1179+
assertFalse(Observable.just(1)
11791180
.test()
11801181
.assertResult(1).isDisposed());
11811182
}
11821183

11831184
@Test
11841185
public void errorMeansDisposed() {
1185-
assertTrue(Observable.error(new TestException())
1186+
// 2.0.2 - a terminated TestObserver no longer reports isDisposed
1187+
assertFalse(Observable.error(new TestException())
11861188
.test()
11871189
.assertFailure(TestException.class).isDisposed());
11881190
}

0 commit comments

Comments
 (0)