39
39
import rx .functions .Action1 ;
40
40
import rx .functions .Func1 ;
41
41
import rx .functions .Func2 ;
42
+ import rx .schedulers .TestScheduler ;
42
43
import rx .observers .TestSubscriber ;
43
44
import rx .schedulers .Schedulers ;
44
45
import rx .subscriptions .Subscriptions ;
45
46
47
+
46
48
public class SingleTest {
47
49
48
50
@ Test
@@ -436,7 +438,7 @@ public void call() {
436
438
fail ("timed out waiting for latch" );
437
439
}
438
440
}
439
-
441
+
440
442
@ Test
441
443
public void testBackpressureAsObservable () {
442
444
Single <String > s = Single .create (new OnSubscribe <String >() {
@@ -462,7 +464,7 @@ public void onStart() {
462
464
463
465
ts .assertValue ("hello" );
464
466
}
465
-
467
+
466
468
@ Test
467
469
public void testToObservable () {
468
470
Observable <String > a = Single .just ("a" ).toObservable ();
@@ -648,4 +650,43 @@ public void doOnSuccessShouldNotSwallowExceptionThrownByAction() {
648
650
649
651
verify (action ).call (eq ("value" ));
650
652
}
653
+
654
+ @ Test
655
+ public void delayWithSchedulerShouldDelayCompletion () {
656
+ TestScheduler scheduler = new TestScheduler ();
657
+ Single <Integer > single = Single .just (1 ).delay (100 , TimeUnit .DAYS , scheduler );
658
+
659
+ TestSubscriber <Integer > subscriber = new TestSubscriber <Integer >();
660
+ single .subscribe (subscriber );
661
+
662
+ subscriber .assertNotCompleted ();
663
+ scheduler .advanceTimeBy (99 , TimeUnit .DAYS );
664
+ subscriber .assertNotCompleted ();
665
+ scheduler .advanceTimeBy (91 , TimeUnit .DAYS );
666
+ subscriber .assertCompleted ();
667
+ subscriber .assertValue (1 );
668
+ }
669
+
670
+ @ Test
671
+ public void delayWithSchedulerShouldShortCutWithFailure () {
672
+ TestScheduler scheduler = new TestScheduler ();
673
+ final RuntimeException expected = new RuntimeException ();
674
+ Single <Integer > single = Single .create (new OnSubscribe <Integer >() {
675
+ @ Override
676
+ public void call (SingleSubscriber <? super Integer > singleSubscriber ) {
677
+ singleSubscriber .onSuccess (1 );
678
+ singleSubscriber .onError (expected );
679
+ }
680
+ }).delay (100 , TimeUnit .DAYS , scheduler );
681
+
682
+ TestSubscriber <Integer > subscriber = new TestSubscriber <Integer >();
683
+ single .subscribe (subscriber );
684
+
685
+ subscriber .assertNotCompleted ();
686
+ scheduler .advanceTimeBy (99 , TimeUnit .DAYS );
687
+ subscriber .assertNotCompleted ();
688
+ scheduler .advanceTimeBy (91 , TimeUnit .DAYS );
689
+ subscriber .assertNoValues ();
690
+ subscriber .assertError (expected );
691
+ }
651
692
}
0 commit comments