@Test
public void preservesValidRuntimeConfigIfFollowingLaterConfigIsNotValid() {
AtomicBoolean first = new AtomicBoolean(true);
Supplier<Optional<KeyValueServiceRuntimeConfig>> runtimeConfigSupplier = () -> {
if (first.compareAndSet(true, false)) {
return Optional.of(DEFAULT_CKVS_RUNTIME_CONFIG);
}
return Optional.of(INVALID_CKVS_RUNTIME_CONFIG);
};
Supplier<CassandraKeyValueServiceRuntimeConfig> processedRuntimeConfig = new CassandraAtlasDbFactory()
.preprocessKvsRuntimeConfig(runtimeConfigSupplier);
CassandraKeyValueServiceRuntimeConfig firstReturnedConfig = processedRuntimeConfig.get();
CassandraKeyValueServiceRuntimeConfig secondReturnedConfig = processedRuntimeConfig.get();
assertEquals("First returned config should be valid", DEFAULT_CKVS_RUNTIME_CONFIG, firstReturnedConfig);
assertEquals("Second invalid config should be ignored", DEFAULT_CKVS_RUNTIME_CONFIG, secondReturnedConfig);
}