@Test
public void shouldBuildTableSchemaFromTableWithoutPrimaryKey() {

    table = table.edit().setPrimaryKeyNames().create();
    schema = new TableSchemaBuilder(new JdbcValueConverters(), adjuster, customConverterRegistry, SchemaBuilder.struct().build(), false)
            .create(prefix, "sometopic", table, null, null, null);
    assertThat(schema).isNotNull();
    // Check the keys ...
    assertThat(schema.keySchema()).isNull();
    assertThat(schema.keyFromColumnData(data)).isNull();
    // Check the values ...
    Schema values = schema.valueSchema();
    assertThat(values).isNotNull();
    assertThat(values.field("C1").name()).isEqualTo("C1");
    assertThat(values.field("C1").index()).isEqualTo(0);
    assertThat(values.field("C1").schema()).isEqualTo(SchemaBuilder.string().build());
    assertThat(values.field("C2").name()).isEqualTo("C2");
    assertThat(values.field("C2").index()).isEqualTo(1);
    assertThat(values.field("C2").schema()).isEqualTo(Decimal.builder(3).parameter("connect.decimal.precision", "5").optional().build()); // scale of 3
    assertThat(values.field("C3").name()).isEqualTo("C3");
    assertThat(values.field("C3").index()).isEqualTo(2);
    assertThat(values.field("C3").schema()).isEqualTo(Date.builder().optional().build()); // optional date
    assertThat(values.field("C4").name()).isEqualTo("C4");
    assertThat(values.field("C4").index()).isEqualTo(3);
    assertThat(values.field("C4").schema()).isEqualTo(SchemaBuilder.int32().optional().build()); // JDBC INTEGER = 32 bits
    assertThat(values.field("C5").index()).isEqualTo(4);
    assertThat(values.field("C5").schema()).isEqualTo(SchemaBuilder.bytes().build()); // JDBC BINARY = bytes
    assertThat(values.field("C6").index()).isEqualTo(5);
    assertThat(values.field("C6").schema()).isEqualTo(SchemaBuilder.int16().build());
    // Column starting with digit is left as-is
    assertThat(values.field("7C7").name()).isEqualTo("7C7");
    assertThat(values.field("7C7").index()).isEqualTo(6);
    assertThat(values.field("7C7").schema()).isEqualTo(SchemaBuilder.string().build());
    // Column C-8 has -, left as-is
    assertThat(values.field("C-8").name()).isEqualTo("C-8");
    assertThat(values.field("C-8").index()).isEqualTo(7);
    assertThat(values.field("C-8").schema()).isEqualTo(SchemaBuilder.string().build());
    // Column AVRO_UNSUPPORTED_NAME contains all invalid characters, left as-is
    assertThat(values.field(AVRO_UNSUPPORTED_NAME).name()).isEqualTo(AVRO_UNSUPPORTED_NAME);
    assertThat(values.field(AVRO_UNSUPPORTED_NAME).index()).isEqualTo(8);
    assertThat(values.field(AVRO_UNSUPPORTED_NAME).schema()).isEqualTo(SchemaBuilder.string().build());
    Struct value = schema.valueFromColumnData(data);
    assertThat(value).isNotNull();
    assertThat(value.get("C1")).isEqualTo("c1value");
    assertThat(value.get("C2")).isEqualTo(BigDecimal.valueOf(3.142d));
    assertThat(value.get("C3")).isEqualTo(11626);
    assertThat(value.get("C4")).isEqualTo(4);
    assertThat(value.get("C5")).isEqualTo(ByteBuffer.wrap(new byte[]{ 71, 117, 110, 110, 97, 114 }));
    assertThat(value.get("C6")).isEqualTo(Short.valueOf((short) 0));
}