@Test public void shouldScanNodes() { // given List<Long> ids = new ArrayList<>(); try ( NodeCursor nodes = cursors.allocateNodeCursor() ) { // when read.allNodesScan( nodes ); while ( nodes.next() ) { ids.add( nodes.nodeReference() ); } } // then assertEquals( NODE_IDS, ids ); }
@Test public void shouldScanNodes() { // given List<Long> ids = new ArrayList<>(); try ( NodeCursor nodes = cursors.allocateNodeCursor() ) { // when read.allNodesScan( nodes ); while ( nodes.next() ) { ids.add( nodes.nodeReference() ); } } // then assertEquals( NODE_IDS, ids ); }
@Test public void shouldNotAccessNegativeReferences() { // given try ( NodeCursor node = cursors.allocateNodeCursor() ) { // when read.singleNode( -2L, node ); // then assertFalse( "should not access negative reference node", node.next() ); } }
@Test public void shouldNotFindDeletedNode() { // given try ( NodeCursor nodes = cursors.allocateNodeCursor() ) { // when read.singleNode( gone, nodes ); // then assertFalse( "should not access deleted node", nodes.next() ); } }
private Value getPropertyValueFromStore( long nodeReference ) { try ( NodeCursor storeCursor = cursors.allocateNodeCursor(); PropertyCursor propertyCursor = cursors.allocatePropertyCursor() ) { read.singleNode( nodeReference, storeCursor ); storeCursor.next(); storeCursor.properties( propertyCursor ); propertyCursor.next(); return propertyCursor.propertyValue(); } }
try ( NodeCursor node = cursors.allocateNodeCursor(); PropertyCursor props = cursors.allocatePropertyCursor() )
@Test public void shouldNotAccessGroupsOfBareNode() { // given try ( NodeCursor node = cursors.allocateNodeCursor(); RelationshipGroupCursor group = cursors.allocateRelationshipGroupCursor() ) { // when read.singleNode( bare, node ); assertTrue( "access node", node.next() ); node.relationships( group ); // then assertFalse( "access group", group.next() ); } }
@Test public void shouldAccessNodesByReference() { // given try ( NodeCursor nodes = cursors.allocateNodeCursor() ) { for ( long id : NODE_IDS ) { // when read.singleNode( id, nodes ); // then assertTrue( "should access defined node", nodes.next() ); assertEquals( "should access the correct node", id, nodes.nodeReference() ); assertFalse( "should only access a single node", nodes.next() ); } } }
@Test public void shouldAccessNodesByReference() { // given try ( NodeCursor nodes = cursors.allocateNodeCursor() ) { for ( long id : NODE_IDS ) { // when read.singleNode( id, nodes ); // then assertTrue( "should access defined node", nodes.next() ); assertEquals( "should access the correct node", id, nodes.nodeReference() ); assertFalse( "should only access a single node", nodes.next() ); } } } }
@Test public void shouldHaveBeenAbleToCreateDenseAndSparseNodes() { // given try ( NodeCursor node = cursors.allocateNodeCursor() ) { read.singleNode( dense.id, node ); assertTrue( "access dense node", node.next() ); assertTrue( "dense node", node.isDense() ); read.singleNode( sparse.id, node ); assertTrue( "access sparse node", node.next() ); assertFalse( "sparse node", node.isDense() && supportsSparseNodes() ); } }
private void traverseWithoutGroups( RelationshipTestSupport.StartNode start, boolean detached ) throws KernelException { // given try ( NodeCursor node = cursors.allocateNodeCursor(); RelationshipTraversalCursor relationship = cursors.allocateRelationshipTraversalCursor() ) { // when read.singleNode( start.id, node ); assertTrue( "access node", node.next() ); if ( detached ) { read.relationships( start.id, node.allRelationshipsReference(), relationship ); } else { node.allRelationships( relationship ); } Map<String,Integer> counts = count( tx, relationship ); // then assertCounts( start.expectedCounts(), counts ); } }
try ( NodeCursor node = cursors.allocateNodeCursor(); RelationshipGroupCursor group = cursors.allocateRelationshipGroupCursor(); RelationshipTraversalCursor relationship = cursors.allocateRelationshipTraversalCursor() )
@Test public void shouldNotAccessNonExistentProperties() { // given try ( NodeCursor node = cursors.allocateNodeCursor(); PropertyCursor props = cursors.allocatePropertyCursor() ) { // when read.singleNode( bare, node ); assertTrue( "node by reference", node.next() ); assertFalse( "no properties", hasProperties( node, props ) ); node.properties( props ); assertFalse( "no properties by direct method", props.next() ); read.nodeProperties( node.nodeReference(), node.propertiesReference(), props ); assertFalse( "no properties via property ref", props.next() ); assertFalse( "only one node", node.next() ); } }
private void assertAccessSingleProperty( long nodeId, Object expectedValue, ValueGroup expectedValueType ) { // given try ( NodeCursor node = cursors.allocateNodeCursor(); PropertyCursor props = cursors.allocatePropertyCursor() ) { // when read.singleNode( nodeId, node ); assertTrue( "node by reference", node.next() ); assertTrue( "has properties", hasProperties( node, props ) ); node.properties( props ); assertTrue( "has properties by direct method", props.next() ); assertEquals( "correct value", expectedValue, props.propertyValue() ); assertEquals( "correct value type ", expectedValueType, props.propertyType() ); assertFalse( "single property", props.next() ); read.nodeProperties( node.nodeReference(), node.propertiesReference(), props ); assertTrue( "has properties via property ref", props.next() ); assertEquals( "correct value", expectedValue, props.propertyValue() ); assertFalse( "single property", props.next() ); } }
try ( NodeCursor node = cursors.allocateNodeCursor(); RelationshipGroupCursor group = cursors.allocateRelationshipGroupCursor(); RelationshipTraversalCursor relationship = cursors.allocateRelationshipTraversalCursor() )
@Test public void shouldTraverseTreeOfDepthThree() try ( NodeCursor node = cursors.allocateNodeCursor(); RelationshipGroupCursor group = cursors.allocateRelationshipGroupCursor(); RelationshipTraversalCursor relationship1 = cursors.allocateRelationshipTraversalCursor();
try ( NodeCursor node = cursors.allocateNodeCursor(); RelationshipGroupCursor group = cursors.allocateRelationshipGroupCursor(); RelationshipTraversalCursor relationship = cursors.allocateRelationshipTraversalCursor() )
try ( NodeCursor node = cursors.allocateNodeCursor(); RelationshipGroupCursor group = cursors.allocateRelationshipGroupCursor(); RelationshipTraversalCursor relationship = cursors.allocateRelationshipTraversalCursor() )
try ( NodeCursor nodes = cursors.allocateNodeCursor() )