//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldReportShortFileDoesNotHaveSpecifiedVersion() throws java.io.IOException
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldReportShortFileDoesNotHaveSpecifiedVersion()
        {
            // 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.Successful);
            assertEquals(StoreVersionCheck.Result.Outcome.StoreVersionNotFound, result.Outcome);
            assertNull(result.ActualVersion);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldFailIfFileDoesNotExist()
        public virtual 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.Successful);
            assertEquals(StoreVersionCheck.Result.Outcome.MissingStoreFile, result.Outcome);
            assertNull(result.ActualVersion);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldReportFileWithCorrectVersion() throws java.io.IOException
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldReportFileWithCorrectVersion()
        {
            // 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.Successful);
            assertEquals(StoreVersionCheck.Result.Outcome.Ok, result.Outcome);
            assertNull(result.ActualVersion);
        }
        public static bool CheckNeoStoreHasDefaultFormatVersion(StoreVersionCheck check, DatabaseLayout databaseLayout)
        {
            File metadataStore = databaseLayout.MetadataStore();

            return(check.HasVersion(metadataStore, RecordFormatSelector.defaultFormat().storeVersion()).Outcome.Successful);
        }