@Test
public void testSDConfigsWithOverrides() {
KafkaSystemDescriptor sd =
new KafkaSystemDescriptor("kafka")
.withConsumerZkConnect(ImmutableList.of("localhost:1234"))
.withProducerBootstrapServers(ImmutableList.of("localhost:567", "localhost:890"))
.withDefaultStreamOffsetDefault(SystemStreamMetadata.OffsetType.OLDEST)
.withConsumerAutoOffsetReset("smallest")
.withConsumerFetchMessageMaxBytes(1024*1024)
.withSamzaFetchThreshold(10000)
.withSamzaFetchThresholdBytes(1024 * 1024)
.withConsumerConfigs(ImmutableMap.of("custom-consumer-config-key", "custom-consumer-config-value"))
.withProducerConfigs(ImmutableMap.of("custom-producer-config-key", "custom-producer-config-value"))
.withDefaultStreamConfigs(ImmutableMap.of("custom-stream-config-key", "custom-stream-config-value"));
Map<String, String> generatedConfigs = sd.toConfig();
assertEquals("org.apache.samza.system.kafka.KafkaSystemFactory", generatedConfigs.get("systems.kafka.samza.factory"));
assertEquals("localhost:1234", generatedConfigs.get("systems.kafka.consumer.zookeeper.connect"));
assertEquals("localhost:567,localhost:890", generatedConfigs.get("systems.kafka.producer.bootstrap.servers"));
assertEquals("smallest", generatedConfigs.get("systems.kafka.consumer.auto.offset.reset"));
assertEquals("1048576", generatedConfigs.get("systems.kafka.consumer.fetch.message.max.bytes"));
assertEquals("10000", generatedConfigs.get("systems.kafka.samza.fetch.threshold"));
assertEquals("1048576", generatedConfigs.get("systems.kafka.samza.fetch.threshold.bytes"));
assertEquals("custom-consumer-config-value", generatedConfigs.get("systems.kafka.consumer.custom-consumer-config-key"));
assertEquals("custom-producer-config-value", generatedConfigs.get("systems.kafka.producer.custom-producer-config-key"));
assertEquals("custom-stream-config-value", generatedConfigs.get("systems.kafka.default.stream.custom-stream-config-key"));
assertEquals("oldest", generatedConfigs.get("systems.kafka.default.stream.samza.offset.default"));
assertEquals(11, generatedConfigs.size());
}