static Properties resolveProducerProperties(Map<String, String> options, Object keySchema, Object valueSchema) {
        Properties properties = from(options);

        withSerdeProducerProperties(true, options, keySchema, properties);
        withSerdeProducerProperties(false, options, valueSchema, properties);

        return properties;
    }
@Test
    @Parameters(method = "classes")
    public void when_producerProperties_javaPropertyIsDefined_then_itsNotOverwritten(String clazz) {
        // key
        Map<String, String> keyOptions = Map.of(
                OPTION_KEY_FORMAT, JAVA_FORMAT,
                OPTION_KEY_CLASS, clazz,
                KEY_SERIALIZER, "serializer"
        );

        assertThat(resolveProducerProperties(keyOptions))
                .containsExactlyEntriesOf(Map.of(KEY_SERIALIZER, "serializer"));

        // value
        Map<String, String> valueOptions = Map.of(
                OPTION_KEY_FORMAT, UNKNOWN_FORMAT,
                OPTION_VALUE_FORMAT, JAVA_FORMAT,
                OPTION_VALUE_CLASS, clazz,
                VALUE_SERIALIZER, "serializer"
        );

        assertThat(resolveProducerProperties(valueOptions))
                .containsExactlyEntriesOf(Map.of(VALUE_SERIALIZER, "serializer"));
    }