package com.github.davidmoten.rx.testing; import static java.util.Arrays.asList; import java.util.concurrent.TimeUnit; import junit.framework.TestCase; import junit.framework.TestSuite; import rx.Observable; import rx.functions.Func1; import rx.schedulers.Schedulers; public class TestingHelperMergeTest extends TestCase { private static final Observable<Integer> MERGE_WITH = Observable.from(asList(7, 8, 9)); public static TestSuite suite() { return TestingHelper.function(merge).waitForUnsubscribe(100, TimeUnit.MILLISECONDS) .waitForTerminalEvent(10, TimeUnit.SECONDS) .waitForMoreTerminalEvents(100, TimeUnit.MILLISECONDS) // test empty .name("testEmptyWithOtherReturnsOther").fromEmpty().expect(7, 8, 9) // test error .name("testMergeErrorReturnsError").fromError().expectError() // test error after items .name("testMergeErrorAfter2ReturnsError").fromErrorAfter(1, 2).expectError() // test non-empty count .name("testTwoWithOtherReturnsTwoAndOtherInAnyOrder").from(1, 2) .expectAnyOrder(1, 7, 8, 9, 2) // test single input .name("testOneWithOtherReturnsOneAndOtherInAnyOrder").from(1) .expectAnyOrder(7, 1, 8, 9) // unsub before completion .name("testTwoWithOtherUnsubscribedAfterOneReturnsOneItemOnly").from(1, 2) .unsubscribeAfter(1).expectSize(1) // get test suites .testSuite(TestingHelperMergeTest.class); } public void testDummy() { // just here to fool eclipse } private static final Func1<Observable<Integer>, Observable<Integer>> merge = new Func1<Observable<Integer>, Observable<Integer>>() { @Override public Observable<Integer> call(Observable<Integer> o) { return o.mergeWith(MERGE_WITH.subscribeOn(Schedulers.computation())) .subscribeOn(Schedulers.computation()); } }; }