aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-11-24 13:58:02 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2022-11-24 13:58:02 +0100
commitd87842d60c12289fc8968e00f0d1f8ae944ce2ae (patch)
treeaac828065eb048461cd9da16c3f05c525403d63b /container-search/src/test/java/com/yahoo/search/dispatch/searchcluster
parent0b367ae429e8369b736bb11de3f647a5b3dc2a18 (diff)
Move test utility code to test directory.
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search/dispatch/searchcluster')
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/MockSearchCluster.java75
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTester.java2
2 files changed, 75 insertions, 2 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/MockSearchCluster.java b/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/MockSearchCluster.java
new file mode 100644
index 00000000000..cbf6273d3ae
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/MockSearchCluster.java
@@ -0,0 +1,75 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.search.dispatch.searchcluster;
+
+import com.yahoo.vespa.config.search.DispatchConfig;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author ollivir
+ */
+public class MockSearchCluster extends SearchCluster {
+
+ public MockSearchCluster(String clusterId, int groups, int nodesPerGroup) {
+ super(clusterId, buildGroupListForTest(groups, nodesPerGroup, 88.0), null, null);
+ }
+
+ @Override
+ public int groupsWithSufficientCoverage() {
+ return groupList().size();
+ }
+
+ @Override
+ public void working(Node node) {
+ node.setWorking(true);
+ }
+
+ @Override
+ public void failed(Node node) {
+ node.setWorking(false);
+ }
+
+ public static DispatchConfig createDispatchConfig() {
+ return createDispatchConfig(100.0);
+ }
+
+ public static DispatchConfig createDispatchConfig(double minSearchCoverage) {
+ return createDispatchConfigBuilder(minSearchCoverage).build();
+ }
+
+ public static DispatchConfig.Builder createDispatchConfigBuilder(double minSearchCoverage) {
+ DispatchConfig.Builder builder = new DispatchConfig.Builder();
+ builder.minActivedocsPercentage(88.0);
+ builder.minSearchCoverage(minSearchCoverage);
+ builder.distributionPolicy(DispatchConfig.DistributionPolicy.Enum.ROUNDROBIN);
+ if (minSearchCoverage < 100.0) {
+ builder.minWaitAfterCoverageFactor(0);
+ builder.maxWaitAfterCoverageFactor(0.5);
+ }
+ return builder;
+ }
+
+ public static SearchGroupsImpl buildGroupListForTest(int numGroups, int nodesPerGroup, double minActivedocsPercentage) {
+ return new SearchGroupsImpl(buildGroupMapForTest(numGroups, nodesPerGroup), minActivedocsPercentage);
+ }
+ private static Map<Integer, Group> buildGroupMapForTest(int numGroups, int nodesPerGroup) {
+ Map<Integer, Group> groups = new HashMap<>();
+ int distributionKey = 0;
+ for (int group = 0; group < numGroups; group++) {
+ List<Node> groupNodes = new ArrayList<>();
+ for (int i = 0; i < nodesPerGroup; i++) {
+ Node node = new Node(distributionKey, "host" + distributionKey, group);
+ node.setWorking(true);
+ groupNodes.add(node);
+ distributionKey++;
+ }
+ Group g = new Group(group, groupNodes);
+ groups.put(group, g);
+ }
+ return Map.copyOf(groups);
+ }
+
+}
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTester.java b/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTester.java
index f5a9256648d..31f250072fe 100644
--- a/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTester.java
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTester.java
@@ -1,8 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.search.dispatch.searchcluster;
-import com.yahoo.search.dispatch.MockSearchCluster;
-
public class SearchClusterTester {
private final SearchCluster cluster;