Java Code Examples for io.reactivex.subscribers.TestSubscriber#create()
The following examples show how to use
io.reactivex.subscribers.TestSubscriber#create() .
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: FlowableOnSubscribeExecuteAsBlockingTest.java From storio with Apache License 2.0 | 6 votes |
@Test public void shouldCallOnError() { Throwable throwable = new IllegalStateException("Test exception"); //noinspection unchecked PreparedOperation<String, String, String> preparedOperation = mock(PreparedOperation.class); when(preparedOperation.executeAsBlocking()).thenThrow(throwable); TestSubscriber<String> testSubscriber = TestSubscriber.create(); Flowable .create(new FlowableOnSubscribeExecuteAsBlocking<String, String, String>(preparedOperation), BackpressureStrategy.MISSING) .subscribe(testSubscriber); testSubscriber.assertError(throwable); testSubscriber.assertNoValues(); testSubscriber.assertNotComplete(); }
Example 2
Source File: GSetTest.java From wurmloch-crdt with Apache License 2.0 | 6 votes |
@Test public void shouldHandleDuplicateCommands() { // given: final Processor<GSet.AddCommand<String>, GSet.AddCommand<String>> inputStream = ReplayProcessor.create(); final TestSubscriber<CrdtCommand> subscriber = TestSubscriber.create(); final GSet<String> set = new GSet<>("ID_1"); set.subscribeTo(inputStream); set.subscribe(subscriber); final GSet.AddCommand<String> command = new GSet.AddCommand<>(set.getCrdtId(), "1"); // when: inputStream.onNext(command); inputStream.onNext(command); // then: assertThat(set, hasSize(1)); assertThat(subscriber.valueCount(), is(1)); subscriber.assertNotComplete(); subscriber.assertNoErrors(); }
Example 3
Source File: TwoPSetTest.java From wurmloch-crdt with Apache License 2.0 | 6 votes |
@Test public void shouldHandleRemoveCommands() { // given: final Processor<TwoPSet.TwoPSetCommand<String>, TwoPSet.TwoPSetCommand<String>> inputStream = ReplayProcessor.create(); final TestSubscriber<CrdtCommand> subscriber = TestSubscriber.create(); final TwoPSet<String> set = new TwoPSet<>("ID_1"); set.subscribeTo(inputStream); set.subscribe(subscriber); final TwoPSet.AddCommand<String> command1 = new TwoPSet.AddCommand<>(set.getCrdtId(), "1"); final TwoPSet.AddCommand<String> command2 = new TwoPSet.AddCommand<>(set.getCrdtId(), "1"); final TwoPSet.RemoveCommand<String> command3 = new TwoPSet.RemoveCommand<>(set.getCrdtId(), "1"); // when: inputStream.onNext(command1); inputStream.onNext(command2); inputStream.onNext(command3); // then: assertThat(set, empty()); assertThat(subscriber.valueCount(), is(2)); subscriber.assertNotComplete(); subscriber.assertNoErrors(); }
Example 4
Source File: RetryWhenTest.java From rxjava2-extras with Apache License 2.0 | 6 votes |
@Test public void testWithScheduler() { Exception ex = new IllegalArgumentException("boo"); TestSubscriber<Integer> ts = TestSubscriber.create(); TestScheduler scheduler = new TestScheduler(); Flowable.just(1, 2) // force error after 3 emissions .concatWith(Flowable.<Integer>error(ex)) // retry with backoff .retryWhen(RetryWhen.maxRetries(2).action(log).exponentialBackoff(1, TimeUnit.MINUTES) .scheduler(scheduler).build()) // go .subscribe(ts); ts.assertValues(1, 2); ts.assertNotComplete(); scheduler.advanceTimeBy(1, TimeUnit.MINUTES); ts.assertValues(1, 2, 1, 2); ts.assertNotComplete(); // next wait is 2 seconds so advancing by 1 should do nothing scheduler.advanceTimeBy(1, TimeUnit.MINUTES); ts.assertValues(1, 2, 1, 2); ts.assertNotComplete(); scheduler.advanceTimeBy(1, TimeUnit.MINUTES); ts.assertValues(1, 2, 1, 2, 1, 2); ts.assertError(ex); }
Example 5
Source File: MVRegisterTest.java From wurmloch-crdt with Apache License 2.0 | 6 votes |
@Test public void itShouldOverwriteOnlyPartialCommandsFromReceivedCommand() { // given final TestSubscriber<MVRegister.SetCommand<String>> outCommands1 = TestSubscriber.create(); final Processor<MVRegister.SetCommand<String>, MVRegister.SetCommand<String>> inCommands2 = ReplayProcessor.create(); final MVRegister<String> register1 = new MVRegister<>(NODE_ID_1, CRDT_ID); register1.subscribe(outCommands1); final MVRegister<String> register2 = new MVRegister<>(NODE_ID_2, CRDT_ID); register2.subscribeTo(inCommands2); register1.set("Hello World"); register2.set("Goodbye World"); inCommands2.onNext(outCommands1.values().get(0)); // when register1.set("42"); inCommands2.onNext(outCommands1.values().get(1)); // then assertThat(register1.get(), containsInAnyOrder("42")); assertThat(register2.get(), containsInAnyOrder("42", "Goodbye World")); }
Example 6
Source File: RetryWhenTest.java From rxjava2-extras with Apache License 2.0 | 6 votes |
@SuppressWarnings("unchecked") @Test public void testRetryWhenSpecificExceptionFailsBecauseIsNotInstanceOf() { Exception ex = new IllegalArgumentException("boo"); TestSubscriber<Integer> ts = TestSubscriber.create(); TestScheduler scheduler = new TestScheduler(); Flowable.just(1, 2) // force error after 3 emissions .concatWith(Flowable.<Integer>error(ex)) // retry with backoff .retryWhen(RetryWhen.maxRetries(2).action(log).exponentialBackoff(1, TimeUnit.MINUTES) .scheduler(scheduler).retryWhenInstanceOf(SQLException.class).build()) // go .subscribe(ts); ts.assertValues(1, 2); ts.assertError(ex); }
Example 7
Source File: USetTest.java From wurmloch-crdt with Apache License 2.0 | 6 votes |
@Test public void shouldHandleRemoveCommands() { // given: final UUID uuid1 = UUID.randomUUID(); final Processor<USet.USetCommand<UUID>, USet.USetCommand<UUID>> inputStream = ReplayProcessor.create(); final TestSubscriber<CrdtCommand> subscriber = TestSubscriber.create(); final USet<UUID> set = new USet<>("ID_1"); set.subscribeTo(inputStream); set.subscribe(subscriber); final USet.AddCommand<UUID> command1 = new USet.AddCommand<>(set.getCrdtId(), uuid1); final USet.RemoveCommand<UUID> command2 = new USet.RemoveCommand<>(set.getCrdtId(), uuid1); // when: inputStream.onNext(command1); inputStream.onNext(command2); // then: assertThat(set, empty()); assertThat(subscriber.valueCount(), is(2)); subscriber.assertNotComplete(); subscriber.assertNoErrors(); }
Example 8
Source File: USetTest.java From wurmloch-crdt with Apache License 2.0 | 6 votes |
@Test public void shouldHandleAddCommands() { // given: final UUID uuid1 = UUID.randomUUID(); final UUID uuid2 = UUID.randomUUID(); final Processor<USet.USetCommand<UUID>, USet.USetCommand<UUID>> inputStream = ReplayProcessor.create(); final TestSubscriber<CrdtCommand> subscriber = TestSubscriber.create(); final USet<UUID> set = new USet<>("ID_1"); set.subscribeTo(inputStream); set.subscribe(subscriber); final USet.AddCommand<UUID> command1 = new USet.AddCommand<>(set.getCrdtId(), uuid1); final USet.AddCommand<UUID> command2 = new USet.AddCommand<>(set.getCrdtId(), uuid2); // when: inputStream.onNext(command1); inputStream.onNext(command2); // then: assertThat(set, hasSize(2)); assertThat(subscriber.valueCount(), is(2)); subscriber.assertNotComplete(); subscriber.assertNoErrors(); }
Example 9
Source File: TwoPSetTest.java From wurmloch-crdt with Apache License 2.0 | 6 votes |
@SuppressWarnings("unchecked") @Test public void shouldSendNotificationForAdds() { // given: final TestSubscriber<CrdtCommand> subscriber = TestSubscriber.create(); final TwoPSet<String> set = new TwoPSet<>("ID_1"); set.subscribe(subscriber); // when: set.add("1"); set.add("2"); set.add("1"); // then: subscriber.assertNotComplete(); subscriber.assertNoErrors(); assertThat(subscriber.values(), contains( new AddCommandMatcher<>(set.getCrdtId(), "1"), new AddCommandMatcher<>(set.getCrdtId(), "2") )); }
Example 10
Source File: RxPaperBookTest.java From RxPaper2 with MIT License | 6 votes |
@Test public void testUpdatesAllChecked() throws Exception { RxPaperBook book = RxPaperBook.with("UPDATES_ALL_CH", Schedulers.trampoline()); final String key = "hello"; final ComplexObject value = ComplexObject.random(); final TestSubscriber<ComplexObject> updatesSubscriber = TestSubscriber.create(); book.observeAll(ComplexObject.class, BackpressureStrategy.MISSING).subscribe(updatesSubscriber); updatesSubscriber.assertValueCount(0); book.write(key, value).subscribe(); updatesSubscriber.assertValueCount(1); updatesSubscriber.assertValues(value); final ComplexObject newValue = ComplexObject.random(); book.write(key, newValue).subscribe(); updatesSubscriber.assertValueCount(2); updatesSubscriber.assertValues(value, newValue); // Error value final int wrongValue = 3; book.write(key, wrongValue).test().assertComplete().assertNoErrors(); updatesSubscriber.assertValueCount(2); updatesSubscriber.assertValues(value, newValue); updatesSubscriber.assertNoErrors(); }
Example 11
Source File: RetryWhenTest.java From rxjava2-extras with Apache License 2.0 | 6 votes |
@SuppressWarnings("unchecked") @Test public void testRetryWhenSpecificExceptionFails() { Exception ex = new IllegalArgumentException("boo"); TestSubscriber<Integer> ts = TestSubscriber.create(); TestScheduler scheduler = new TestScheduler(); Flowable.just(1, 2) // force error after 3 emissions .concatWith(Flowable.<Integer>error(ex)) // retry with backoff .retryWhen(RetryWhen.maxRetries(2).action(log).exponentialBackoff(1, TimeUnit.MINUTES) .scheduler(scheduler).failWhenInstanceOf(IllegalArgumentException.class).build()) // go .subscribe(ts); ts.assertValues(1, 2); ts.assertError(ex); }
Example 12
Source File: MVRegisterTest.java From wurmloch-crdt with Apache License 2.0 | 5 votes |
@Test public void itShouldIgnoreOlderValueFromReceivedCommands() { // given final TestSubscriber<MVRegister.SetCommand<String>> outCommands1 = TestSubscriber.create(); final TestSubscriber<MVRegister.SetCommand<String>> outCommands2 = TestSubscriber.create(); final Processor<MVRegister.SetCommand<String>, MVRegister.SetCommand<String>> inCommands3 = ReplayProcessor.create(); final MVRegister<String> register1 = new MVRegister<>(NODE_ID_1, CRDT_ID); register1.subscribe(outCommands1); final MVRegister<String> register2 = new MVRegister<>(NODE_ID_2, CRDT_ID); register2.subscribe(outCommands2); register1.subscribeTo(register2); register2.subscribeTo(register1); final MVRegister<String> register3 = new MVRegister<>(NODE_ID_3, CRDT_ID); register3.subscribeTo(inCommands3); // when register1.set("Hello World"); register2.set("Goodbye World"); final MVRegister.SetCommand<String> oldCommand = outCommands1.values().get(0); final MVRegister.SetCommand<String> newCommand = outCommands2.values().get(1); inCommands3.onNext(newCommand); inCommands3.onNext(oldCommand); // then assertThat(register3.get(), contains("Goodbye World")); }
Example 13
Source File: FlowableOnBackpressureBufferToFileTest.java From rxjava2-extras with Apache License 2.0 | 5 votes |
@Test public void testPollQueueThrowsExceptionEmitsError() { PagedQueue queue = Mockito.mock(PagedQueue.class); RuntimeException err = new RuntimeException(); Mockito.doThrow(err).when(queue).poll(); Worker worker = Schedulers.trampoline().createWorker(); TestSubscriber<String> ts = TestSubscriber.create(1); BufferToFileSubscriberFlowable<String> b = new BufferToFileSubscriberFlowable<String>(ts, queue, Serializers.utf8(), worker); b.onSubscribe(IGNORE); b.request(1); b.run(); Mockito.verify(queue, Mockito.atLeastOnce()).poll(); ts.assertError(err); }
Example 14
Source File: LWWRegisterTest.java From wurmloch-crdt with Apache License 2.0 | 5 votes |
@SuppressWarnings("unchecked") @Test public void itShouldSendCommandsOnUpdates() { // given final TestSubscriber<CrdtCommand> subscriber = TestSubscriber.create(); final LWWRegister<String> register = new LWWRegister<>(NODE_ID_1, CRDT_ID); register.subscribe(subscriber); // when register.set("Hello World"); // then subscriber.assertNotComplete(); subscriber.assertNoErrors(); assertThat(subscriber.values(), contains( new SetCommandMatcher<>(CRDT_ID, "Hello World") )); // when register.set("Hello World"); // then subscriber.assertNotComplete(); subscriber.assertNoErrors(); assertThat(subscriber.values(), contains( new SetCommandMatcher<>(CRDT_ID, "Hello World") )); // when register.set("Goodbye World"); // then subscriber.assertNotComplete(); subscriber.assertNoErrors(); assertThat(subscriber.values(), contains( new SetCommandMatcher<>(CRDT_ID, "Hello World"), new SetCommandMatcher<>(CRDT_ID, "Goodbye World") )); }
Example 15
Source File: LWWRegisterTest.java From wurmloch-crdt with Apache License 2.0 | 5 votes |
@SuppressWarnings("unchecked") @Test public void itShouldIgnoreOlderValueFromReceivedCommands() { // given final TestSubscriber<LWWRegister.SetCommand<String>> outCommands1 = TestSubscriber.create(); final TestSubscriber<LWWRegister.SetCommand<String>> outCommands2 = TestSubscriber.create(); final Processor<LWWRegister.SetCommand<String>, LWWRegister.SetCommand<String>> inCommands3 = ReplayProcessor.create(); final LWWRegister<String> register1 = new LWWRegister<>(NODE_ID_1, CRDT_ID); register1.subscribe(outCommands1); final LWWRegister<String> register2 = new LWWRegister<>(NODE_ID_2, CRDT_ID); register2.subscribe(outCommands2); register1.subscribeTo(register2); register2.subscribeTo(register1); final LWWRegister<String> register3 = new LWWRegister<>(NODE_ID_3, CRDT_ID); register3.subscribeTo(inCommands3); // when register1.set("Hello World"); register2.set("Goodbye World"); final LWWRegister.SetCommand<String> oldCommand = outCommands1.values().get(0); final LWWRegister.SetCommand<String> newCommand = outCommands2.values().get(1); inCommands3.onNext(newCommand); inCommands3.onNext(oldCommand); // then assertThat(register3.get(), is("Goodbye World")); }
Example 16
Source File: FlowableDoOnEmptyTest.java From rxjava2-extras with Apache License 2.0 | 5 votes |
@Test public void testUnsubscribeAfterActionButBeforeCompletionDoesNotAffectCompletion() { final TestSubscriber<Object> ts = TestSubscriber.create(); Flowable.empty() // .compose(Transformers.doOnEmpty(new Action() { @Override public void run() { ts.cancel(); } })).subscribe(ts); ts.assertNoValues(); ts.assertComplete(); }
Example 17
Source File: FlowableServerSocketTest.java From rxjava2-extras with Apache License 2.0 | 5 votes |
public static void main(String[] args) throws InterruptedException { reset(); TestSubscriber<Object> ts = TestSubscriber.create(); IO.serverSocket(12345).readTimeoutMs(10000).bufferSize(8).create() .flatMap(new Function<Flowable<byte[]>, Flowable<byte[]>>() { @Override public Flowable<byte[]> apply(Flowable<byte[]> g) { return g // .to(Bytes.collect()) // .doAfterSuccess(new Consumer<byte[]>() { @Override public void accept(byte[] bytes) { System.out.println( Thread.currentThread().getName() + ": " + new String(bytes).trim()); } }) // .toFlowable() // .onErrorResumeNext(Flowable.<byte[]>empty()) // .subscribeOn(scheduler); } }).subscribeOn(scheduler) // .subscribe(ts); Thread.sleep(10000000); }
Example 18
Source File: ProcessorTest.java From state-machine with Apache License 2.0 | 5 votes |
@Test public void testCancelSignal() { // special scheduler that we will use to schedule signals TestScheduler signalScheduler = new TestScheduler(); Processor<String> processor = createProcessor(signalScheduler); // do some tests with the processor TestSubscriber<EntityStateMachine<?, String>> ts = TestSubscriber.create(); processor.flowable().doOnNext(m -> System.out.println(m.state())).subscribe(ts); ClassId<Microwave, String> microwave = ClassId.create(Microwave.class, "1"); // button is pressed processor.signal(microwave, new ButtonPressed()); ts.assertValueCount(1); assertEquals(MicrowaveStateMachine.State.COOKING, ts.values().get(0).state()); // advance by less time than the timeout signalScheduler.advanceTimeBy(10, TimeUnit.SECONDS); ts.assertValueCount(1); processor.cancelSignalToSelf(microwave); // cooking would time out by now if signal had not been cancelled signalScheduler.advanceTimeBy(30, TimeUnit.SECONDS); ts.assertValueCount(1); // now cancel a non-existent signal to get coverage processor.cancelSignalToSelf(microwave); ts.assertValueCount(1); processor.onCompleted(); ts.assertNoErrors(); }
Example 19
Source File: RGATest.java From wurmloch-crdt with Apache License 2.0 | 4 votes |
@Test public void itShouldAddElementsConcurrently() { int i1 = 0; int i2 = 0; // given final Processor<RGA.RGACommand<String>, RGA.RGACommand<String>> inCommands1 = ReplayProcessor.create(); final TestSubscriber<RGA.RGACommand<String>> outCommands1 = TestSubscriber.create(); final RGA<String> rga1 = new RGA<>(NODE_ID_1, CRDT_ID); rga1.subscribeTo(inCommands1); rga1.subscribe(outCommands1); final Processor<RGA.RGACommand<String>, RGA.RGACommand<String>> inCommands2 = ReplayProcessor.create(); final TestSubscriber<RGA.RGACommand<String>> outCommands2 = TestSubscriber.create(); final RGA<String> rga2 = new RGA<>(NODE_ID_2, CRDT_ID); rga2.subscribeTo(inCommands2); rga2.subscribe(outCommands2); // when rga1.add(0, "A1"); rga2.add(0, "A2"); inCommands2.onNext(outCommands1.values().get(i1)); inCommands1.onNext(outCommands2.values().get(i2)); // then assertThat(rga1, contains("A2", "A1")); assertThat(rga2, contains("A2", "A1")); // when rga1.add(0, "B1"); rga2.add(0, "B2"); inCommands2.onNext(outCommands1.values().get(i1+=2)); inCommands1.onNext(outCommands2.values().get(i2+=2)); // then assertThat(rga1, contains("B2", "B1", "A2", "A1")); assertThat(rga2, contains("B2", "B1", "A2", "A1")); // when rga1.add(1, "C1"); rga2.add(1, "C2"); inCommands2.onNext(outCommands1.values().get(i1+=2)); inCommands1.onNext(outCommands2.values().get(i2+=2)); // then assertThat(rga1, contains("B2", "C2", "C1", "B1", "A2", "A1")); assertThat(rga2, contains("B2", "C2", "C1", "B1", "A2", "A1")); // when rga1.add(6, "D1"); rga2.add(6, "D2"); inCommands2.onNext(outCommands1.values().get(i1 + 2)); inCommands1.onNext(outCommands2.values().get(i2 + 2)); // then assertThat(rga1, contains("B2", "C2", "C1", "B1", "A2", "A1", "D2", "D1")); assertThat(rga2, contains("B2", "C2", "C1", "B1", "A2", "A1", "D2", "D1")); }
Example 20
Source File: RGATest.java From wurmloch-crdt with Apache License 2.0 | 4 votes |
@Test public void itShouldAddAndRemoveSingleElementConcurrently() { int i1 = 0; // given final Processor<RGA.RGACommand<String>, RGA.RGACommand<String>> inCommands1 = ReplayProcessor.create(); final TestSubscriber<RGA.RGACommand<String>> outCommands1 = TestSubscriber.create(); final RGA<String> rga1 = new RGA<>(NODE_ID_1, CRDT_ID); rga1.subscribeTo(inCommands1); rga1.subscribe(outCommands1); final Processor<RGA.RGACommand<String>, RGA.RGACommand<String>> inCommands2 = ReplayProcessor.create(); final TestSubscriber<RGA.RGACommand<String>> outCommands2 = TestSubscriber.create(); final RGA<String> rga2 = new RGA<>(NODE_ID_2, CRDT_ID); rga2.subscribeTo(inCommands2); rga2.subscribe(outCommands2); rga1.add("A"); inCommands2.onNext(outCommands1.values().get(i1)); int i2 = i1; // when rga1.remove(0); rga2.add(0, "B"); inCommands2.onNext(outCommands1.values().get(++i1)); inCommands1.onNext(outCommands2.values().get(++i2)); // then assertThat(rga1, contains("B")); assertThat(rga2, contains("B")); // when rga1.remove(0); rga2.add(1, "C"); inCommands2.onNext(outCommands1.values().get(i1 + 2)); inCommands1.onNext(outCommands2.values().get(i2 + 2)); // then assertThat(rga1, contains("C")); assertThat(rga2, contains("C")); }