static ColumnExtractor create(final Column column) {
    final int index = column.index();
    Preconditions.checkArgument(index >= 0, "negative index: " + index);

    return column.namespace() == Namespace.KEY
        ? new KeyColumnExtractor(index)
        : new ValueColumnExtractor(index);
  }
@Test
  public void shouldExtractWindowedKeyColumn() {
    // Given:
    when(column.namespace()).thenReturn(Namespace.KEY);
    when(column.index()).thenReturn(0);

    when(key.get(0)).thenReturn("some value");

    final ColumnExtractor extractor = TimestampColumnExtractors.create(column);

    // When:
    final Object result = extractor.extract(windowedKey, value);

    // Then:
    assertThat(result, is("some value"));
  }