diff options
Diffstat (limited to 'container-search/src/test/java')
7 files changed, 44 insertions, 57 deletions
diff --git a/container-search/src/test/java/com/yahoo/prelude/searcher/test/BlendingSearcherTestCase.java b/container-search/src/test/java/com/yahoo/prelude/searcher/test/BlendingSearcherTestCase.java index 3e5c4564be0..4ce1cd5a10d 100644 --- a/container-search/src/test/java/com/yahoo/prelude/searcher/test/BlendingSearcherTestCase.java +++ b/container-search/src/test/java/com/yahoo/prelude/searcher/test/BlendingSearcherTestCase.java @@ -23,17 +23,21 @@ import com.yahoo.search.grouping.result.Group; import com.yahoo.search.grouping.result.RootGroup; import com.yahoo.search.grouping.result.StringBucketId; import com.yahoo.search.grouping.result.StringId; -import com.yahoo.search.grouping.result.ValueGroupId; import com.yahoo.search.result.ErrorMessage; import com.yahoo.search.result.Hit; import com.yahoo.search.result.Relevance; +import com.yahoo.search.schema.SchemaInfo; import com.yahoo.search.searchchain.Execution; import com.yahoo.search.searchchain.SearchChain; import com.yahoo.search.searchchain.SearchChainRegistry; import com.yahoo.search.searchchain.testutil.DocumentSourceSearcher; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + /** * Tests the BlendingSearcher class @@ -46,12 +50,12 @@ public class BlendingSearcherTestCase { private static final double delta = 0.00000001; - public class BlendingSearcherWrapper extends Searcher { + public static class BlendingSearcherWrapper extends Searcher { private SearchChain blendingChain; private final FederationConfig.Builder builder = new FederationConfig.Builder(); private final Map<String, Searcher> searchers = new HashMap<>(); - private SearchChainRegistry chainRegistry = new SearchChainRegistry(); + private final SearchChainRegistry chainRegistry = new SearchChainRegistry(); private final String blendingField; @@ -63,12 +67,6 @@ public class BlendingSearcherTestCase { this.blendingField = blendingField; } - @SuppressWarnings("serial") - public BlendingSearcherWrapper(QrSearchersConfig cfg) { - QrSearchersConfig.Com.Yahoo.Prelude.Searcher.BlendingSearcher s = cfg.com().yahoo().prelude().searcher().BlendingSearcher(); - blendingField = s.docid().length() > 0 ? s.docid() : null; - } - /** Adds a source implemented as a single searcher */ public void addSource(String sourceName, Searcher searcher) { addSource(createSearchChain(new ComponentId(sourceName), searcher)); @@ -110,7 +108,7 @@ public class BlendingSearcherTestCase { } FederationSearcher fedSearcher = - new FederationSearcher(new FederationConfig(builder), new ComponentRegistry<>()); + new FederationSearcher(new FederationConfig(builder), SchemaInfo.empty(), new ComponentRegistry<>()); BlendingSearcher blendingSearcher = new BlendingSearcher(blendingField); blendingChain = new SearchChain(ComponentId.createAnonymousComponentId("blendingChain"), blendingSearcher, fedSearcher); return true; diff --git a/container-search/src/test/java/com/yahoo/search/federation/DuplicateSourceTestCase.java b/container-search/src/test/java/com/yahoo/search/federation/DuplicateSourceTestCase.java index b691d8050dd..514a087bed1 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/DuplicateSourceTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/federation/DuplicateSourceTestCase.java @@ -3,8 +3,6 @@ package com.yahoo.search.federation; import com.yahoo.component.ComponentId; import com.yahoo.component.chain.Chain; -import com.yahoo.prelude.IndexFacts; -import com.yahoo.prelude.IndexModel; import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.search.Searcher; @@ -13,7 +11,6 @@ import com.yahoo.search.searchchain.Execution; import com.yahoo.search.searchchain.SearchChainRegistry; import org.junit.jupiter.api.Test; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; @@ -31,20 +28,20 @@ public class DuplicateSourceTestCase { @Test void testDuplicateSource() { + String chain1 = "chain1"; + String schema1 = "doc1", schema2 = "doc2"; // Set up a single cluster and chain (chain1), containing a MockBackendSearcher and having 2 doc types (doc1, doc2) MockBackendSearcher mockBackendSearcher = new MockBackendSearcher(); SearchChainRegistry searchChains = new SearchChainRegistry(); - searchChains.register(new Chain<>("chain1", mockBackendSearcher)); - Map<String, List<String>> clusters = new HashMap<>(); - clusters.put("chain1", List.of("doc1", "doc2")); - IndexFacts indexFacts = new IndexFacts(new IndexModel(clusters, List.of())); + searchChains.register(new Chain<>(chain1, mockBackendSearcher)); SearchChainResolver resolver = new SearchChainResolver.Builder() - .addSearchChain(new ComponentId("chain1"), List.of("doc1", "doc2")) + .addSearchChain(new ComponentId(chain1), List.of(schema1, schema2)) .build(); - FederationSearcher searcher = new FederationSearcher(new ComponentId("test"), resolver); + FederationSearcher searcher = new FederationSearcher(new ComponentId("test"), resolver, + Map.of(schema1, List.of(chain1), schema2, List.of(chain1))); Result result = searcher.search(new Query("?query=test&sources=doc1%2cdoc2"), - new Execution(Execution.Context.createContextStub(searchChains, indexFacts))); + new Execution(Execution.Context.createContextStub(searchChains))); assertNull(result.hits().getError()); assertEquals(1, mockBackendSearcher.getInvocationCount()); diff --git a/container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTest.java b/container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTest.java index 0d6f78a4bf6..4d3e3c18e0b 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTest.java +++ b/container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTest.java @@ -16,6 +16,7 @@ import com.yahoo.search.result.ErrorHit; import com.yahoo.search.result.ErrorMessage; import com.yahoo.search.result.Hit; import com.yahoo.search.result.HitGroup; +import com.yahoo.search.schema.SchemaInfo; import com.yahoo.search.searchchain.Execution; import com.yahoo.search.searchchain.Execution.Context; import com.yahoo.search.searchchain.model.federation.FederationOptions; @@ -168,6 +169,7 @@ public class FederationSearcherTest { FederationSearcher searcher = new FederationSearcher( new FederationConfig(new FederationConfig.Builder().targetSelector(targetSelectorId.toString())), + SchemaInfo.empty(), targetSelectors); Query query = new Query(); @@ -186,6 +188,7 @@ public class FederationSearcherTest { FederationSearcher searcher = new FederationSearcher( new FederationConfig(new FederationConfig.Builder().targetSelector(targetSelectorId.toString())), + SchemaInfo.empty(), targetSelectors); Query query = new Query(); diff --git a/container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTestCase.java b/container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTestCase.java index 3c7e122dc7d..af0e0ef69a8 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTestCase.java @@ -11,6 +11,7 @@ import com.yahoo.search.federation.sourceref.SearchChainResolver; import com.yahoo.search.query.profile.QueryProfile; import com.yahoo.search.result.ErrorMessage; import com.yahoo.search.result.Hit; +import com.yahoo.search.schema.SchemaInfo; import com.yahoo.search.searchchain.Execution; import com.yahoo.search.searchchain.SearchChain; import com.yahoo.search.searchchain.SearchChainRegistry; @@ -24,6 +25,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.util.List; +import java.util.Map; import static org.junit.jupiter.api.Assertions.*; @@ -81,7 +83,7 @@ public class FederationSearcherTestCase { } private Searcher createFederationSearcher() { - return new FederationSearcher(new FederationConfig(builder), new ComponentRegistry<>()); + return new FederationSearcher(new FederationConfig(builder), SchemaInfo.empty(), new ComponentRegistry<>()); } private SearchChain createSearchChain(ComponentId chainId,Searcher searcher) { @@ -107,7 +109,7 @@ public class FederationSearcherTestCase { @Test void testTraceTwoSources() { - Chain<Searcher> mainChain = twoTracingSources(false); + Chain<Searcher> mainChain = twoTracingSources(); Query q = new Query(com.yahoo.search.test.QueryTestCase.httpEncode("?query=test&traceLevel=1")); @@ -120,7 +122,7 @@ public class FederationSearcherTestCase { assertTrue(lookForTraces.traceFromSource2); } - private Chain<Searcher> twoTracingSources(boolean strictContracts) { + private Chain<Searcher> twoTracingSources() { addChained(new Searcher() { @Override public Result search(Query query, Execution execution) { @@ -140,12 +142,12 @@ public class FederationSearcherTestCase { }, SOURCE2); return new Chain<>("default", - new FederationSearcher(new FederationConfig(builder), new ComponentRegistry<>())); + new FederationSearcher(new FederationConfig(builder), SchemaInfo.empty(), new ComponentRegistry<>())); } @Test void testTraceOneSourceNoCloning() { - Chain<Searcher> mainChain = twoTracingSources(true); + Chain<Searcher> mainChain = twoTracingSources(); Query q = new Query(com.yahoo.search.test.QueryTestCase.httpEncode("?query=test&traceLevel=1&sources=source1")); @@ -160,7 +162,7 @@ public class FederationSearcherTestCase { @Test void testTraceOneSourceWithCloning() { - Chain<Searcher> mainChain = twoTracingSources(false); + Chain<Searcher> mainChain = twoTracingSources(); Query q = new Query(com.yahoo.search.test.QueryTestCase.httpEncode("?query=test&traceLevel=1&sources=source1")); @@ -282,7 +284,7 @@ public class FederationSearcherTestCase { builder.addSourceForProvider(news, provider1, provider1, true, options, List.of()); builder.addSourceForProvider(news, provider2, provider2, false, options, List.of()); - return new FederationSearcher(new ComponentId("federation"), builder.build()); + return new FederationSearcher(new ComponentId("federation"), builder.build(), Map.of()); } private static class MockProvider extends Searcher { diff --git a/container-search/src/test/java/com/yahoo/search/federation/FederationTester.java b/container-search/src/test/java/com/yahoo/search/federation/FederationTester.java index 3991a8d18b7..ec540e43dfd 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/FederationTester.java +++ b/container-search/src/test/java/com/yahoo/search/federation/FederationTester.java @@ -11,7 +11,8 @@ import com.yahoo.search.searchchain.Execution; import com.yahoo.search.searchchain.SearchChainRegistry; import com.yahoo.search.searchchain.model.federation.FederationOptions; -import java.util.Collections; +import java.util.List; +import java.util.Map; /** * @author Tony Vaagenes @@ -30,7 +31,7 @@ class FederationTester { void addSearchChain(String id, FederationOptions federationOptions, Searcher... searchers) { ComponentId searchChainId = ComponentId.fromString(id); - builder.addSearchChain(searchChainId, federationOptions, Collections.<String>emptyList()); + builder.addSearchChain(searchChainId, federationOptions, List.of()); Chain<Searcher> chain = new Chain<>(searchChainId, searchers); registry.register(chain); @@ -46,7 +47,7 @@ class FederationTester { } FederationSearcher buildFederationSearcher() { - return new FederationSearcher(ComponentId.fromString("federation"), builder.build()); + return new FederationSearcher(ComponentId.fromString("federation"), builder.build(), Map.of()); } public Result search() { diff --git a/container-search/src/test/java/com/yahoo/search/federation/sourceref/SourceRefResolverTestCase.java b/container-search/src/test/java/com/yahoo/search/federation/sourceref/SourceRefResolverTestCase.java index 9badd4a1ab6..b32135afc94 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/sourceref/SourceRefResolverTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/federation/sourceref/SourceRefResolverTestCase.java @@ -9,8 +9,8 @@ import com.yahoo.search.searchchain.model.federation.FederationOptions; import org.junit.jupiter.api.Test; import java.util.ArrayList; -import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.TreeMap; @@ -29,35 +29,20 @@ public class SourceRefResolverTestCase { private static final String cluster1 = "cluster1"; private static final String cluster2 = "cluster2"; private static final String cluster3 = "cluster3"; - private static IndexFacts indexFacts; + private static final String schema1 = "document1"; + private static final String schema2 = "document2"; + private static final String schema3 = "document3"; private static final SourceRefResolver sourceRefResolver = createSourceRefResolver(); - static { - setupIndexFacts(); - } - private static SourceRefResolver createSourceRefResolver() { SearchChainResolver.Builder builder = new SearchChainResolver.Builder(); - builder.addSearchChain(ComponentId.fromString(cluster1), new FederationOptions().setUseByDefault(true), - Collections.emptyList()); - builder.addSearchChain(ComponentId.fromString(cluster2), new FederationOptions().setUseByDefault(true), - Collections.emptyList()); - - return new SourceRefResolver(builder.build()); - } + builder.addSearchChain(ComponentId.fromString(cluster1), new FederationOptions().setUseByDefault(true), List.of()); + builder.addSearchChain(ComponentId.fromString(cluster2), new FederationOptions().setUseByDefault(true), List.of()); - private static void setupIndexFacts() { - TreeMap<String, List<String>> masterClusters = new TreeMap<>(); - masterClusters.put(cluster1, List.of("document1", "document2")); - masterClusters.put(cluster2, List.of("document1")); - masterClusters.put(cluster3, List.of("document3")); - indexFacts = new IndexFacts(new IndexModel(masterClusters, Collections.emptyList())); - } - - @Test - void check_test_assumptions() { - assertTrue(indexFacts.clustersHavingSearchDefinition("document1").containsAll(List.of("cluster1", "cluster2"))); + return new SourceRefResolver(builder.build(), Map.of(schema1, List.of(cluster1, cluster2), + schema2, List.of(cluster1), + schema3, List.of(cluster3))); } @Test @@ -105,7 +90,7 @@ public class SourceRefResolverTestCase { } private Set<SearchChainInvocationSpec> resolve(String documentName) throws UnresolvedSearchChainException { - return sourceRefResolver.resolve(ComponentSpecification.fromString(documentName), emptySourceToProviderMap(), indexFacts); + return sourceRefResolver.resolve(ComponentSpecification.fromString(documentName), emptySourceToProviderMap()); } } diff --git a/container-search/src/test/java/com/yahoo/search/searchchain/test/FutureDataTestCase.java b/container-search/src/test/java/com/yahoo/search/searchchain/test/FutureDataTestCase.java index e16c4164fbb..36c80e852d1 100644 --- a/container-search/src/test/java/com/yahoo/search/searchchain/test/FutureDataTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/searchchain/test/FutureDataTestCase.java @@ -17,6 +17,7 @@ import com.yahoo.search.searchchain.model.federation.FederationOptions; import org.junit.jupiter.api.Test; import java.util.Collections; +import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -42,7 +43,7 @@ public class FutureDataTestCase { new SearchChainResolver.Builder().addSearchChain(new ComponentId("sync"), new FederationOptions().setUseByDefault(true)). addSearchChain(new ComponentId("async"), new FederationOptions().setUseByDefault(true)). build(); - Chain<Searcher> main = new Chain<>(new FederationSearcher(new ComponentId("federator"), searchChainResolver)); + Chain<Searcher> main = new Chain<>(new FederationSearcher(new ComponentId("federator"), searchChainResolver, Map.of())); SearchChainRegistry searchChainRegistry = new SearchChainRegistry(); searchChainRegistry.register(main); searchChainRegistry.register(syncSource); |