//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldRotateCountsStoreWhenClosingTheDatabase() public virtual void ShouldRotateCountsStoreWhenClosingTheDatabase() { // GIVEN GraphDatabaseAPI db = ( GraphDatabaseAPI )_dbBuilder.newGraphDatabase(); using (Transaction tx = Db.beginTx()) { Db.createNode(_a); tx.Success(); } // WHEN Db.shutdown(); // THEN assertTrue(_fs.fileExists(AlphaStoreFile())); assertTrue(_fs.fileExists(BetaStoreFile())); using (Lifespan life = new Lifespan()) { CountsTracker store = life.Add(CreateCountsTracker(_pageCache)); // a transaction for creating the label and a transaction for the node assertEquals(BASE_TX_ID + 1 + 1, store.TxId()); assertEquals(INITIAL_MINOR_VERSION, store.MinorVersion()); // one for all nodes and one for the created "A" label assertEquals(1 + 1, store.TotalEntriesStored()); assertEquals(1 + 1, AllRecords(store).Count); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldCreateEmptyCountsTrackerStoreWhenCreatingDatabase() public virtual void ShouldCreateEmptyCountsTrackerStoreWhenCreatingDatabase() { // GIVEN GraphDatabaseAPI db = ( GraphDatabaseAPI )_dbBuilder.newGraphDatabase(); // WHEN Db.shutdown(); // THEN assertTrue(_fs.fileExists(AlphaStoreFile())); assertFalse(_fs.fileExists(BetaStoreFile())); using (Lifespan life = new Lifespan()) { CountsTracker store = life.Add(CreateCountsTracker(_pageCache)); assertEquals(BASE_TX_ID, store.TxId()); assertEquals(INITIAL_MINOR_VERSION, store.MinorVersion()); assertEquals(0, store.TotalEntriesStored()); assertEquals(0, AllRecords(store).Count); } using (Lifespan life = new Lifespan()) { CountsTracker store = life.Add(CreateCountsTracker(_pageCache)); assertEquals(BASE_TX_ID, store.TxId()); assertEquals(INITIAL_MINOR_VERSION, store.MinorVersion()); assertEquals(0, store.TotalEntriesStored()); assertEquals(0, AllRecords(store).Count); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldRotateCountsStoreWhenRotatingLog() throws java.io.IOException //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldRotateCountsStoreWhenRotatingLog() { // GIVEN GraphDatabaseAPI db = ( GraphDatabaseAPI )_dbBuilder.newGraphDatabase(); // WHEN doing a transaction (actually two, the label-mini-tx also counts) using (Transaction tx = Db.beginTx()) { Db.createNode(_b); tx.Success(); } // and rotating the log (which implies flushing) CheckPoint(db); // and creating another node after it using (Transaction tx = Db.beginTx()) { Db.createNode(_c); tx.Success(); } // THEN assertTrue(_fs.fileExists(AlphaStoreFile())); assertTrue(_fs.fileExists(BetaStoreFile())); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.io.pagecache.PageCache pageCache = db.getDependencyResolver().resolveDependency(org.neo4j.io.pagecache.PageCache.class); PageCache pageCache = Db.DependencyResolver.resolveDependency(typeof(PageCache)); using (Lifespan life = new Lifespan()) { CountsTracker store = life.Add(CreateCountsTracker(pageCache)); // NOTE since the rotation happens before the second transaction is committed we do not see those changes // in the stats // a transaction for creating the label and a transaction for the node assertEquals(BASE_TX_ID + 1 + 1, store.TxId()); assertEquals(INITIAL_MINOR_VERSION, store.MinorVersion()); // one for all nodes and one for the created "B" label assertEquals(1 + 1, store.TotalEntriesStored()); assertEquals(1 + 1, AllRecords(store).Count); } // on the other hand the tracker should read the correct value by merging data on disk and data in memory //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final CountsTracker tracker = db.getDependencyResolver().resolveDependency(org.neo4j.kernel.impl.storageengine.impl.recordstorage.RecordStorageEngine.class).testAccessNeoStores().getCounts(); CountsTracker tracker = Db.DependencyResolver.resolveDependency(typeof(RecordStorageEngine)).testAccessNeoStores().Counts; assertEquals(1 + 1, tracker.NodeCount(-1, newDoubleLongRegister()).readSecond()); int labelId; using (Transaction tx = Db.beginTx()) { KernelTransaction transaction = Db.DependencyResolver.resolveDependency(typeof(ThreadToStatementContextBridge)).getKernelTransactionBoundToThisThread(true); labelId = transaction.TokenRead().nodeLabel(_c.name()); } assertEquals(1, tracker.NodeCount(labelId, newDoubleLongRegister()).readSecond()); Db.shutdown(); }