@Test public void namespaceAndKvsNamespaceShouldMatch() { assertThatThrownBy(() -> ImmutableAtlasDbConfig.builder() .namespace(TEST_NAMESPACE) .keyValueService(KVS_CONFIG_WITH_OTHER_NAMESPACE) .timelock(TIMELOCK_CONFIG_WITH_OPTIONAL_EMPTY_CLIENT) .build()) .isInstanceOf(IllegalStateException.class) .satisfies((exception) -> assertThat(exception.getMessage(), containsString("config should be the same"))); }
@Test public void namespaceAndTimelockClientShouldMatch() { assertThatThrownBy(() -> ImmutableAtlasDbConfig.builder() .namespace(TEST_NAMESPACE) .keyValueService(KVS_CONFIG_WITHOUT_NAMESPACE) .timelock(TIMELOCK_CONFIG_WITH_OTHER_CLIENT) .build()) .isInstanceOf(IllegalStateException.class) .satisfies((exception) -> assertThat(exception.getMessage(), containsString("config should be the same"))); }
@Test public void inMemoryConfigCannotHaveEmptyNamespaceWithEmptyTimelockClient() { InMemoryAtlasDbConfig kvsConfig = new InMemoryAtlasDbConfig(); assertFalse("This test assumes the InMemoryAtlasDbConfig has no namespace by default", kvsConfig.namespace().isPresent()); assertThatThrownBy(() -> ImmutableAtlasDbConfig.builder() .namespace(Optional.empty()) .keyValueService(kvsConfig) .timelock(TIMELOCK_CONFIG_WITH_OPTIONAL_EMPTY_CLIENT) .build()) .isInstanceOf(IllegalStateException.class) .satisfies((exception) -> assertThat(exception.getMessage(), containsString("TimeLock client should not be empty"))); }
@Test public void canSpecifyZeroServersIfUsingTimelockBlock() { ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITHOUT_NAMESPACE) .namespace(CLIENT_NAMESPACE) .timelock(ImmutableTimeLockClientConfig.builder() .serversList(ImmutableServerListConfig.builder().build()) .build()) .build(); } }
@Test public void cannotSpecifyZeroServersIfUsingLockBlock() { assertThatThrownBy(() -> ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITHOUT_NAMESPACE) .namespace(CLIENT_NAMESPACE) .timestamp(SINGLETON_SERVER_LIST) .lock(ImmutableServerListConfig.builder().build()) .build()).isInstanceOf(IllegalStateException.class); }
@Test public void namespaceAcceptsEmptyKvsNamespaceAndTimelockClient() { AtlasDbConfig config = ImmutableAtlasDbConfig.builder() .namespace("a client") .keyValueService(KVS_CONFIG_WITHOUT_NAMESPACE) .timelock(TIMELOCK_CONFIG_WITH_OPTIONAL_EMPTY_CLIENT) .build(); assertThat(config.getNamespaceString(), equalTo("a client")); }
@Test public void cannotSpecifyZeroServersIfUsingTimestampBlock() { assertThatThrownBy(() -> ImmutableAtlasDbConfig.builder() .keyValueService(KVS_CONFIG_WITHOUT_NAMESPACE) .namespace(CLIENT_NAMESPACE) .timestamp(ImmutableServerListConfig.builder().build()) .lock(SINGLETON_SERVER_LIST) .build()).isInstanceOf(IllegalStateException.class); }
@Test public void inMemoryConfigWorksWithNonTestNamespace() { InMemoryAtlasDbConfig kvsConfig = new InMemoryAtlasDbConfig(); assertFalse("This test assumes the InMemoryAtlasDbConfig has no namespace by default", kvsConfig.namespace().isPresent()); AtlasDbConfig config = ImmutableAtlasDbConfig.builder() .namespace("clive") .keyValueService(kvsConfig) .build(); assertThat(config.getNamespaceString(), equalTo("clive")); }
@Test public void inMemoryConfigCanHaveEmptyNamespace() { InMemoryAtlasDbConfig kvsConfig = new InMemoryAtlasDbConfig(); assertFalse("This test assumes the InMemoryAtlasDbConfig has no namespace by default", kvsConfig.namespace().isPresent()); ImmutableAtlasDbConfig config = ImmutableAtlasDbConfig.builder() .namespace(Optional.empty()) .keyValueService(kvsConfig) .build(); assertThat(config.getNamespaceString(), equalTo(AtlasDbConfig.UNSPECIFIED_NAMESPACE)); }