@Override public boolean tryInstallNewTransactionsSchemaVersion(int newVersion) { return transactionSchemaManager.tryInstallNewTransactionsSchemaVersion(newVersion); }
@Override public void forceInstallNewTransactionsSchemaVersion(int newVersion) { while (transactionSchemaManager.getTransactionsSchemaVersion( timestampService.getFreshTimestamp()) != newVersion) { transactionSchemaManager.tryInstallNewTransactionsSchemaVersion(newVersion); advanceOneHundredMillionTimestamps(); } }
@Before public void setUp() { assertThat(manager.tryInstallNewTransactionsSchemaVersion(1)).isTrue(); }
@Test public void canFailToInstallNewVersions() { TransactionSchemaManager newManager = createTransactionSchemaManager(new InMemoryTimestampService()); // Always need to seed the default value, if it's not there assertThat(newManager.tryInstallNewTransactionsSchemaVersion(5)).isFalse(); assertThat(newManager.tryInstallNewTransactionsSchemaVersion(5)).isTrue(); }
@Test public void newSchemaVersionsCanBeInstalledWithinOneHundredMillionTimestamps() { assertThat(manager.tryInstallNewTransactionsSchemaVersion(2)).isTrue(); fastForwardTimestampByOneHundredMillion(); assertThat(manager.getTransactionsSchemaVersion(timestamps.getFreshTimestamp())).isEqualTo(2); }
@Test public void canSwitchBetweenSchemaVersions() { assertThat(manager.tryInstallNewTransactionsSchemaVersion(2)).isTrue(); fastForwardTimestampByOneHundredMillion(); assertThat(manager.getTransactionsSchemaVersion(timestamps.getFreshTimestamp())).isEqualTo(2); assertThat(manager.tryInstallNewTransactionsSchemaVersion(1)).isTrue(); fastForwardTimestampByOneHundredMillion(); assertThat(manager.getTransactionsSchemaVersion(timestamps.getFreshTimestamp())).isEqualTo(1); }