public static ClusterConfiguration getClusterConfiguration(TimeLockInstallConfiguration install) { return install.cluster(); }
@Test public void throwsIfConfiguredToBeExistingServiceWithoutDirectory() { File mockFile = getMockFileWith(false, true); assertFailsToBuildConfiguration(ImmutablePaxosInstallConfiguration.builder() .dataDirectory(mockFile) .isNewService(false)); }
@Test public void canCreateDirectoryForPaxosDirectoryIfNewService() { File mockFile = getMockFileWith(false, true); ImmutablePaxosInstallConfiguration.builder() .dataDirectory(mockFile) .isNewService(true) .build(); verify(mockFile).mkdirs(); }
@Test public void canSpecifyPositiveNumberOfAvailableThreads() { ImmutableTimeLockDeprecatedConfiguration.builder() .availableThreads(POSITIVE_INT) .build(); }
@Test public void canSpecifyPositiveMaximumWaitBeforeProposingLeadership() { ImmutablePaxosRuntimeConfiguration.builder() .maximumWaitBeforeProposalMs(POSITIVE_LONG) .build(); }
@Test public void canSpecifyPositiveBlockingTimeout() { ImmutableTimeLockDeprecatedConfiguration.builder() .blockingTimeoutInMs(POSITIVE_LONG) .build(); }
@Test public void canSpecifyPositivePingRate() { ImmutablePaxosRuntimeConfiguration.builder() .pingRateMs(POSITIVE_LONG) .build(); }
@Test public void canSpecifyPositiveLeaderPingResponseWait() { ImmutablePaxosRuntimeConfiguration.builder() .leaderPingResponseWaitMs(POSITIVE_LONG) .build(); }
@Test public void canSpecifyPositiveLockLoggerTimeout() { ImmutableTimeLockRuntimeConfiguration.builder() .slowLockLogTriggerMillis(1L) .build(); }
@Test public void shouldNotAllowCassandraTimestampPeristerToBeSpecified() { assertThatThrownBy(() -> ImmutableDatabaseTsBoundPersisterConfiguration.builder() .keyValueServiceConfig(CASSANDRA_KVS_CONFIG).build()) .isInstanceOf(IllegalArgumentException.class) .hasMessage( "Only InMemory/Dbkvs is a supported for TimeLock's database persister. Found cassandra."); }
@Test public void canDeserializeClusterConfigurationWithDefaultTypeInformation() throws IOException { assertDefaultClusterConfigurationCorrect(deserializeClusterConfiguration(CLUSTER_CONFIG_DEFAULT_TYPE_INFO)); }
@Override default List<String> clusterMembers() { return cluster().uris(); } }
@Test public void throwsIfConfiguredToBeNewServiceWithExistingDirectory() { File mockFile = getMockFileWith(true, true); assertFailsToBuildConfiguration(ImmutablePaxosInstallConfiguration.builder() .dataDirectory(mockFile) .isNewService(true)); }
@Test public void canUseExistingDirectoryAsPaxosDirectory() { File mockFile = getMockFileWith(true, false); ImmutablePaxosInstallConfiguration.builder() .dataDirectory(mockFile) .isNewService(false) .build(); verify(mockFile, atLeastOnce()).isDirectory(); }
@Test public void throwOnNegativeLeaderPingResponseWait() { assertThatThrownBy(() -> ImmutableTimeLockRuntimeConfiguration.builder() .slowLockLogTriggerMillis(-1L) .build()).isInstanceOf(IllegalStateException.class); }
@Test public void throwsIfCannotCreatePaxosDirectory() { File mockFile = getMockFileWith(false, false); assertFailsToBuildConfiguration(ImmutablePaxosInstallConfiguration.builder() .dataDirectory(mockFile) .isNewService(true)); }