Java Code Examples for io.reactivex.processors.PublishProcessor#onNext()
The following examples show how to use
io.reactivex.processors.PublishProcessor#onNext() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: LiveDataReactiveStreamsTest.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
@Test public void convertsFromPublisherSubscribeWithDelay() { PublishProcessor<String> processor = PublishProcessor.create(); processor.delaySubscription(100, TimeUnit.SECONDS, sBackgroundScheduler); LiveData<String> liveData = LiveDataReactiveStreams.fromPublisher(processor); liveData.observe(mLifecycleOwner, mObserver); processor.onNext("foo"); liveData.removeObserver(mObserver); sBackgroundScheduler.triggerActions(); liveData.observe(mLifecycleOwner, mObserver); processor.onNext("bar"); processor.onNext("baz"); assertThat(mLiveDataOutput, is(Arrays.asList("foo", "foo", "bar", "baz"))); }
Example 2
Source File: LiveDataReactiveStreamsTest.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
@Test public void convertsFromPublisherWithMultipleObservers() { final List<String> output2 = new ArrayList<>(); PublishProcessor<String> processor = PublishProcessor.create(); LiveData<String> liveData = LiveDataReactiveStreams.fromPublisher(processor); liveData.observe(mLifecycleOwner, mObserver); processor.onNext("foo"); processor.onNext("bar"); // The second observer should only get the newest value and any later values. liveData.observe(mLifecycleOwner, new Observer<String>() { @Override public void onChanged(@Nullable String s) { output2.add(s); } }); processor.onNext("baz"); assertThat(mLiveDataOutput, is(Arrays.asList("foo", "bar", "baz"))); assertThat(output2, is(Arrays.asList("bar", "baz"))); }
Example 3
Source File: LiveDataReactiveStreamsTest.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
@Test public void convertsFromPublisherWithMultipleObserversAfterInactive() { final List<String> output2 = new ArrayList<>(); PublishProcessor<String> processor = PublishProcessor.create(); LiveData<String> liveData = LiveDataReactiveStreams.fromPublisher(processor); liveData.observe(mLifecycleOwner, mObserver); processor.onNext("foo"); processor.onNext("bar"); // The second observer should only get the newest value and any later values. liveData.observe(mLifecycleOwner, new Observer<String>() { @Override public void onChanged(@Nullable String s) { output2.add(s); } }); liveData.removeObserver(mObserver); processor.onNext("baz"); assertThat(mLiveDataOutput, is(Arrays.asList("foo", "bar"))); assertThat(output2, is(Arrays.asList("bar", "baz"))); }
Example 4
Source File: FlatMapWithTwoErrors.java From akarnokd-misc with Apache License 2.0 | 6 votes |
@Test public void innerCancelled() { PublishProcessor<Integer> pp1 = PublishProcessor.create(); PublishProcessor<Integer> pp2 = PublishProcessor.create(); pp1 .flatMap(v -> pp2) .test(); pp1.onNext(1); assertTrue("No subscribers?", pp2.hasSubscribers()); pp1.onError(new Exception()); assertFalse("Has subscribers?", pp2.hasSubscribers()); }
Example 5
Source File: FlatMapWithTwoErrors.java From akarnokd-misc with Apache License 2.0 | 6 votes |
@Test public void innerCancelled2() { PublishProcessor<Integer> pp1 = PublishProcessor.create(); PublishProcessor<Integer> pp2 = PublishProcessor.create(); pp1 .concatMap(v -> pp2) .test(); pp1.onNext(1); assertTrue("No subscribers?", pp2.hasSubscribers()); pp1.onError(new Exception()); assertFalse("Has subscribers?", pp2.hasSubscribers()); }
Example 6
Source File: LiveDataReactiveStreamsTest.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
@Test public void convertsFromPublisher() { PublishProcessor<String> processor = PublishProcessor.create(); LiveData<String> liveData = LiveDataReactiveStreams.fromPublisher(processor); liveData.observe(mLifecycleOwner, mObserver); processor.onNext("foo"); processor.onNext("bar"); processor.onNext("baz"); assertThat(mLiveDataOutput, is(Arrays.asList("foo", "bar", "baz"))); }
Example 7
Source File: LiveDataReactiveStreamsTest.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
@Test public void convertsFromPublisherAfterInactive() { PublishProcessor<String> processor = PublishProcessor.create(); LiveData<String> liveData = LiveDataReactiveStreams.fromPublisher(processor); liveData.observe(mLifecycleOwner, mObserver); processor.onNext("foo"); liveData.removeObserver(mObserver); processor.onNext("bar"); liveData.observe(mLifecycleOwner, mObserver); processor.onNext("baz"); assertThat(mLiveDataOutput, is(Arrays.asList("foo", "foo", "baz"))); }
Example 8
Source File: LastZipped.java From akarnokd-misc with Apache License 2.0 | 5 votes |
@Test public void test() { PublishProcessor<Integer> pp1 = PublishProcessor.create(); PublishProcessor<Integer> pp2 = PublishProcessor.create(); TestSubscriber<Integer> ts = Flowable.zip(pp1.last(1).toFlowable(), pp2.last(2).toFlowable(), (a, b) -> a + b) .test(); pp1.onNext(3); pp1.onComplete(); pp2.onComplete(); ts.assertResult(5); }
Example 9
Source File: BufferWithConditionAndTime.java From akarnokd-misc with Apache License 2.0 | 5 votes |
@Test public void test() { TestScheduler scheduler = new TestScheduler(); PublishProcessor<String> pp = PublishProcessor.create(); Function<Flowable<String>, Flowable<List<String>>> f = o -> o.buffer(o.filter(v -> v.contains("Start")), v -> Flowable.merge(o.filter(w -> w.contains("End")), Flowable.timer(5, TimeUnit.MINUTES, scheduler))); pp.publish(f) .subscribe(System.out::println); pp.onNext("Start"); pp.onNext("A"); pp.onNext("B"); pp.onNext("End"); pp.onNext("Start"); pp.onNext("C"); scheduler.advanceTimeBy(5, TimeUnit.MINUTES); pp.onNext("Start"); pp.onNext("D"); pp.onNext("End"); pp.onComplete(); }
Example 10
Source File: BufferStartEndTest.java From akarnokd-misc with Apache License 2.0 | 5 votes |
@Test public void test() { TestScheduler scheduler = new TestScheduler(); PublishProcessor<String> pp = PublishProcessor.create(); Function<Flowable<String>, Flowable<List<String>>> f = o -> o.buffer(o.filter(v -> v.contains("Start")), v -> Flowable.merge(o.filter(w -> w.contains("Start")), Flowable.timer(5, TimeUnit.MINUTES, scheduler))); pp.publish(f) .doOnNext(v -> { int s = v.size(); if (s > 1 && v.get(s - 1).contains("Start")) { v.remove(s - 1); } }) .subscribe(System.out::println); pp.onNext("Start"); pp.onNext("A"); pp.onNext("B"); pp.onNext("End"); pp.onNext("Start"); pp.onNext("C"); scheduler.advanceTimeBy(5, TimeUnit.MINUTES); pp.onNext("Start"); pp.onNext("D"); pp.onNext("End"); pp.onComplete(); }
Example 11
Source File: AbstractEmissionCheckerTest.java From storio with Apache License 2.0 | 4 votes |
@Test public void shouldAssertThatNoExpectedValuesLeft() { Queue<String> expectedValues = new LinkedList<String>(); expectedValues.add("1"); expectedValues.add("2"); expectedValues.add("3"); final PublishProcessor<String> publishProcessor = PublishProcessor.create(); AbstractEmissionChecker<String> emissionChecker = new AbstractEmissionChecker<String>(expectedValues) { @NonNull @Override public Disposable subscribe() { return publishProcessor .subscribe(new Consumer<String>() { @Override public void accept(@NonNull String s) throws Exception { onNextObtained(s); } }); } }; Disposable disposable = emissionChecker.subscribe(); publishProcessor.onNext("1"); // "1" emissionChecker.awaitNextExpectedValue(); publishProcessor.onNext("2"); // "2" emissionChecker.awaitNextExpectedValue(); publishProcessor.onNext("3"); // "3" emissionChecker.awaitNextExpectedValue(); // Should not throw exception emissionChecker.assertThatNoExpectedValuesLeft(); disposable.dispose(); }
Example 12
Source File: AbstractEmissionCheckerTest.java From storio with Apache License 2.0 | 4 votes |
@Test public void shouldStoreItemsInQueueAndThenAwaitNextExpectedValues() { final Queue<String> expectedValues = new LinkedList<String>(); expectedValues.add("1"); expectedValues.add("2"); expectedValues.add("3"); final PublishProcessor<String> publishProcessor = PublishProcessor.create(); final AbstractEmissionChecker<String> emissionChecker = new AbstractEmissionChecker<String>(expectedValues) { @NonNull @Override public Disposable subscribe() { return publishProcessor .subscribe(new Consumer<String>() { @Override public void accept(@NonNull String s) throws Exception { onNextObtained(s); } }); } }; final Disposable disposable = emissionChecker.subscribe(); // Notice: We emit several values before awaiting any of them publishProcessor.onNext("1"); publishProcessor.onNext("2"); publishProcessor.onNext("3"); // Now we should successfully await all these items one by one emissionChecker.awaitNextExpectedValue(); emissionChecker.awaitNextExpectedValue(); emissionChecker.awaitNextExpectedValue(); emissionChecker.assertThatNoExpectedValuesLeft(); disposable.dispose(); }
Example 13
Source File: AbstractEmissionCheckerTest.java From storio with Apache License 2.0 | 4 votes |
@Test public void shouldThrowExceptionBecauseFlowableEmittedUnexpectedItemAfterExpectedSequence() { List<Throwable> errors = TestHelper.trackPluginErrors(); final Queue<String> expectedValues = new LinkedList<String>(); expectedValues.add("1"); expectedValues.add("2"); expectedValues.add("3"); final PublishProcessor<String> publishProcessor = PublishProcessor.create(); final AbstractEmissionChecker<String> emissionChecker = new AbstractEmissionChecker<String>(expectedValues) { @NonNull @Override public Disposable subscribe() { return publishProcessor .subscribe(new Consumer<String>() { @Override public void accept(@NonNull String s) throws Exception { onNextObtained(s); } }); } }; final Disposable disposable = emissionChecker.subscribe(); publishProcessor.onNext("1"); publishProcessor.onNext("2"); publishProcessor.onNext("3"); emissionChecker.awaitNextExpectedValue(); emissionChecker.awaitNextExpectedValue(); emissionChecker.awaitNextExpectedValue(); emissionChecker.assertThatNoExpectedValuesLeft(); assertThat(errors).isEmpty(); publishProcessor.onNext("4"); assertThat(errors).hasSize(1); assertThat(errors.get(0).getCause()) .hasMessage("Received emission, but no more emissions were expected: obtained 4, expectedValues = [], obtainedValues = []"); disposable.dispose(); }