diff --git a/index-stage-sdk-test/src/main/java/com/lucidworks/indexing/sdk/test/IndexStageTestBase.java b/index-stage-sdk-test/src/main/java/com/lucidworks/indexing/sdk/test/IndexStageTestBase.java index 3f83112..31607c5 100644 --- a/index-stage-sdk-test/src/main/java/com/lucidworks/indexing/sdk/test/IndexStageTestBase.java +++ b/index-stage-sdk-test/src/main/java/com/lucidworks/indexing/sdk/test/IndexStageTestBase.java @@ -2,6 +2,7 @@ import com.lucidworks.indexing.api.Document; import com.lucidworks.indexing.api.IndexStage; +import com.lucidworks.indexing.api.fusion.Documents; import com.lucidworks.indexing.api.fusion.Fusion; import com.lucidworks.indexing.config.IndexStageConfig; import org.junit.runner.RunWith; @@ -11,6 +12,8 @@ import java.util.function.Consumer; +import static org.mockito.ArgumentMatchers.any; + /** * Base class for index stage unit tests. * @param index stage config class @@ -31,12 +34,21 @@ public abstract class IndexStageTestBase { * @throws ReflectiveOperationException when unable to instantiate stage class using default no param constructor */ public > S createStage(Class stageClass, C config) throws ReflectiveOperationException { + mockDocumentsInFusion(); + S stage = stageClass.getDeclaredConstructor().newInstance(); stage.init(config, fusion); return stage; } + private void mockDocumentsInFusion() { + Documents documents = Mockito.mock(Documents.class); + Mockito.when(documents.newDocument()).then(invocation -> newDocument()); + Mockito.when(documents.newDocument(any())).then(invocation -> newDocument(invocation.getArgument(0))); + Mockito.when(fusion.documents()).thenReturn(documents); + } + /** * Create new document without id. *