@@ -317,218 +317,6 @@ public void request(long n) {
317
317
assertEquals (3 , requested .get ());
318
318
}
319
319
320
- @ Test
321
- public void testSetProducerFromOperator () {
322
- final AtomicLong requested1 = new AtomicLong ();
323
- final AtomicLong requested2 = new AtomicLong ();
324
- final AtomicReference <Producer > producer1 = new AtomicReference <Producer >();
325
- final AtomicReference <Producer > producer2 = new AtomicReference <Producer >();
326
- final AtomicReference <Producer > gotProducer = new AtomicReference <Producer >();
327
- Observable .create (new OnSubscribe <Integer >() {
328
-
329
- @ Override
330
- public void call (final Subscriber <? super Integer > s ) {
331
- Producer p1 = new Producer () {
332
- int index = 0 ;
333
-
334
- @ Override
335
- public void request (long n ) {
336
- requested1 .set (n );
337
- System .out .println ("onSubscribe => requested: " + n );
338
- for (int i = 0 ; i < n ; i ++) {
339
- s .onNext (index ++);
340
- }
341
- }
342
-
343
- };
344
- producer1 .set (p1 );
345
- s .setProducer (p1 );
346
- }
347
-
348
- }).lift (new Operator <Integer , Integer >() {
349
-
350
- @ Override
351
- public Subscriber <? super Integer > call (final Subscriber <? super Integer > child ) {
352
-
353
- Producer p2 = new Producer () {
354
-
355
- @ Override
356
- public void request (long n ) {
357
- System .out .println ("lift => requested: " + n );
358
- requested2 .set (n );
359
- }
360
-
361
- };
362
- producer2 .set (p2 );
363
- child .setProducer (p2 );
364
-
365
- return new Subscriber <Integer >(child ) {
366
-
367
- // we request "5" and this decouples the Producer chain while retaining the Subscription chain
368
- @ Override
369
- public void onStart () {
370
- request (5 );
371
- }
372
-
373
- @ Override
374
- public void onCompleted () {
375
- }
376
-
377
- @ Override
378
- public void onError (Throwable e ) {
379
- }
380
-
381
- @ Override
382
- public void onNext (Integer t ) {
383
- }
384
-
385
- };
386
- }
387
-
388
- }).subscribe (new Subscriber <Integer >() {
389
-
390
- @ Override
391
- public void onStart () {
392
- request (1 );
393
- }
394
-
395
- @ Override
396
- public void onCompleted () {
397
-
398
- }
399
-
400
- @ Override
401
- public void onError (Throwable e ) {
402
-
403
- }
404
-
405
- @ Override
406
- public void onNext (Integer t ) {
407
- System .out .println (t );
408
- request (1 );
409
- }
410
-
411
- @ Override
412
- protected Producer onSetProducer (Producer producer ) {
413
- gotProducer .set (producer );
414
- return producer ;
415
- }
416
-
417
- });
418
-
419
- if (gotProducer .get () != producer2 .get ()) {
420
- throw new IllegalStateException ("Expecting the producer from lift" );
421
- }
422
- assertEquals (requested1 .get (), 5 );
423
- assertEquals (requested2 .get (), 1 );
424
- }
425
-
426
- @ Test
427
- public void testSetProducerFromOperatorWithUnsafeSubscribe () {
428
- final AtomicLong requested1 = new AtomicLong ();
429
- final AtomicLong requested2 = new AtomicLong ();
430
- final AtomicReference <Producer > producer1 = new AtomicReference <Producer >();
431
- final AtomicReference <Producer > producer2 = new AtomicReference <Producer >();
432
- final AtomicReference <Producer > gotProducer = new AtomicReference <Producer >();
433
- Observable .create (new OnSubscribe <Integer >() {
434
-
435
- @ Override
436
- public void call (final Subscriber <? super Integer > s ) {
437
- Producer p1 = new Producer () {
438
- int index = 0 ;
439
-
440
- @ Override
441
- public void request (long n ) {
442
- requested1 .set (n );
443
- System .out .println ("onSubscribe => requested: " + n );
444
- for (int i = 0 ; i < n ; i ++) {
445
- s .onNext (index ++);
446
- }
447
- }
448
-
449
- };
450
- producer1 .set (p1 );
451
- s .setProducer (p1 );
452
- }
453
-
454
- }).lift (new Operator <Integer , Integer >() {
455
-
456
- @ Override
457
- public Subscriber <? super Integer > call (final Subscriber <? super Integer > child ) {
458
-
459
- Producer p2 = new Producer () {
460
-
461
- @ Override
462
- public void request (long n ) {
463
- System .out .println ("lift => requested: " + n );
464
- requested2 .set (n );
465
- }
466
-
467
- };
468
- producer2 .set (p2 );
469
- child .setProducer (p2 );
470
-
471
- return new Subscriber <Integer >(child ) {
472
-
473
- // we request "5" and this decouples the Producer chain while retaining the Subscription chain
474
- @ Override
475
- public void onStart () {
476
- request (5 );
477
- }
478
-
479
- @ Override
480
- public void onCompleted () {
481
- }
482
-
483
- @ Override
484
- public void onError (Throwable e ) {
485
- }
486
-
487
- @ Override
488
- public void onNext (Integer t ) {
489
- }
490
-
491
- };
492
- }
493
-
494
- }).unsafeSubscribe (new Subscriber <Integer >() {
495
-
496
- @ Override
497
- public void onStart () {
498
- request (1 );
499
- }
500
-
501
- @ Override
502
- public void onCompleted () {
503
-
504
- }
505
-
506
- @ Override
507
- public void onError (Throwable e ) {
508
-
509
- }
510
-
511
- @ Override
512
- public void onNext (Integer t ) {
513
- System .out .println (t );
514
- request (1 );
515
- }
516
-
517
- @ Override
518
- protected Producer onSetProducer (Producer producer ) {
519
- gotProducer .set (producer );
520
- return producer ;
521
- }
522
-
523
- });
524
-
525
- if (gotProducer .get () != producer2 .get ()) {
526
- throw new IllegalStateException ("Expecting the producer from lift" );
527
- }
528
- assertEquals (requested1 .get (), 5 );
529
- assertEquals (requested2 .get (), 1 );
530
- }
531
-
532
320
@ Test
533
321
public void testOnStartCalledOnceViaSubscribe () {
534
322
final AtomicInteger c = new AtomicInteger ();
0 commit comments