### Question:
IndexTxStateUpdater { void onPropertyChange( NodeCursor node, PropertyCursor propertyCursor, long[] labels, int propertyKeyId, int[] existingPropertyKeyIds, Value beforeValue, Value afterValue ) { assert noSchemaChangedInTx(); Collection<SchemaDescriptor> indexes = indexingService.getRelatedIndexes( labels, propertyKeyId, NODE ); if ( !indexes.isEmpty() ) { MutableIntObjectMap<Value> materializedProperties = IntObjectMaps.mutable.empty(); NodeSchemaMatcher.onMatchingSchema( indexes.iterator(), propertyKeyId, existingPropertyKeyIds, index -> { int[] propertyIds = index.getPropertyIds(); Value[] valuesAfter = getValueTuple( node, propertyCursor, propertyKeyId, afterValue, propertyIds, materializedProperties ); Value[] valuesBefore = valuesAfter.clone(); int k = ArrayUtils.indexOf( propertyIds, propertyKeyId ); valuesBefore[k] = beforeValue; indexingService.validateBeforeCommit( index, valuesAfter ); read.txState().indexDoUpdateEntry( index, node.nodeReference(), ValueTuple.of( valuesBefore ), ValueTuple.of( valuesAfter ) ); } ); } } IndexTxStateUpdater( Read read, IndexingService indexingService );   }### Answer:
@Test public void shouldUpdateIndexesOnChangesProperty() { indexTxUpdater.onPropertyChange( node, propertyCursor, node.labels().all(), propId2, props, Values.of( "hi2" ), Values.of( "new2" ) ); verifyIndexUpdate( uniqueOn1_2.schema(), node.nodeReference(), values( "hi2" ), values( "new2" ) ); verifyIndexUpdate( uniqueOn2_2_3.schema(), node.nodeReference(), values( "hi2", "hi3" ), values( "new2", "hi3" ) ); verify( txState, times( 2 ) ).indexDoUpdateEntry( any(), anyLong(), any(), any() ); }