@Test
public void testTwoRequestsWhichShouldEachEmitTwice() throws Exception {

    //TestCollapserTimer timer = new TestCollapserTimer();
    CollapserTimer timer = new RealCollapserTimer();
    HystrixObservableCollapser<String, String, String, String> collapser1 = new TestCollapserWithMultipleResponses(timer, 1, 3, false, false, prefixMapper, onMissingComplete);
    HystrixObservableCollapser<String, String, String, String> collapser2 = new TestCollapserWithMultipleResponses(timer, 2, 3, false, false, prefixMapper, onMissingComplete);
    TestSubscriber<String> testSubscriber1 = new TestSubscriber<String>();
    TestSubscriber<String> testSubscriber2 = new TestSubscriber<String>();
    System.out.println(System.currentTimeMillis() + "Starting to observe collapser1");
    collapser1.observe().subscribe(testSubscriber1);
    collapser2.observe().subscribe(testSubscriber2);
    System.out.println(System.currentTimeMillis() + "Done with collapser observe()s");
    //Note that removing these awaits breaks the unit test.  That implies that the above subscribe does not wait for a terminal event
    testSubscriber1.awaitTerminalEvent();
    testSubscriber2.awaitTerminalEvent();
    testSubscriber1.assertCompleted();
    testSubscriber1.assertNoErrors();
    testSubscriber1.assertValues("1:1", "1:2", "1:3");
    testSubscriber2.assertCompleted();
    testSubscriber2.assertNoErrors();
    testSubscriber2.assertValues("2:2", "2:4", "2:6");
}