@Test public void shouldBeAbleToRetrieveTheHighestLogVersion() throws Throwable { // given LogFiles files = createLogFiles(); DatabaseLayout databaseLayout = testDirectory.databaseLayout(); fileSystemRule.create( databaseLayout.file( getVersionedLogFileName( "1" ) ) ).close(); fileSystemRule.create( databaseLayout.file( getVersionedLogFileName( "some", "4" ) ) ).close(); fileSystemRule.create( databaseLayout.file( getVersionedLogFileName( "3" ) ) ).close(); fileSystemRule.create( databaseLayout.file( filename ) ).close(); // when final long highestLogVersion = files.getHighestLogVersion(); // then assertEquals( 3, highestLogVersion ); files.shutdown(); }
@Test public void shouldVisitEachLofFile() throws Throwable { // given LogFiles files = createLogFiles(); DatabaseLayout databaseLayout = testDirectory.databaseLayout(); fileSystemRule.create( databaseLayout.file( getVersionedLogFileName( "1" ) ) ).close(); fileSystemRule.create( databaseLayout.file( getVersionedLogFileName( "some", "2" ) ) ).close(); fileSystemRule.create( databaseLayout.file( getVersionedLogFileName( "3" ) ) ).close(); fileSystemRule.create( databaseLayout.file( filename ) ).close(); // when final List<File> seenFiles = new ArrayList<>(); final List<Long> seenVersions = new ArrayList<>(); files.accept( ( file, logVersion ) -> { seenFiles.add( file ); seenVersions.add( logVersion ); } ); // then assertThat( seenFiles, containsInAnyOrder( databaseLayout.file( getVersionedLogFileName( filename, "1" ) ), databaseLayout.file( getVersionedLogFileName( filename, "3" ) ) ) ); assertThat( seenVersions, containsInAnyOrder( 1L, 3L ) ); files.shutdown(); }
@Test public void shouldReturnANegativeValueIfThereAreNoLogFiles() throws Throwable { // given LogFiles files = createLogFiles(); DatabaseLayout databaseLayout = testDirectory.databaseLayout(); fileSystemRule.create( databaseLayout.file( getVersionedLogFileName( "some", "4" ) ) ).close(); fileSystemRule.create( databaseLayout.file( filename ) ).close(); // when final long highestLogVersion = files.getHighestLogVersion(); // then assertEquals( -1, highestLogVersion ); files.shutdown(); }