@Override
  public <T> UncommittedBundle<T> createRootBundle() {
    // The DirectRunner is responsible for these elements, but they need not be encodable.
    return underlying.createRootBundle();
  }
@Test
  public void rootBundleSucceedsIgnoresCoder() {
    WindowedValue<Record> one = WindowedValue.valueInGlobalWindow(new Record());
    WindowedValue<Record> two = WindowedValue.valueInGlobalWindow(new Record());
    CommittedBundle<Record> root =
        factory.<Record>createRootBundle().add(one).add(two).commit(Instant.now());

    assertThat(root.getElements(), containsInAnyOrder(one, two));
  }