diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/IndexBatchTransactionApplierTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/IndexBatchTransactionApplierTest.java index d75c90d0f47ce..f9b5e077fee96 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/IndexBatchTransactionApplierTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/IndexBatchTransactionApplierTest.java @@ -25,6 +25,7 @@ import java.util.function.Supplier; import org.neo4j.concurrent.WorkSync; +import org.neo4j.helpers.collection.Iterables; import org.neo4j.kernel.api.labelscan.LabelScanWriter; import org.neo4j.kernel.api.labelscan.NodeLabelUpdate; import org.neo4j.kernel.impl.api.TransactionApplier; @@ -44,6 +45,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import static org.neo4j.kernel.impl.store.record.Record.NO_NEXT_PROPERTY; import static org.neo4j.kernel.impl.store.record.Record.NO_NEXT_RELATIONSHIP; @@ -54,6 +56,7 @@ public void shouldProvideLabelScanStoreUpdatesSortedByNodeId() throws Exception { // GIVEN IndexingService indexing = mock( IndexingService.class ); + when( indexing.convertToIndexUpdates( any() ) ).thenAnswer( o -> Iterables.empty() ); LabelScanWriter writer = new OrderVerifyingLabelScanWriter( 10, 15, 20 ); WorkSync,LabelUpdateWork> labelScanSync = spy( new WorkSync<>( singletonProvider( writer ) ) ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/NeoTransactionIndexApplierTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/NeoTransactionIndexApplierTest.java index 581307f3ebbb5..c0cdc4d6be122 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/NeoTransactionIndexApplierTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/NeoTransactionIndexApplierTest.java @@ -27,6 +27,7 @@ import java.util.function.Supplier; import org.neo4j.concurrent.WorkSync; +import org.neo4j.helpers.collection.Iterables; import org.neo4j.kernel.api.index.SchemaIndexProvider.Descriptor; import org.neo4j.kernel.api.labelscan.LabelScanWriter; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; @@ -44,6 +45,7 @@ import static java.util.Collections.singleton; import static org.junit.Assert.assertFalse; +import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -66,6 +68,7 @@ public class NeoTransactionIndexApplierTest public void setup() { when( transactionToApply.transactionId() ).thenReturn( 1L ); + when( indexingService.convertToIndexUpdates( any() ) ).thenAnswer( o -> Iterables.empty() ); } @Test diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/TransactionRecordStateTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/TransactionRecordStateTest.java index 15526f6a48d92..888527e499a2e 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/TransactionRecordStateTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/TransactionRecordStateTest.java @@ -38,6 +38,9 @@ import org.neo4j.graphdb.factory.GraphDatabaseSettings; import org.neo4j.helpers.collection.Iterables; import org.neo4j.kernel.api.exceptions.TransactionFailureException; +import org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException; +import org.neo4j.kernel.api.index.IndexEntryUpdate; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.impl.api.index.IndexingUpdateService; import org.neo4j.kernel.impl.api.index.NodeUpdates; import org.neo4j.kernel.api.properties.DefinedProperty; @@ -1218,11 +1221,12 @@ private Iterable indexUpdatesOf( NeoStores neoStores, TransactionRe NodePropertyCommandsExtractor extractor = new NodePropertyCommandsExtractor(); transaction.accept( extractor ); - OnlineIndexUpdates lazyIndexUpdates = new OnlineIndexUpdates( neoStores.getNodeStore(), - mock( IndexingUpdateService.class ), + CollectingIndexingUpdateService indexingUpdateService = new CollectingIndexingUpdateService(); + OnlineIndexUpdates onlineIndexUpdates = new OnlineIndexUpdates( neoStores.getNodeStore(), + indexingUpdateService, new PropertyPhysicalToLogicalConverter( neoStores.getPropertyStore() ) ); - lazyIndexUpdates.feed( extractor.propertyCommandsByNodeIds(), extractor.nodeCommandsById() ); - return Iterables.empty(); + onlineIndexUpdates.feed( extractor.propertyCommandsByNodeIds(), extractor.nodeCommandsById() ); + return indexingUpdateService.nodeUpdatesList; } private PhysicalTransactionRepresentation transactionRepresentationOf( TransactionRecordState writeTransaction ) @@ -1364,4 +1368,21 @@ private RelationshipGroupCommand singleRelationshipGroupCommand( Collection t instanceof RelationshipGroupCommand, commands ) ); } + + private class CollectingIndexingUpdateService implements IndexingUpdateService + { + final List nodeUpdatesList = new ArrayList<>(); + + @Override + public void apply( IndexUpdates updates ) throws IOException, IndexEntryConflictException + { + } + + @Override + public Iterable> convertToIndexUpdates( NodeUpdates nodeUpdates ) + { + nodeUpdatesList.add( nodeUpdates ); + return Iterables.empty(); + } + } }