@Test
  @SuppressWarnings("unchecked")
  public void testKafkaTableSink() throws Exception {
    DataStream dataStream = mock(DataStream.class);
    KafkaTableSink kafkaTableSink = createTableSink();
    kafkaTableSink.emitDataStream(dataStream);

    verify(dataStream).addSink(kafkaProducer);
  }
  @Test
  @SuppressWarnings("unchecked")
  public void testCreatedProducer() throws Exception {
    DataStream dataStream = mock(DataStream.class);
    KafkaTableSink kafkaTableSink = spy(createTableSink());
    kafkaTableSink.emitDataStream(dataStream);

    verify(kafkaTableSink)
        .createKafkaProducer(
            eq(TOPIC), eq(properties), any(getSerializationSchema()), eq(partitioner));
  }
  @Test
  public void testConfiguration() {
    KafkaTableSink kafkaTableSink = createTableSink();
    KafkaTableSink newKafkaTableSink = kafkaTableSink.configure(FIELD_NAMES, FIELD_TYPES);
    assertNotSame(kafkaTableSink, newKafkaTableSink);

    assertArrayEquals(FIELD_NAMES, newKafkaTableSink.getFieldNames());
    assertArrayEquals(FIELD_TYPES, newKafkaTableSink.getFieldTypes());
    assertEquals(new RowTypeInfo(FIELD_TYPES), newKafkaTableSink.getOutputType());
  }