private PageCursor nodePage( long reference ) { return read.openPageCursorForReading( reference ); }
NodeSetFirstGroupStep( StageControl control, Configuration config, NodeStore nodeStore, ByteArray cache ) { super( control, "FIRST", config, 1 ); this.cache = cache; this.batchSize = config.batchSize(); this.nodeStore = nodeStore; this.nodeCursor = nodeStore.openPageCursorForReading( 0 ); newBatch(); }
@Test void nodeCursorShouldClosePageCursor() { NodeStore store = mock( NodeStore.class ); PageCursor pageCursor = mock( PageCursor.class ); when( store.openPageCursorForReading( anyLong() ) ).thenReturn( pageCursor ); try ( RecordNodeCursor cursor = new RecordNodeCursor( store ) ) { cursor.single( 0 ); } verify( pageCursor ).close(); }
@Test public void shouldBeAbleToForceStoreScan() throws Exception { when( labelScanStore.newReader() ).thenThrow( new RuntimeException( "Should not be used" ) ); when( nodeStore.getHighestPossibleIdInUse() ).thenReturn( 200L ); when( nodeStore.getHighId() ).thenReturn( 20L ); when( nodeStore.openPageCursorForReading( anyLong() ) ).thenReturn( mock( PageCursor.class ) ); mockLabelNodeCount( countStore, 2 ); mockLabelNodeCount( countStore, 6 ); DynamicIndexStoreView storeView = dynamicIndexStoreView(); StoreScan<Exception> storeScan = storeView .visitNodes( new int[]{2, 6}, propertyKeyIdFilter, propertyUpdateVisitor, labelUpdateVisitor, true ); storeScan.run(); Mockito.verify( nodeStore, times( 1 ) ) .getRecordByCursor( anyLong(), any( NodeRecord.class ), any( RecordLoad.class ), any( PageCursor.class ) ); Mockito.verify( nodeStore, times( 200 ) ) .nextRecordByCursor( any( NodeRecord.class ), any( RecordLoad.class ), any( PageCursor.class ) ); }
@Test public void visitOnlyLabeledNodes() throws Exception { LabelScanReader labelScanReader = mock( LabelScanReader.class ); when( labelScanStore.newReader() ).thenReturn( labelScanReader ); when( nodeLabelRanges.maxCount() ).thenReturn( 1L ); PrimitiveLongResourceIterator labeledNodesIterator = PrimitiveLongResourceCollections.iterator( null, 1, 2, 3, 4, 5, 6, 7, 8 ); when( nodeStore.getHighestPossibleIdInUse() ).thenReturn( 200L ); when( nodeStore.getHighId() ).thenReturn( 20L ); when( labelScanReader.nodesWithAnyOfLabels( new int[] {2, 6} ) ).thenReturn( labeledNodesIterator ); when( nodeStore.openPageCursorForReading( anyLong() ) ).thenReturn( mock( PageCursor.class ) ); mockLabelNodeCount( countStore, 2 ); mockLabelNodeCount( countStore, 6 ); DynamicIndexStoreView storeView = dynamicIndexStoreView(); StoreScan<Exception> storeScan = storeView .visitNodes( new int[]{2, 6}, propertyKeyIdFilter, propertyUpdateVisitor, labelUpdateVisitor, false ); storeScan.run(); Mockito.verify( nodeStore, times( 8 ) ) .getRecordByCursor( anyLong(), any( NodeRecord.class ), any( RecordLoad.class ), any( PageCursor.class ) ); }
try ( PageCursor cursor = nodeStore.openPageCursorForReading( 0 ); PageCursor propertyCursor = propertyStore.openPageCursorForReading( 0 ) )
private PageCursor nodePage( long reference ) { return read.openPageCursorForReading( reference ); }
NodeSetFirstGroupStep( StageControl control, Configuration config, NodeStore nodeStore, ByteArray cache ) { super( control, "FIRST", config, 1 ); this.cache = cache; this.batchSize = config.batchSize(); this.nodeStore = nodeStore; this.nodeCursor = nodeStore.openPageCursorForReading( 0 ); newBatch(); }
try ( PageCursor cursor = nodeStore.openPageCursorForReading( 0 ); PageCursor propertyCursor = propertyStore.openPageCursorForReading( 0 ) )