boolean hasCurrentVersion( DatabaseLayout dbDirectoryLayout ) { File neoStore = dbDirectoryLayout.metadataStore(); Result result = storeVersionCheck.hasVersion( neoStore, format.storeVersion() ); switch ( result.outcome ) { case ok: case missingStoreFile: // let's assume the db is empty return true; case storeVersionNotFound: case unexpectedStoreVersion: case attemptedStoreDowngrade: return false; default: throw new IllegalArgumentException( "Unknown outcome: " + result.outcome.name() ); } }
public static boolean checkNeoStoreHasDefaultFormatVersion( StoreVersionCheck check, DatabaseLayout databaseLayout ) { File metadataStore = databaseLayout.metadataStore(); return check.hasVersion( metadataStore, RecordFormatSelector.defaultFormat().storeVersion() ).outcome.isSuccessful(); }
@Test public void shouldFailIfFileDoesNotExist() { // given File missingFile = new File( directory.directory(), "missing-file" ); PageCache pageCache = pageCacheRule.getPageCache( fileSystemRule.get() ); StoreVersionCheck storeVersionCheck = new StoreVersionCheck( pageCache ); // when StoreVersionCheck.Result result = storeVersionCheck.hasVersion( missingFile, "version" ); // then assertFalse( result.outcome.isSuccessful() ); assertEquals( StoreVersionCheck.Result.Outcome.missingStoreFile, result.outcome ); assertNull( result.actualVersion ); }
@Test public void shouldReportShortFileDoesNotHaveSpecifiedVersion() throws IOException { // given File shortFile = fileContaining( fileSystemRule.get(), "nothing interesting" ); StoreVersionCheck storeVersionCheck = new StoreVersionCheck( pageCacheRule.getPageCache( fileSystemRule.get() ) ); // when StoreVersionCheck.Result result = storeVersionCheck.hasVersion( shortFile, "version" ); // then assertFalse( result.outcome.isSuccessful() ); assertEquals( StoreVersionCheck.Result.Outcome.storeVersionNotFound, result.outcome ); assertNull( result.actualVersion ); }
Result result = storeVersionCheck.hasVersion( neostoreFile, format.storeVersion() ); if ( result.outcome.isSuccessful() )
@Test public void shouldReportFileWithIncorrectVersion() throws IOException { // given File neoStore = emptyFile( fileSystemRule.get() ); long v1 = MetaDataStore.versionStringToLong( "V1" ); PageCache pageCache = pageCacheRule.getPageCache( fileSystemRule.get() ); MetaDataStore.setRecord( pageCache, neoStore, MetaDataStore.Position.STORE_VERSION, v1 ); StoreVersionCheck storeVersionCheck = new StoreVersionCheck( pageCache ); // when StoreVersionCheck.Result result = storeVersionCheck.hasVersion( neoStore, "V2" ); // then assertFalse( result.outcome.isSuccessful() ); assertEquals( StoreVersionCheck.Result.Outcome.unexpectedStoreVersion, result.outcome ); assertEquals( "V1", result.actualVersion ); }
@Test public void shouldReportFileWithCorrectVersion() throws IOException { // given File neoStore = emptyFile( fileSystemRule.get() ); long v1 = MetaDataStore.versionStringToLong( "V1" ); PageCache pageCache = pageCacheRule.getPageCache( fileSystemRule.get() ); MetaDataStore.setRecord( pageCache, neoStore, MetaDataStore.Position.STORE_VERSION, v1 ); StoreVersionCheck storeVersionCheck = new StoreVersionCheck( pageCache ); // when StoreVersionCheck.Result result = storeVersionCheck.hasVersion( neoStore, "V1" ); // then assertTrue( result.outcome.isSuccessful() ); assertEquals( StoreVersionCheck.Result.Outcome.ok, result.outcome ); assertNull( result.actualVersion ); }
boolean hasCurrentVersion( DatabaseLayout dbDirectoryLayout ) { File neoStore = dbDirectoryLayout.metadataStore(); Result result = storeVersionCheck.hasVersion( neoStore, format.storeVersion() ); switch ( result.outcome ) { case ok: case missingStoreFile: // let's assume the db is empty return true; case storeVersionNotFound: case unexpectedStoreVersion: case attemptedStoreDowngrade: return false; default: throw new IllegalArgumentException( "Unknown outcome: " + result.outcome.name() ); } }
Result result = storeVersionCheck.hasVersion( neostoreFile, format.storeVersion() ); if ( result.outcome.isSuccessful() )