protected void setDone() {
    done = true;
  }
@Test
  public void testEmpty() throws Exception {
    final TestSubscriber<String> testSubscriber = new TestSubscriber<>();
    final TestPublisher testPublisher = new TestPublisher() {
      @Override
      TestPollingSubscription createSubscription(
          final Subscriber<String> subscriber
      ) {
        return new TestPollingSubscription(subscriber, exec) {
          @Override
          String poll() {
            setDone();
            return null;
          }
        };
      }
    };

    testPublisher.subscribe(testSubscriber);

    assertTrue(testSubscriber.await());
    assertTrue(exec.shutdownNow().isEmpty());

    assertTrue(testPublisher.subscription.closed);
    assertNull(testSubscriber.getError());
    assertEquals(ImmutableList.of(), testSubscriber.getElements());
  }