### Question:
StreamerImpl implements Streamer { @Override public void start() throws IOException { myIsRunning = true; doStreaming(); } StreamerImpl(SubscriptionContext context, StreamHandler handler, ServerProviderRegistry registry); @Override SubscriptionContext getContext(); StreamHandler getHandler(); @Override void start(); @Override void stop();  }### Answer:
@Test public void test() throws IOException, URISyntaxException, InterruptedException { EasyMockSupport support = new EasyMockSupport(); CountDownLatch latch = new CountDownLatch(3); CancellableInputStream stream1 = new CancellableInputStream(new ByteArrayInputStream(new byte[0]), null); CancellableInputStream stream2 = new CancellableInputStream(new ByteArrayInputStream(new byte[0]), null); CancellableInputStream stream3 = new CancellableInputStream(new ByteArrayInputStream(new byte[0]), null); UUID streamId = UUID.randomUUID(); StreamHandler handler = createHandler(streamId, support, latch, stream1, stream2, stream3); ServerProviderRegistry registry = createRegistry(support, stream1, stream2, stream3); SubscriptionContext context = new SubscriptionContext(); context.setStreamId(streamId); context.setStreamUrl(new URL(ourUrl)); support.replayAll(); myTestingStreamer = new StreamerImpl(context, handler, registry); myTestingStreamer.start(); latch.await(); support.verifyAll(); }