@Test public void shouldGetAllDoublePropertyValues() throws Exception { int label = token.nodeLabel( "Node" ); int prop = token.propertyKey( "prop" ); int prip = token.propertyKey( "prip" ); IndexReference index = schemaRead.index( label, prop, prip ); try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor() ) { read.nodeIndexScan( index, node, IndexOrder.NONE, true ); List<ValueTuple> values = new ArrayList<>(); while ( node.next() ) { values.add( ValueTuple.of( node.propertyValue( 0 ), node.propertyValue( 1 ) ) ); } values.sort( ValueTuple.COMPARATOR ); for ( int i = 0; i < doublePropValues.size(); i++ ) { assertEquals( doublePropValues.get( i ), values.get( i ) ); } } } }
@Test public void shouldGetAllSinglePropertyValues() throws Exception { int label = token.nodeLabel( "Node" ); int prop = token.propertyKey( "prop" ); IndexReference index = schemaRead.index( label, prop ); try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor() ) { read.nodeIndexScan( index, node, IndexOrder.NONE, true ); List<Value> values = new ArrayList<>(); while ( node.next() ) { values.add( node.propertyValue( 0 ) ); } values.sort( Values.COMPARATOR ); for ( int i = 0; i < singlePropValues.size(); i++ ) { assertEquals( singlePropValues.get( i ), values.get( i ) ); } } }
while ( nodes.next() ) found.add( Pair.of( nodes.nodeReference(), nodes.propertyValue( 0 ) ) );
private void assertResultsInOrder( List<Pair<Long,Value>> expected, NodeValueIndexCursor cursor ) { Comparator<Pair<Long,Value>> comparator = indexOrder == IndexOrder.ASCENDING ? ( a, b ) -> Values.COMPARATOR.compare( a.other(), b.other() ) : ( a, b ) -> Values.COMPARATOR.compare( b.other(), a.other() ); expected.sort( comparator ); Iterator<Pair<Long,Value>> expectedRows = expected.iterator(); while ( cursor.next() && expectedRows.hasNext() ) { Pair<Long, Value> expectedRow = expectedRows.next(); assertThat( cursor.nodeReference(), equalTo( expectedRow.first() ) ); for ( int i = 0; i < cursor.numberOfProperties(); i++ ) { Value value = cursor.propertyValue( i ); assertThat( value, equalTo( expectedRow.other() ) ); } } assertFalse( expectedRows.hasNext() ); assertFalse( cursor.next() ); }
private void assertFoundNodesAndValue( NodeValueIndexCursor node, int nodes, MutableLongSet uniqueIds, IndexValueCapability expectValue, boolean indexProvidesValues ) { uniqueIds.clear(); for ( int i = 0; i < nodes; i++ ) { assertTrue( "at least " + nodes + " nodes, was " + uniqueIds.size(), node.next() ); long nodeReference = node.nodeReference(); assertTrue( "all nodes are unique", uniqueIds.add( nodeReference ) ); // Assert has value capability if ( IndexValueCapability.YES.equals( expectValue ) ) { assertTrue( "Value capability said index would have value for " + expectValue + ", but didn't", node.hasValue() ); } // Assert has correct value if ( indexProvidesValues ) { assertTrue( "Index did not provide values", node.hasValue() ); Value storedValue = getPropertyValueFromStore( nodeReference ); assertThat( "has correct value", node.propertyValue( 0 ), is( storedValue ) ); } } assertFalse( "no more than " + nodes + " nodes", node.next() ); }