@Test
public void testKclConfigs() {
Map<String, String> kv = new HashMap<>();
String system = "kinesis";
String stream = "kinesis-stream";
String systemConfigPrefix = String.format("systems.%s.", system);
kv.put(systemConfigPrefix + "aws.region", "us-east-1");
kv.put(systemConfigPrefix + "aws.kcl.TableName", "sample-table");
kv.put(systemConfigPrefix + "aws.kcl.MaxRecords", "100");
kv.put(systemConfigPrefix + "aws.kcl.CallProcessRecordsEvenForEmptyRecordList", "true");
kv.put(systemConfigPrefix + "aws.kcl.InitialPositionInStream", "TRIM_HORIZON");
kv.put(systemConfigPrefix + "streams.kinesis-stream1.aws.kcl.InitialPositionInStream", "LATEST");
Config config = new MapConfig(kv);
KinesisConfig kConfig = new KinesisConfig(config);
KinesisClientLibConfiguration kclConfig = kConfig.getKinesisClientLibConfig(system, stream, "sample-app");
assertEquals("sample-table", kclConfig.getTableName());
assertEquals(100, kclConfig.getMaxRecords());
assertTrue(kclConfig.shouldCallProcessRecordsEvenForEmptyRecordList());
assertEquals(InitialPositionInStream.TRIM_HORIZON, kclConfig.getInitialPositionInStream());
kclConfig = kConfig.getKinesisClientLibConfig(system, "kinesis-stream1", "sample-app");
assertEquals(InitialPositionInStream.LATEST, kclConfig.getInitialPositionInStream());
}