31
31
import rx .subjects .PublishSubject ;
32
32
import rx .subscriptions .*;
33
33
34
+ import static org .mockito .Mockito .*;
35
+ import static org .junit .Assert .*;
36
+
34
37
/**
35
38
* Test Completable methods and operators.
36
39
*/
@@ -3410,4 +3413,135 @@ public void endWithFlowableError() {
3410
3413
ts .assertError (TestException .class );
3411
3414
ts .assertNotCompleted ();
3412
3415
}
3416
+
3417
+ @ Test
3418
+ public void usingFactoryThrows () {
3419
+ @ SuppressWarnings ("unchecked" )
3420
+ Action1 <Integer > onDispose = mock (Action1 .class );
3421
+
3422
+ TestSubscriber <Integer > ts = TestSubscriber .create ();
3423
+
3424
+ Completable .using (new Func0 <Integer >() {
3425
+ @ Override
3426
+ public Integer call () {
3427
+ return 1 ;
3428
+ }
3429
+ },
3430
+ new Func1 <Integer , Completable >() {
3431
+ @ Override
3432
+ public Completable call (Integer t ) {
3433
+ throw new TestException ();
3434
+ }
3435
+ }, onDispose ).subscribe (ts );
3436
+
3437
+ verify (onDispose ).call (1 );
3438
+
3439
+ ts .assertNoValues ();
3440
+ ts .assertNotCompleted ();
3441
+ ts .assertError (TestException .class );
3442
+ }
3443
+
3444
+ @ Test
3445
+ public void usingFactoryAndDisposerThrow () {
3446
+ Action1 <Integer > onDispose = new Action1 <Integer >() {
3447
+ @ Override
3448
+ public void call (Integer t ) {
3449
+ throw new TestException ();
3450
+ }
3451
+ };
3452
+
3453
+ TestSubscriber <Integer > ts = TestSubscriber .create ();
3454
+
3455
+ Completable .using (new Func0 <Integer >() {
3456
+ @ Override
3457
+ public Integer call () {
3458
+ return 1 ;
3459
+ }
3460
+ },
3461
+ new Func1 <Integer , Completable >() {
3462
+ @ Override
3463
+ public Completable call (Integer t ) {
3464
+ throw new TestException ();
3465
+ }
3466
+ }, onDispose ).subscribe (ts );
3467
+
3468
+ ts .assertNoValues ();
3469
+ ts .assertNotCompleted ();
3470
+ ts .assertError (CompositeException .class );
3471
+
3472
+ CompositeException ex = (CompositeException )ts .getOnErrorEvents ().get (0 );
3473
+
3474
+ List <Throwable > listEx = ex .getExceptions ();
3475
+
3476
+ assertEquals (2 , listEx .size ());
3477
+
3478
+ assertTrue (listEx .get (0 ).toString (), listEx .get (0 ) instanceof TestException );
3479
+ assertTrue (listEx .get (1 ).toString (), listEx .get (1 ) instanceof TestException );
3480
+ }
3481
+
3482
+ @ Test
3483
+ public void usingFactoryReturnsNull () {
3484
+ @ SuppressWarnings ("unchecked" )
3485
+ Action1 <Integer > onDispose = mock (Action1 .class );
3486
+
3487
+ TestSubscriber <Integer > ts = TestSubscriber .create ();
3488
+
3489
+ Completable .using (new Func0 <Integer >() {
3490
+ @ Override
3491
+ public Integer call () {
3492
+ return 1 ;
3493
+ }
3494
+ },
3495
+ new Func1 <Integer , Completable >() {
3496
+ @ Override
3497
+ public Completable call (Integer t ) {
3498
+ return null ;
3499
+ }
3500
+ }, onDispose ).subscribe (ts );
3501
+
3502
+ verify (onDispose ).call (1 );
3503
+
3504
+ ts .assertNoValues ();
3505
+ ts .assertNotCompleted ();
3506
+ ts .assertError (NullPointerException .class );
3507
+ }
3508
+
3509
+ @ Test
3510
+ public void usingFactoryReturnsNullAndDisposerThrows () {
3511
+ Action1 <Integer > onDispose = new Action1 <Integer >() {
3512
+ @ Override
3513
+ public void call (Integer t ) {
3514
+ throw new TestException ();
3515
+ }
3516
+ };
3517
+
3518
+ TestSubscriber <Integer > ts = TestSubscriber .create ();
3519
+
3520
+ Completable .using (new Func0 <Integer >() {
3521
+ @ Override
3522
+ public Integer call () {
3523
+ return 1 ;
3524
+ }
3525
+ },
3526
+ new Func1 <Integer , Completable >() {
3527
+ @ Override
3528
+ public Completable call (Integer t ) {
3529
+ return null ;
3530
+ }
3531
+ }, onDispose ).subscribe (ts );
3532
+
3533
+ ts .assertNoValues ();
3534
+ ts .assertNotCompleted ();
3535
+ ts .assertError (CompositeException .class );
3536
+
3537
+ CompositeException ex = (CompositeException )ts .getOnErrorEvents ().get (0 );
3538
+
3539
+ List <Throwable > listEx = ex .getExceptions ();
3540
+
3541
+ assertEquals (2 , listEx .size ());
3542
+
3543
+ assertTrue (listEx .get (0 ).toString (), listEx .get (0 ) instanceof NullPointerException );
3544
+ assertTrue (listEx .get (1 ).toString (), listEx .get (1 ) instanceof TestException );
3545
+ }
3546
+
3413
3547
}
0 commit comments