@Test public void throwsWhenPreprocessingConfigWithKeyspaceAndDifferentNamespace() { assertThatThrownBy( () -> CassandraAtlasDbFactory.preprocessKvsConfig(CONFIG_WITH_KEYSPACE, Optional::empty, Optional.of(KEYSPACE_2))) .isInstanceOf(IllegalArgumentException.class); }
@Test public void throwsWhenPreprocessingNonCassandraKvsConfig() { assertThatThrownBy(() -> { KeyValueServiceConfigHelper keyValueServiceConfig = () -> "Fake KVS"; CassandraAtlasDbFactory.preprocessKvsConfig(keyValueServiceConfig, Optional::empty, Optional.empty()); }) .isInstanceOf(IllegalArgumentException.class); }
@Test public void throwsWhenPreprocessingConfigWithNoKeyspaceAndNoNamespace() { assertThatThrownBy(() -> CassandraAtlasDbFactory.preprocessKvsConfig(CONFIG_WITHOUT_KEYSPACE, Optional::empty, Optional.empty())) .isInstanceOf(IllegalArgumentException.class); }
@Test public void resolvesConfigWithNamespaceIfNoKeyspaceProvided() { CassandraKeyValueServiceConfig newConfig = CassandraAtlasDbFactory.preprocessKvsConfig(CONFIG_WITHOUT_KEYSPACE, Optional::empty, Optional.of(KEYSPACE)); assertThat(newConfig.getKeyspaceOrThrow()).isEqualTo(KEYSPACE); }
@Test public void resolvesConfigIfKeyspaceAndNamespaceProvidedAndMatch() { CassandraKeyValueServiceConfig newConfig = CassandraAtlasDbFactory.preprocessKvsConfig(CONFIG_WITH_KEYSPACE, Optional::empty, Optional.of(KEYSPACE)); assertThat(newConfig.getKeyspaceOrThrow()).isEqualTo(KEYSPACE); }
@Test public void resolvesConfigWithOriginalKeyspaceIfNoNamespaceProvided() { CassandraKeyValueServiceConfig newConfig = CassandraAtlasDbFactory.preprocessKvsConfig(CONFIG_WITH_KEYSPACE, Optional::empty, Optional.empty()); assertThat(newConfig.getKeyspaceOrThrow()).isEqualTo(CONFIG_WITH_KEYSPACE.getKeyspaceOrThrow()); }
@Test public void preservesOtherPropertiesOnResolvedConfigWithNamespace() { CassandraKeyValueServiceConfig newConfig = CassandraAtlasDbFactory.preprocessKvsConfig(CONFIG_WITHOUT_KEYSPACE, Optional::empty, Optional.of(KEYSPACE)); assertThat(newConfig.servers()).isEqualTo(SERVERS); assertThat(newConfig.replicationFactor()).isEqualTo(1); }
@Override public KeyValueService createRawKeyValueService( MetricsManager metricsManager, KeyValueServiceConfig config, Supplier<Optional<KeyValueServiceRuntimeConfig>> runtimeConfig, Optional<LeaderConfig> leaderConfig, Optional<String> namespace, LongSupplier freshTimestampSource, boolean initializeAsync) { AtlasDbVersion.ensureVersionReported(); CassandraKeyValueServiceConfig preprocessedConfig = preprocessKvsConfig(config, runtimeConfig, namespace); Supplier<CassandraKeyValueServiceRuntimeConfig> cassandraRuntimeConfig = preprocessKvsRuntimeConfig( runtimeConfig); return CassandraKeyValueServiceImpl.create( metricsManager, preprocessedConfig, cassandraRuntimeConfig, leaderConfig, CassandraMutationTimestampProviders.singleLongSupplierBacked(freshTimestampSource), initializeAsync); }
@Override public KeyValueService createRawKeyValueService( MetricsManager metricsManager, KeyValueServiceConfig config, Supplier<Optional<KeyValueServiceRuntimeConfig>> runtimeConfig, Optional<LeaderConfig> leaderConfig, Optional<String> namespace, LongSupplier freshTimestampSource, boolean initializeAsync) { AtlasDbVersion.ensureVersionReported(); CassandraKeyValueServiceConfig preprocessedConfig = preprocessKvsConfig(config, runtimeConfig, namespace); Supplier<CassandraKeyValueServiceRuntimeConfig> cassandraRuntimeConfig = preprocessKvsRuntimeConfig( runtimeConfig); return CassandraKeyValueServiceImpl.create( metricsManager, preprocessedConfig, cassandraRuntimeConfig, leaderConfig, CassandraMutationTimestampProviders.singleLongSupplierBacked(freshTimestampSource), initializeAsync); }