From 9b44a22ac554484872df90b69108ae00e6530f06 Mon Sep 17 00:00:00 2001 From: Daniel Widdis Date: Mon, 9 Sep 2024 18:29:45 -0700 Subject: [PATCH] Don't test createComponents as it has side-effects on other tests Signed-off-by: Daniel Widdis --- .../plugin/NeuralSearchTests.java | 45 +++++-------------- 1 file changed, 10 insertions(+), 35 deletions(-) diff --git a/src/test/java/org/opensearch/neuralsearch/plugin/NeuralSearchTests.java b/src/test/java/org/opensearch/neuralsearch/plugin/NeuralSearchTests.java index de16e04cc..928e1bb91 100644 --- a/src/test/java/org/opensearch/neuralsearch/plugin/NeuralSearchTests.java +++ b/src/test/java/org/opensearch/neuralsearch/plugin/NeuralSearchTests.java @@ -4,15 +4,12 @@ */ package org.opensearch.neuralsearch.plugin; -import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.concurrent.ExecutorService; import org.junit.Before; import org.mockito.Mock; @@ -45,7 +42,6 @@ import org.opensearch.search.query.QueryPhaseSearcher; import org.opensearch.threadpool.ExecutorBuilder; import org.opensearch.threadpool.FixedExecutorBuilder; -import org.opensearch.threadpool.ThreadPool; public class NeuralSearchTests extends OpenSearchQueryTestCase { @@ -53,16 +49,9 @@ public class NeuralSearchTests extends OpenSearchQueryTestCase { @Mock private SearchPipelineService searchPipelineService; - private SearchPipelinePlugin.Parameters searchParameters; - @Mock - private IngestService ingestService; - private Processor.Parameters ingestParameters; + private SearchPipelinePlugin.Parameters parameters; @Mock private ClusterService clusterService; - @Mock - private ThreadPool threadPool; - @Mock - private ExecutorService executorService; @Before public void setup() { @@ -71,29 +60,15 @@ public void setup() { plugin = new NeuralSearch(); when(searchPipelineService.getClusterService()).thenReturn(clusterService); - searchParameters = new SearchPipelinePlugin.Parameters(null, null, null, null, null, null, searchPipelineService, null, null, null); - ingestParameters = new Processor.Parameters(null, null, null, null, null, null, ingestService, null, null, null); - when(threadPool.executor(anyString())).thenReturn(executorService); + parameters = new SearchPipelinePlugin.Parameters(null, null, null, null, null, null, searchPipelineService, null, null, null); } public void testCreateComponents() { - // clientAccessor can not be null, and this is the only way to access it from this test - plugin.getProcessors(ingestParameters); - Collection components = plugin.createComponents( - null, - clusterService, - threadPool, - null, - null, - null, - null, - null, - null, - null, - null - ); - - assertEquals(1, components.size()); + // Empty method to explain why createComponents isn't covered by tests + // + // CreateComponents uses initialize() methods on three other classes which sets static class variables. + // This breaks the encapsulation of tests and produces unpredicatble behavior in these other tests. + // It's possible to work around these limitations but not worth it just to cover some lines of code } public void testQuerySpecs() { @@ -143,7 +118,7 @@ public void testProcessors() { public void testSearchPhaseResultsProcessors() { Map> searchPhaseResultsProcessors = plugin - .getSearchPhaseResultsProcessors(searchParameters); + .getSearchPhaseResultsProcessors(parameters); assertNotNull(searchPhaseResultsProcessors); assertEquals(1, searchPhaseResultsProcessors.size()); assertTrue(searchPhaseResultsProcessors.containsKey("normalization-processor")); @@ -161,7 +136,7 @@ public void testGetSettings() { public void testRequestProcessors() { Map> processors = plugin.getRequestProcessors( - searchParameters + parameters ); assertNotNull(processors); assertNotNull(processors.get(NeuralQueryEnricherProcessor.TYPE)); @@ -169,7 +144,7 @@ public void testRequestProcessors() { } public void testResponseProcessors() { - Map> processors = plugin.getResponseProcessors(searchParameters); + Map> processors = plugin.getResponseProcessors(parameters); assertNotNull(processors); assertNotNull(processors.get(RerankProcessor.TYPE)); }