// Path: marketdata-common/src/main/java/com/handson/infra/EventStreamClient.java
// public interface EventStreamClient {
// 
//     Observable<String> readServerSideEvents();
// }


import com.handson.infra.EventStreamClient;
import org.junit.Ignore;
import org.junit.Test;
import rx.Observable;
import rx.observers.TestSubscriber;
import rx.schedulers.Schedulers;
import rx.schedulers.TestScheduler;
import rx.subjects.PublishSubject;
import rx.subjects.TestSubject;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
package com.handson.rx;





public class MulticastEventStreamClientTest {

    @Test
    public void Should_transmit_events_from_the_target_client() {
        // given
        TestScheduler scheduler = Schedulers.test();
        PublishSubject<String> subject = PublishSubject.create();
// Path: marketdata-common/src/main/java/com/handson/infra/EventStreamClient.java
// public interface EventStreamClient {
// 
//     Observable<String> readServerSideEvents();
// }


// Path: marketdata-web/src/test/java/com/handson/rx/MulticastEventStreamClientTest.java
import com.handson.infra.EventStreamClient;
import org.junit.Ignore;
import org.junit.Test;
import rx.Observable;
import rx.observers.TestSubscriber;
import rx.schedulers.Schedulers;
import rx.schedulers.TestScheduler;
import rx.subjects.PublishSubject;
import rx.subjects.TestSubject;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

package com.handson.rx;





public class MulticastEventStreamClientTest {

    @Test
    public void Should_transmit_events_from_the_target_client() {
        // given
        TestScheduler scheduler = Schedulers.test();
        PublishSubject<String> subject = PublishSubject.create();
        EventStreamClient targetClient = mock(EventStreamClient.class);