//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldBeAbleToReadUpToDateValueWhileAnotherThreadIsPerformingRotation() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldBeAbleToReadUpToDateValueWhileAnotherThreadIsPerformingRotation() { // given CountsOracle oracle = SomeData(); const int firstTransaction = 2; int secondTransaction = 3; using (Lifespan life = new Lifespan()) { CountsTracker tracker = life.Add(NewTracker()); oracle.Update(tracker, firstTransaction); tracker.Rotate(firstTransaction); } // when //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.kernel.impl.store.CountsOracle delta = new org.neo4j.kernel.impl.store.CountsOracle(); CountsOracle delta = new CountsOracle(); { CountsOracle.Node n1 = delta.Node(1); CountsOracle.Node n2 = delta.Node(1, 4); // Label 4 has not been used before... delta.Relationship(n1, 1, n2); delta.Relationship(n2, 2, n1); // relationshipType 2 has not been used before... } delta.Update(oracle); using (Lifespan life = new Lifespan()) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.test.Barrier_Control barrier = new org.neo4j.test.Barrier_Control(); Org.Neo4j.Test.Barrier_Control barrier = new Org.Neo4j.Test.Barrier_Control(); CountsTracker tracker = life.Add(new CountsTrackerAnonymousInnerClass(this, ResourceManager.logProvider(), ResourceManager.fileSystem(), ResourceManager.pageCache(), Config.defaults(), EmptyVersionContextSupplier.EMPTY, barrier)); Future <Void> task = Threading.execute(t => { try { delta.Update(t, secondTransaction); t.rotate(secondTransaction); } catch (IOException e) { throw new AssertionError(e); } return(null); }, tracker); // then barrier.Await(); oracle.Verify(tracker); barrier.Release(); task.get(); oracle.Verify(tracker); } }
private static CountsOracle SomeData() { CountsOracle oracle = new CountsOracle(); CountsOracle.Node n0 = oracle.Node(0, 1); CountsOracle.Node n1 = oracle.Node(0, 3); CountsOracle.Node n2 = oracle.Node(2, 3); CountsOracle.Node n3 = oracle.Node(2); oracle.Relationship(n0, 1, n2); oracle.Relationship(n1, 1, n3); oracle.Relationship(n1, 1, n2); oracle.Relationship(n0, 1, n3); long indexId = 2; oracle.IndexUpdatesAndSize(indexId, 0L, 50L); oracle.IndexSampling(indexId, 25L, 50L); return(oracle); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldUpdateCountsOnExistingStore() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldUpdateCountsOnExistingStore() { // given CountsOracle oracle = SomeData(); int firstTx = 2; int secondTx = 3; using (Lifespan life = new Lifespan()) { CountsTracker tracker = life.Add(NewTracker()); oracle.Update(tracker, firstTx); tracker.Rotate(firstTx); oracle.Verify(tracker); // when CountsOracle delta = new CountsOracle(); { CountsOracle.Node n1 = delta.Node(1); CountsOracle.Node n2 = delta.Node(1, 4); // Label 4 has not been used before... delta.Relationship(n1, 1, n2); delta.Relationship(n2, 2, n1); // relationshipType 2 has not been used before... } delta.Update(tracker, secondTx); delta.Update(oracle); // then oracle.Verify(tracker); // when tracker.Rotate(secondTx); } // then using (Lifespan life = new Lifespan()) { oracle.Verify(life.Add(NewTracker())); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test @Resources.Life(STARTED) public void shouldBeAbleToWriteDataToCountsTracker() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldBeAbleToWriteDataToCountsTracker() { // given CountsTracker tracker = ResourceManager.managed(NewTracker()); long indexId = 0; CountsOracle oracle = new CountsOracle(); { CountsOracle.Node a = oracle.Node(1); CountsOracle.Node b = oracle.Node(1); oracle.Relationship(a, 1, b); oracle.IndexSampling(indexId, 2, 2); oracle.IndexUpdatesAndSize(indexId, 10, 2); } // when oracle.Update(tracker, 2); // then oracle.Verify(tracker); // when tracker.Rotate(2); // then oracle.Verify(tracker); // when using (Org.Neo4j.Kernel.Impl.Api.CountsAccessor_IndexStatsUpdater updater = tracker.UpdateIndexCounts()) { updater.IncrementIndexUpdates(indexId, 2); } // then oracle.IndexUpdatesAndSize(indexId, 12, 2); oracle.Verify(tracker); // when tracker.Rotate(2); // then oracle.Verify(tracker); }