diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-10-07 17:00:28 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-10-07 17:05:04 +0200 |
commit | e8f2842df4e486af6b31e2ffbc1d5569b8d26850 (patch) | |
tree | b4aa7928ebf4ab6dc85f039325138857a24b4eaa /container-search/src/test/java/com/yahoo/search/federation | |
parent | 6cd3e5387169803041c5628178181ee15e7b929c (diff) |
- Use the default threadpool for federation.
- Move test classes into the same package as the code to avoid making test only methods public.
- Deprecate old AsyncExecution.search/fill methods and let them run in its own thread.
There should be no external usage of this class.
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search/federation')
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/federation/AddHitsWithRelevanceSearcher.java (renamed from container-search/src/test/java/com/yahoo/search/federation/test/AddHitsWithRelevanceSearcher.java) | 4 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/federation/BlockingSearcher.java (renamed from container-search/src/test/java/com/yahoo/search/federation/test/BlockingSearcher.java) | 4 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/federation/DuplicateSourceTestCase.java (renamed from container-search/src/test/java/com/yahoo/search/federation/test/DuplicateSourceTestCase.java) | 3 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/federation/FederationResultTest.java | 3 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTest.java (renamed from container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTest.java) | 80 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTestCase.java (renamed from container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTestCase.java) | 46 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/federation/FederationTester.java (renamed from container-search/src/test/java/com/yahoo/search/federation/test/FederationTester.java) | 10 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/federation/HitCountTestCase.java (renamed from container-search/src/test/java/com/yahoo/search/federation/test/HitCountTestCase.java) | 34 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/federation/SetHitCountsSearcher.java (renamed from container-search/src/test/java/com/yahoo/search/federation/test/SetHitCountsSearcher.java) | 2 |
9 files changed, 105 insertions, 81 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/AddHitsWithRelevanceSearcher.java b/container-search/src/test/java/com/yahoo/search/federation/AddHitsWithRelevanceSearcher.java index 9c885a1632b..e4eada1968d 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/test/AddHitsWithRelevanceSearcher.java +++ b/container-search/src/test/java/com/yahoo/search/federation/AddHitsWithRelevanceSearcher.java @@ -1,5 +1,5 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.search.federation.test; +package com.yahoo.search.federation; import com.yahoo.search.Query; import com.yahoo.search.Result; @@ -10,7 +10,7 @@ import com.yahoo.search.searchchain.Execution; /** * @author Tony Vaagenes */ -public class AddHitsWithRelevanceSearcher extends Searcher { +class AddHitsWithRelevanceSearcher extends Searcher { public static final int numHitsAdded = 5; private final String chainName; diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/BlockingSearcher.java b/container-search/src/test/java/com/yahoo/search/federation/BlockingSearcher.java index fd2ae7fad61..f06ab5b7fdc 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/test/BlockingSearcher.java +++ b/container-search/src/test/java/com/yahoo/search/federation/BlockingSearcher.java @@ -1,5 +1,5 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.search.federation.test; +package com.yahoo.search.federation; import com.yahoo.search.Query; import com.yahoo.search.Result; @@ -9,7 +9,7 @@ import com.yahoo.search.searchchain.Execution; /** * @author Tony Vaagenes */ -public class BlockingSearcher extends Searcher { +class BlockingSearcher extends Searcher { @Override public synchronized Result search(Query query, Execution execution) { diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/DuplicateSourceTestCase.java b/container-search/src/test/java/com/yahoo/search/federation/DuplicateSourceTestCase.java index c8a1007f366..da25baacd51 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/test/DuplicateSourceTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/federation/DuplicateSourceTestCase.java @@ -1,5 +1,5 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.search.federation.test; +package com.yahoo.search.federation; import com.google.common.collect.ImmutableList; import com.yahoo.component.ComponentId; @@ -9,7 +9,6 @@ import com.yahoo.prelude.IndexModel; import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.search.Searcher; -import com.yahoo.search.federation.FederationSearcher; import com.yahoo.search.federation.sourceref.SearchChainResolver; import com.yahoo.search.searchchain.Execution; import com.yahoo.search.searchchain.SearchChainRegistry; diff --git a/container-search/src/test/java/com/yahoo/search/federation/FederationResultTest.java b/container-search/src/test/java/com/yahoo/search/federation/FederationResultTest.java index 3cd9e4a6408..a17104f888d 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/FederationResultTest.java +++ b/container-search/src/test/java/com/yahoo/search/federation/FederationResultTest.java @@ -19,6 +19,7 @@ import java.util.Set; import java.util.concurrent.TimeUnit; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** @@ -57,7 +58,7 @@ public class FederationResultTest { if (expectedTimeoutNames.contains(targetResult.target.getId().toString())) assertTrue(targetResult.target.getId() + " timed out", timedOut(result)); else - assertTrue(targetResult.target.getId() + " did not time out", ! timedOut(result)); + assertFalse(targetResult.target.getId() + " did not time out", timedOut(result)); } } diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTest.java b/container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTest.java index b42500ee4f5..7651849a519 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTest.java +++ b/container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTest.java @@ -1,5 +1,5 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.search.federation.test; +package com.yahoo.search.federation; import com.yahoo.component.ComponentId; import com.yahoo.component.chain.Chain; @@ -10,12 +10,8 @@ import com.yahoo.processing.execution.chain.ChainRegistry; import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.search.Searcher; -import com.yahoo.search.federation.FederationConfig; -import com.yahoo.search.federation.FederationSearcher; -import com.yahoo.search.federation.TimeoutException; import com.yahoo.search.federation.selection.FederationTarget; import com.yahoo.search.federation.selection.TargetSelector; -import com.yahoo.search.federation.StrictContractsConfig; import com.yahoo.search.result.ErrorHit; import com.yahoo.search.result.ErrorMessage; import com.yahoo.search.result.Hit; @@ -24,18 +20,21 @@ import com.yahoo.search.searchchain.Execution; import com.yahoo.search.searchchain.Execution.Context; import com.yahoo.search.searchchain.model.federation.FederationOptions; +import org.junit.After; +import org.junit.Before; import org.junit.Test; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; /** * @author Tony Vaagenes @@ -44,6 +43,18 @@ public class FederationSearcherTest { private static final String hasBeenFilled = "hasBeenFilled"; + private ExecutorService executor; + + @Before + public void setUp() throws Exception { + executor = Executors.newFixedThreadPool(16); + } + + @After + public void tearDown() { + assertEquals(0, executor.shutdownNow().size()); + } + @Test public void require_that_hits_are_not_automatically_filled() { Result result = federationToSingleAddHitSearcher().search(); @@ -58,7 +69,7 @@ public class FederationSearcherTest { @Test public void require_that_hits_can_be_filled_when_moved() { - FederationTester tester = new FederationTester(); + FederationTester tester = new FederationTester(executor); tester.addSearchChain("chain1", new AddHitSearcher()); tester.addSearchChain("chain2", new AddHitSearcher()); @@ -86,7 +97,7 @@ public class FederationSearcherTest { @Test public void require_that_hits_can_be_filled_for_multiple_chains_and_queries() { - FederationTester tester = new FederationTester(); + FederationTester tester = new FederationTester(executor); tester.addSearchChain("chain1", new AddHitSearcher()); tester.addSearchChain("chain2", new ModifyQueryAndAddHitSearcher("modified1")); tester.addSearchChain("chain3", new ModifyQueryAndAddHitSearcher("modified2")); @@ -100,7 +111,7 @@ public class FederationSearcherTest { @Test public void require_that_hits_that_time_out_in_fill_are_removed() { - FederationTester tester = new FederationTester(); + FederationTester tester = new FederationTester(executor); tester.addSearchChain("chain1", new AddHitSearcher()); tester.addSearchChain("chain2", new TimeoutInFillSearcher()); @@ -118,7 +129,7 @@ public class FederationSearcherTest { public void require_that_optional_search_chains_does_not_delay_federation() { BlockingSearcher blockingSearcher = new BlockingSearcher(); - FederationTester tester = new FederationTester(); + FederationTester tester = new FederationTester(executor); tester.addSearchChain("chain1", new AddHitSearcher()); tester.addOptionalSearchChain("chain2", blockingSearcher); @@ -147,7 +158,7 @@ public class FederationSearcherTest { @Test public void require_that_calling_a_single_slow_source_with_long_timeout_does_not_delay_federation() { - FederationTester tester = new FederationTester(); + FederationTester tester = new FederationTester(executor); tester.addSearchChain("chain1", new FederationOptions().setUseByDefault(true).setRequestTimeoutInMilliseconds(3600 * 1000), new BlockingSearcher() ); @@ -177,14 +188,14 @@ public class FederationSearcherTest { FederationSearcher searcher = new FederationSearcher( new FederationConfig(new FederationConfig.Builder().targetSelector(targetSelectorId.toString())), new StrictContractsConfig(new StrictContractsConfig.Builder()), - targetSelectors); + targetSelectors, executor); Query query = new Query(); query.setTimeout(20000); Result result = new Execution(searcher, Context.createContextStub()).search(query); HitGroup myChainGroup = (HitGroup) result.hits().get(0); - assertThat(myChainGroup.getId(), is(new URI("source:myChain"))); - assertThat(myChainGroup.get(0).getId(), is(new URI("myHit"))); + assertEquals(myChainGroup.getId(), new URI("source:myChain")); + assertEquals(myChainGroup.get(0).getId(), new URI("myHit")); } @Test @@ -196,7 +207,7 @@ public class FederationSearcherTest { FederationSearcher searcher = new FederationSearcher( new FederationConfig(new FederationConfig.Builder().targetSelector(targetSelectorId.toString())), new StrictContractsConfig(new StrictContractsConfig.Builder()), - targetSelectors); + targetSelectors, executor); Query query = new Query(); query.setTimeout(20000); @@ -206,11 +217,11 @@ public class FederationSearcherTest { Hit hit1 = hitsIterator.next(); Hit hit2 = hitsIterator.next(); - assertThat(hit1.getSource(), is("chain1")); - assertThat(hit2.getSource(), is("chain2")); + assertEquals(hit1.getSource(), "chain1"); + assertEquals(hit2.getSource(), "chain2"); - assertThat(hit1.getField("data"), is("modifyTargetQuery:custom-data:1")); - assertThat(hit2.getField("data"), is("modifyTargetQuery:custom-data:2")); + assertEquals(hit1.getField("data"), "modifyTargetQuery:custom-data:1"); + assertEquals(hit2.getField("data"), "modifyTargetQuery:custom-data:2"); } private Hit getFirstHit(Hit hitGroup) { @@ -220,15 +231,6 @@ public class FederationSearcherTest { throw new IllegalArgumentException("Expected HitGroup"); } - private List<Hit> getNonErrorHits(Result result) { - List<Hit> nonErrorHits = new ArrayList<>(); - for (Hit hit : result.hits()) { - if (!(hit instanceof ErrorHit)) - nonErrorHits.add(hit); - } - - return nonErrorHits; - } private static void assertFilled(Hit hit) { if (hit.isMeta()) return; assertTrue((Boolean)hit.getField(hasBeenFilled)); @@ -239,7 +241,7 @@ public class FederationSearcherTest { } private FederationTester federationToSingleAddHitSearcher() { - FederationTester tester = new FederationTester(); + FederationTester tester = new FederationTester(executor); tester.addSearchChain("chain1", new AddHitSearcher()); return tester; } @@ -326,8 +328,8 @@ public class FederationSearcherTest { @Override public Collection<FederationTarget<String>> getTargets(Query query, ChainRegistry<Searcher> searcherChainRegistry) { - return Arrays.asList( - new FederationTarget<>(new Chain<>("myChain", Collections.<Searcher>emptyList()), new FederationOptions(), "hello")); + return List.of( + new FederationTarget<>(new Chain<>("myChain", List.of()), new FederationOptions(), "hello")); } @Override @@ -339,13 +341,13 @@ public class FederationSearcherTest { @Override public void modifyTargetResult(FederationTarget<String> target, Result result) { checkTarget(target); - assertThat(result.getQuery().properties().getString(keyName), is("called")); + assertEquals(result.getQuery().properties().getString(keyName), "called"); result.hits().add(new Hit("myHit")); } private void checkTarget(FederationTarget<String> target) { - assertThat(target.getCustomData(), is("hello")); - assertThat(target.getChain().getId(), is(ComponentId.fromString("myChain"))); + assertEquals(target.getCustomData(), "hello"); + assertEquals(target.getChain().getId(), ComponentId.fromString("myChain")); } } @@ -359,7 +361,7 @@ public class FederationSearcherTest { } private FederationTarget<String> createTarget(int number) { - return new FederationTarget<>(new Chain<>("chain" + number, Collections.<Searcher>emptyList()), + return new FederationTarget<>(new Chain<>("chain" + number, List.of()), new FederationOptions(), "custom-data:" + number); } diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTestCase.java b/container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTestCase.java index 33198b4496e..65640cc94f0 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/federation/FederationSearcherTestCase.java @@ -1,5 +1,5 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.search.federation.test; +package com.yahoo.search.federation; import com.yahoo.component.ComponentId; import com.yahoo.component.chain.Chain; @@ -7,13 +7,8 @@ import com.yahoo.component.provider.ComponentRegistry; import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.search.Searcher; -import com.yahoo.search.federation.FederationConfig; -import com.yahoo.search.federation.FederationSearcher; -import com.yahoo.search.federation.StrictContractsConfig; -import com.yahoo.search.federation.selection.TargetSelector; import com.yahoo.search.federation.sourceref.SearchChainResolver; import com.yahoo.search.query.profile.QueryProfile; -import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.search.result.ErrorMessage; import com.yahoo.search.result.Hit; import com.yahoo.search.result.HitGroup; @@ -29,10 +24,17 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import java.util.Collections; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; -import static org.junit.Assert.*; import static com.yahoo.search.federation.StrictContractsConfig.PropagateSourceProperties; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; /** * Test for federation searcher. The searcher is also tested in @@ -40,7 +42,6 @@ import static com.yahoo.search.federation.StrictContractsConfig.PropagateSourceP * * @author Arne Bergene Fossaa */ -@SuppressWarnings("deprecation") public class FederationSearcherTestCase { static final String SOURCE1 = "source1"; @@ -63,17 +64,20 @@ public class FederationSearcherTestCase { private FederationConfig.Builder builder; private SearchChainRegistry chainRegistry; + private ExecutorService executor; @Before public void setUp() throws Exception { builder = new FederationConfig.Builder(); chainRegistry = new SearchChainRegistry(); + executor = Executors.newFixedThreadPool(16); } @After public void tearDown() { builder = null; chainRegistry = null; + assertEquals(0, executor.shutdownNow().size()); } private void addChained(Searcher searcher, String sourceName) { @@ -103,7 +107,7 @@ public class FederationSearcherTestCase { } private Searcher buildFederation(StrictContractsConfig contracts) throws RuntimeException { - return new FederationSearcher(new FederationConfig(builder), contracts, new ComponentRegistry<>()); + return new FederationSearcher(new FederationConfig(builder), contracts, new ComponentRegistry<>(), executor); } private SearchChain createSearchChain(ComponentId chainId,Searcher searcher) { @@ -161,12 +165,12 @@ public class FederationSearcherTestCase { }, SOURCE2); - Chain<Searcher> mainChain = new Chain<>("default", + return new Chain<>("default", new FederationSearcher(new FederationConfig(builder), new StrictContractsConfig( new StrictContractsConfig.Builder().searchchains(strictContracts)), - new ComponentRegistry<>())); - return mainChain; + new ComponentRegistry<>(), + executor)); } @Test @@ -208,7 +212,7 @@ public class FederationSearcherTestCase { assertEquals("source:mySource2", result.hits().get(1).getId().stringValue()); assertEquals("nalle", result.hits().get(0).getQuery().getPresentation().getSummary()); assertNull(result.hits().get(1).getQuery().getPresentation().getSummary()); - assertEquals(null, result.hits().get(0).getQuery().properties().get("custom")); + assertNull(result.hits().get(0).getQuery().properties().get("custom")); } @Test @@ -219,8 +223,8 @@ public class FederationSearcherTestCase { assertEquals("source:mySource2", result.hits().get(1).getId().stringValue()); assertEquals("nalle", result.hits().get(0).getQuery().getPresentation().getSummary()); assertEquals("foo", result.hits().get(0).getQuery().properties().get("customSourceProperty")); - assertEquals(null, result.hits().get(1).getQuery().properties().get("customSourceProperty")); - assertEquals(null, result.hits().get(0).getQuery().properties().get("custom.source.property")); + assertNull(result.hits().get(1).getQuery().properties().get("customSourceProperty")); + assertNull(result.hits().get(0).getQuery().properties().get("custom.source.property")); assertEquals("bar", result.hits().get(1).getQuery().properties().get("custom.source.property")); assertEquals(13, result.hits().get(0).getQuery().properties().get("hits")); assertEquals(1, result.hits().get(0).getQuery().properties().get("offset")); @@ -347,12 +351,12 @@ public class FederationSearcherTestCase { ComponentId provider1 = new ComponentId("provider1"); ComponentId provider2 = new ComponentId("provider2"); ComponentId news = new ComponentId("news"); - builder.addSearchChain(provider1, options, Collections.<String> emptyList()); - builder.addSearchChain(provider2, options, Collections.<String> emptyList()); - builder.addSourceForProvider(news, provider1, provider1, true, options, Collections.<String> emptyList()); - builder.addSourceForProvider(news, provider2, provider2, false, options, Collections.<String> emptyList()); + builder.addSearchChain(provider1, options, List.of()); + builder.addSearchChain(provider2, options, List.of()); + 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(), executor); } private static class MockProvider extends Searcher { diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/FederationTester.java b/container-search/src/test/java/com/yahoo/search/federation/FederationTester.java index 393529781b2..433fe557b24 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/test/FederationTester.java +++ b/container-search/src/test/java/com/yahoo/search/federation/FederationTester.java @@ -1,18 +1,18 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.search.federation.test; +package com.yahoo.search.federation; import com.yahoo.component.ComponentId; import com.yahoo.component.chain.Chain; import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.search.Searcher; -import com.yahoo.search.federation.FederationSearcher; import com.yahoo.search.federation.sourceref.SearchChainResolver; 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.concurrent.Executor; /** * @author Tony Vaagenes @@ -23,7 +23,11 @@ class FederationTester { private final SearchChainRegistry registry = new SearchChainRegistry(); private Execution execution; + private final Executor executor; + FederationTester(Executor executor) { + this.executor = executor; + } void addSearchChain(String id, Searcher... searchers) { addSearchChain(id, federationOptions(), searchers); } @@ -47,7 +51,7 @@ class FederationTester { } FederationSearcher buildFederationSearcher() { - return new FederationSearcher(ComponentId.fromString("federation"), builder.build()); + return new FederationSearcher(ComponentId.fromString("federation"), builder.build(), executor); } public Result search() { diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/HitCountTestCase.java b/container-search/src/test/java/com/yahoo/search/federation/HitCountTestCase.java index 74eb7992a38..163263b7640 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/test/HitCountTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/federation/HitCountTestCase.java @@ -1,31 +1,45 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.search.federation.test; +package com.yahoo.search.federation; import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.search.result.Hit; import com.yahoo.search.result.HitGroup; +import org.junit.After; +import org.junit.Before; import org.junit.Test; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; -import static org.hamcrest.core.Is.is; -import static org.hamcrest.core.StringStartsWith.startsWith; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; /** * @author Tony Vaagenes */ public class HitCountTestCase { + private ExecutorService executor; + + @Before + public void setUp() throws Exception { + executor = Executors.newFixedThreadPool(16); + } + + @After + public void tearDown() { + assertEquals(0, executor.shutdownNow().size()); + } + @Test public void require_that_offset_and_hits_are_adjusted_when_federating() { final int chain1RelevanceMultiplier = 1; final int chain2RelevanceMultiplier = 10; - FederationTester tester = new FederationTester(); + FederationTester tester = new FederationTester(executor); tester.addSearchChain("chain1", new AddHitsWithRelevanceSearcher("chain1", chain1RelevanceMultiplier)); tester.addSearchChain("chain2", new AddHitsWithRelevanceSearcher("chain2", chain2RelevanceMultiplier)); @@ -47,14 +61,14 @@ public class HitCountTestCase { final long chain2TotalHitCount = 7; final long chain2DeepHitCount = 11; - FederationTester tester = new FederationTester(); + FederationTester tester = new FederationTester(executor); tester.addSearchChain("chain1", new SetHitCountsSearcher(chain1TotalHitCount, chain1DeepHitCount)); tester.addSearchChain("chain2", new SetHitCountsSearcher(chain2TotalHitCount, chain2DeepHitCount)); Result result = tester.searchAndFill(); - assertThat(result.getTotalHitCount(), is(chain1TotalHitCount + chain2TotalHitCount)); - assertThat(result.getDeepHitCount(), is(chain1DeepHitCount + chain2DeepHitCount)); + assertEquals(result.getTotalHitCount(), chain1TotalHitCount + chain2TotalHitCount); + assertEquals(result.getDeepHitCount(), chain1DeepHitCount + chain2DeepHitCount); } @Test @@ -65,7 +79,7 @@ public class HitCountTestCase { final long chain2TotalHitCount = 11; final long chain2DeepHitCount = 15; - FederationTester tester = new FederationTester(); + FederationTester tester = new FederationTester(executor); tester.addSearchChain("chain1", new SetHitCountsSearcher(chain1TotalHitCount, chain1DeepHitCount)); @@ -110,7 +124,7 @@ public class HitCountTestCase { private void assertAllHitsFrom(String chainName, HitGroup flattenedHits) { for (Hit hit : flattenedHits) { - assertThat(hit.getId().toString(), startsWith(chainName)); + assertTrue(hit.getId().toString().startsWith(chainName)); } } diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/SetHitCountsSearcher.java b/container-search/src/test/java/com/yahoo/search/federation/SetHitCountsSearcher.java index 36b5e7efa37..fe299fbeb95 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/test/SetHitCountsSearcher.java +++ b/container-search/src/test/java/com/yahoo/search/federation/SetHitCountsSearcher.java @@ -1,5 +1,5 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.search.federation.test; +package com.yahoo.search.federation; import com.yahoo.search.Query; import com.yahoo.search.Result; |