Skip to content

Commit ae8b0be

Browse files
Merge pull request ReactiveX#353 from benjchristensen/take-unit-test
Take Operator Error Handling
2 parents cf01e27 + ed8940b commit ae8b0be

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

rxjava-core/src/test/java/rx/ObservableTests.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,4 +548,38 @@ public void call(String t1) {
548548
assertNotNull(exception.get());
549549
assertEquals("failure", exception.get().getMessage());
550550
}
551+
552+
@Test
553+
public void testTakeWithErrorInObserver() {
554+
final AtomicInteger count = new AtomicInteger();
555+
final AtomicReference<Throwable> error = new AtomicReference<Throwable>();
556+
Observable.from("1", "2", "three", "4").take(3).subscribe(new Observer<String>() {
557+
558+
@Override
559+
public void onCompleted() {
560+
System.out.println("completed");
561+
}
562+
563+
@Override
564+
public void onError(Throwable e) {
565+
error.set(e);
566+
System.out.println("error");
567+
e.printStackTrace();
568+
}
569+
570+
@Override
571+
public void onNext(String v) {
572+
int num = Integer.parseInt(v);
573+
System.out.println(num);
574+
// doSomething(num);
575+
count.incrementAndGet();
576+
}
577+
578+
});
579+
assertEquals(2, count.get());
580+
assertNotNull(error.get());
581+
if (!(error.get() instanceof NumberFormatException)) {
582+
fail("It should be a NumberFormatException");
583+
}
584+
}
551585
}

0 commit comments

Comments
 (0)