aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/search
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search')
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/rpc/FillTestCase.java209
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/rpc/MockClient.java40
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/rpc/MockRpcResourcePoolBuilder.java7
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/rpc/RpcSearchInvokerTest.java7
4 files changed, 0 insertions, 263 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/FillTestCase.java b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/FillTestCase.java
deleted file mode 100644
index 288167022d8..00000000000
--- a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/FillTestCase.java
+++ /dev/null
@@ -1,209 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.search.dispatch.rpc;
-
-import com.yahoo.prelude.fastsearch.DocsumDefinition;
-import com.yahoo.prelude.fastsearch.DocsumDefinitionSet;
-import com.yahoo.prelude.fastsearch.DocsumField;
-import com.yahoo.prelude.fastsearch.DocumentDatabase;
-import com.yahoo.prelude.fastsearch.FastHit;
-import com.yahoo.search.Query;
-import com.yahoo.search.Result;
-
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-
-/**
- * Tests using a dispatcher to fill a result
- *
- * @author bratseth
- */
-public class FillTestCase {
-
- private MockClient client = new MockClient();
-
- @Test
- public void testFilling() {
- Map<Integer, Client.NodeConnection> nodes = new HashMap<>();
- nodes.put(0, client.createConnection("host0", 123));
- nodes.put(1, client.createConnection("host1", 123));
- nodes.put(2, client.createConnection("host2", 123));
- RpcResourcePool rpcResourcePool = new RpcResourcePool(nodes);
- RpcInvokerFactory factory = new RpcInvokerFactory(rpcResourcePool, null);
-
- Query query = new Query();
- Result result = new Result(query);
- result.hits().add(createHit(0, 0));
- result.hits().add(createHit(2, 1));
- result.hits().add(createHit(1, 2));
- result.hits().add(createHit(2, 3));
- result.hits().add(createHit(0, 4));
-
- client.setDocsumReponse("host0", 0, "summaryClass1", map("field1", "s.0.0", "field2", 0));
- client.setDocsumReponse("host2", 1, "summaryClass1", map("field1", "s.2.1", "field2", 1));
- client.setDocsumReponse("host1", 2, "summaryClass1", map("field1", "s.1.2", "field2", 2));
- client.setDocsumReponse("host2", 3, "summaryClass1", map("field1", "s.2.3", "field2", 3));
- client.setDocsumReponse("host0", 4, "summaryClass1", map("field1", "s.0.4", "field2", 4));
-
- factory.createFillInvoker(db()).fill(result, "summaryClass1");
-
- assertEquals("s.0.0", result.hits().get("hit:0").getField("field1").toString());
- assertEquals("s.2.1", result.hits().get("hit:1").getField("field1").toString());
- assertEquals("s.1.2", result.hits().get("hit:2").getField("field1").toString());
- assertEquals("s.2.3", result.hits().get("hit:3").getField("field1").toString());
- assertEquals("s.0.4", result.hits().get("hit:4").getField("field1").toString());
- assertEquals(0L, result.hits().get("hit:0").getField("field2"));
- assertEquals(1L, result.hits().get("hit:1").getField("field2"));
- assertEquals(2L, result.hits().get("hit:2").getField("field2"));
- assertEquals(3L, result.hits().get("hit:3").getField("field2"));
- assertEquals(4L, result.hits().get("hit:4").getField("field2"));
- }
-
- @Test
- public void testEmptyHits() {
- Map<Integer, Client.NodeConnection> nodes = new HashMap<>();
- nodes.put(0, client.createConnection("host0", 123));
- nodes.put(1, client.createConnection("host1", 123));
- nodes.put(2, client.createConnection("host2", 123));
- RpcResourcePool rpcResourcePool = new RpcResourcePool(nodes);
- RpcInvokerFactory factory = new RpcInvokerFactory(rpcResourcePool, null);
-
- Query query = new Query();
- Result result = new Result(query);
- result.hits().add(createHit(0, 0));
- result.hits().add(createHit(2, 1));
- result.hits().add(createHit(1, 2));
- result.hits().add(createHit(2, 3));
- result.hits().add(createHit(0, 4));
-
- client.setDocsumReponse("host0", 0, "summaryClass1", map("field1", "s.0.0", "field2", 0));
- client.setDocsumReponse("host2", 1, "summaryClass1", map("field1", "s.2.1", "field2", 1));
- client.setDocsumReponse("host1", 2, "summaryClass1", new HashMap<>());
- client.setDocsumReponse("host2", 3, "summaryClass1", map("field1", "s.2.3", "field2", 3));
- client.setDocsumReponse("host0", 4, "summaryClass1", new HashMap<>());
-
- factory.createFillInvoker(db()).fill(result, "summaryClass1");
-
- assertEquals("s.0.0", result.hits().get("hit:0").getField("field1").toString());
- assertEquals("s.2.1", result.hits().get("hit:1").getField("field1").toString());
- assertNull(result.hits().get("hit:2").getField("field1"));
- assertEquals("s.2.3", result.hits().get("hit:3").getField("field1").toString());
- assertNull(result.hits().get("hit:4").getField("field1"));
-
- assertEquals(0L, result.hits().get("hit:0").getField("field2"));
- assertEquals(1L, result.hits().get("hit:1").getField("field2"));
- assertNull(result.hits().get("hit:2").getField("field2"));
- assertEquals(3L, result.hits().get("hit:3").getField("field2"));
- assertNull(result.hits().get("hit:4").getField("field2"));
-
- assertNull(result.hits().getError());
- }
-
- @Test
- public void testMissingHits() {
- Map<Integer, Client.NodeConnection> nodes = new HashMap<>();
- nodes.put(0, client.createConnection("host0", 123));
- nodes.put(1, client.createConnection("host1", 123));
- nodes.put(2, client.createConnection("host2", 123));
- RpcResourcePool rpcResourcePool = new RpcResourcePool(nodes);
- RpcInvokerFactory factory = new RpcInvokerFactory(rpcResourcePool, null);
-
- Query query = new Query();
- Result result = new Result(query);
- result.hits().add(createHit(0, 0));
- result.hits().add(createHit(2, 1));
- result.hits().add(createHit(1, 2));
- result.hits().add(createHit(2, 3));
- result.hits().add(createHit(0, 4));
-
- client.setDocsumReponse("host0", 0, "summaryClass1", map("field1", "s.0.0", "field2", 0));
- client.setDocsumReponse("host2", 1, "summaryClass1", map("field1", "s.2.1", "field2", 1));
- client.setDocsumReponse("host1", 2, "summaryClass1", null);
- client.setDocsumReponse("host2", 3, "summaryClass1", map("field1", "s.2.3", "field2", 3));
- client.setDocsumReponse("host0", 4, "summaryClass1", null);
-
- factory.createFillInvoker(db()).fill(result, "summaryClass1");
-
- assertEquals("s.0.0", result.hits().get("hit:0").getField("field1").toString());
- assertEquals("s.2.1", result.hits().get("hit:1").getField("field1").toString());
- assertNull(result.hits().get("hit:2").getField("field1"));
- assertEquals("s.2.3", result.hits().get("hit:3").getField("field1").toString());
- assertNull(result.hits().get("hit:4").getField("field1"));
-
- assertEquals(0L, result.hits().get("hit:0").getField("field2"));
- assertEquals(1L, result.hits().get("hit:1").getField("field2"));
- assertNull(result.hits().get("hit:2").getField("field2"));
- assertEquals(3L, result.hits().get("hit:3").getField("field2"));
- assertNull(result.hits().get("hit:4").getField("field2"));
-
- assertEquals("Missing hit summary data for summary summaryClass1 for 2 hits", result.hits().getError().getDetailedMessage());
- }
-
- @Test
- public void testErrorHandling() {
- client.setMalfunctioning(true);
-
- Map<Integer, Client.NodeConnection> nodes = new HashMap<>();
- nodes.put(0, client.createConnection("host0", 123));
- RpcResourcePool rpcResourcePool = new RpcResourcePool(nodes);
- RpcInvokerFactory factory = new RpcInvokerFactory(rpcResourcePool, null);
-
- Query query = new Query();
- Result result = new Result(query);
- result.hits().add(createHit(0, 0));
-
- factory.createFillInvoker(db()).fill(result, "summaryClass1");
-
- assertEquals("Malfunctioning", result.hits().getError().getDetailedMessage());
- }
-
- @Test
- public void testSendingFill2UnknownNode() {
- client.setMalfunctioning(true);
-
- Map<Integer, Client.NodeConnection> nodes = new HashMap<>();
- nodes.put(0, client.createConnection("host0", 123));
- RpcResourcePool rpcResourcePool = new RpcResourcePool(nodes);
- RpcInvokerFactory factory = new RpcInvokerFactory(rpcResourcePool, null);
-
- Query query = new Query();
- Result result = new Result(query);
- result.hits().add(createHit(0, 0));
- result.hits().add(createHit(1, 1));
-
- factory.createFillInvoker(db()).fill(result, "summaryClass1");
-
- assertEquals("Could not fill hits from unknown node 1", result.hits().getError().getDetailedMessage());
- }
-
- private DocumentDatabase db() {
- List<DocsumField> fields = new ArrayList<>();
- fields.add(DocsumField.create("field1", "string"));
- fields.add(DocsumField.create("field2", "int64"));
- DocsumDefinitionSet docsums = new DocsumDefinitionSet(Collections.singleton(new DocsumDefinition("summaryClass1", fields)));
- return new DocumentDatabase("default", docsums, Collections.emptySet());
- }
-
- private FastHit createHit(int sourceNodeId, int hitId) {
- FastHit hit = new FastHit("hit:" + hitId, 1.0);
- hit.setPartId(sourceNodeId);
- hit.setDistributionKey(sourceNodeId);
- hit.setGlobalId(client.globalIdFrom(hitId).getRawId());
- return hit;
- }
-
- private Map<String, Object> map(String stringKey, String stringValue, String intKey, int intValue) {
- Map<String, Object> map = new HashMap<>();
- map.put(stringKey, stringValue);
- map.put(intKey, intValue);
- return map;
- }
-
-}
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/MockClient.java b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/MockClient.java
index 8ebdfcc1a12..61971e975e5 100644
--- a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/MockClient.java
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/MockClient.java
@@ -55,46 +55,6 @@ public class MockClient implements Client {
}
@Override
- public void getDocsums(List<FastHit> hitsContext, CompressionType compression, int uncompressedSize, byte[] compressedSlime,
- RpcFillInvoker.GetDocsumsResponseReceiver responseReceiver, double timeoutSeconds) {
- if (malfunctioning) {
- responseReceiver.receive(ResponseOrError.fromError("Malfunctioning"));
- return;
- }
-
- Inspector request = BinaryFormat.decode(compressor.decompress(compressedSlime, compression, uncompressedSize)).get();
- String docsumClass = request.field("class").asString();
- List<Map<String, Object>> docsumsToReturn = new ArrayList<>();
- request.field("gids").traverse((ArrayTraverser) (index, gid) -> {
- GlobalId docId = new GlobalId(gid.asData());
- docsumsToReturn.add(docsums.get(new DocsumKey(toString(), docId, docsumClass)));
- });
- Slime responseSlime = new Slime();
- Cursor root = responseSlime.setObject();
- Cursor docsums = root.setArray("docsums");
- for (Map<String, Object> docsumFields : docsumsToReturn) {
- if (docsumFields == null) continue;
-
- Cursor docsumItem = docsums.addObject();
- Cursor docsum = docsumItem.setObject("docsum");
- for (Map.Entry<String, Object> field : docsumFields.entrySet()) {
- if (field.getValue() instanceof Integer)
- docsum.setLong(field.getKey(), (Integer) field.getValue());
- else if (field.getValue() instanceof String)
- docsum.setString(field.getKey(), (String) field.getValue());
- else
- throw new RuntimeException();
- }
- }
- byte[] slimeBytes = BinaryFormat.encode(responseSlime);
- CompressionType responseCompressionType = compression == CompressionType.INCOMPRESSIBLE ? CompressionType.NONE : compression;
- Compressor.Compression compressionResult = compressor.compress(responseCompressionType, slimeBytes);
- GetDocsumsResponse response = new GetDocsumsResponse(compressionResult.type().getCode(), slimeBytes.length,
- compressionResult.data(), hitsContext);
- responseReceiver.receive(ResponseOrError.fromResponse(response));
- }
-
- @Override
public void request(String rpcMethod, CompressionType compression, int uncompressedLength, byte[] compressedPayload,
ResponseReceiver responseReceiver, double timeoutSeconds) {
if (malfunctioning) {
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/MockRpcResourcePoolBuilder.java b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/MockRpcResourcePoolBuilder.java
index dbef9d819e8..23d6ae6bf2b 100644
--- a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/MockRpcResourcePoolBuilder.java
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/MockRpcResourcePoolBuilder.java
@@ -5,7 +5,6 @@ import com.yahoo.compress.CompressionType;
import com.yahoo.prelude.fastsearch.FastHit;
import com.yahoo.search.dispatch.rpc.Client.NodeConnection;
import com.yahoo.search.dispatch.rpc.Client.ResponseReceiver;
-import com.yahoo.search.dispatch.rpc.RpcFillInvoker.GetDocsumsResponseReceiver;
import java.util.HashMap;
import java.util.List;
@@ -35,12 +34,6 @@ public class MockRpcResourcePoolBuilder {
}
@Override
- public void getDocsums(List<FastHit> hits, CompressionType compression, int uncompressedLength, byte[] compressedSlime,
- GetDocsumsResponseReceiver responseReceiver, double timeoutSeconds) {
- responseReceiver.receive(Client.ResponseOrError.fromError("getDocsums(..) attempted for node " + key));
- }
-
- @Override
public void request(String rpcMethod, CompressionType compression, int uncompressedLength, byte[] compressedPayload,
ResponseReceiver responseReceiver, double timeoutSeconds) {
responseReceiver.receive(Client.ResponseOrError.fromError("request('"+rpcMethod+"', ..) attempted for node " + key));
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/RpcSearchInvokerTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/RpcSearchInvokerTest.java
index 27fc3f85136..45ad361a214 100644
--- a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/RpcSearchInvokerTest.java
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/RpcSearchInvokerTest.java
@@ -9,7 +9,6 @@ import com.yahoo.prelude.fastsearch.FastHit;
import com.yahoo.prelude.fastsearch.VespaBackEndSearcher;
import com.yahoo.search.Query;
import com.yahoo.search.Result;
-import com.yahoo.search.dispatch.rpc.RpcFillInvoker.GetDocsumsResponseReceiver;
import com.yahoo.search.dispatch.searchcluster.Node;
import com.yahoo.search.searchchain.Execution;
import org.junit.Test;
@@ -85,12 +84,6 @@ public class RpcSearchInvokerTest {
public NodeConnection createConnection(String hostname, int port) {
return new NodeConnection() {
@Override
- public void getDocsums(List<FastHit> hits, CompressionType compression, int uncompressedLength, byte[] compressedSlime,
- GetDocsumsResponseReceiver responseReceiver, double timeoutSeconds) {
- fail("Unexpected call");
- }
-
- @Override
public void request(String rpcMethod, CompressionType compression, int uncompressedLength, byte[] compressedPayload,
ResponseReceiver responseReceiver, double timeoutSeconds) {
compressionTypeHolder.set(compression);