summaryrefslogtreecommitdiffstats
path: root/vespa-hadoop/src/test/java/com/yahoo/vespa/hadoop/util/MockQueryHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespa-hadoop/src/test/java/com/yahoo/vespa/hadoop/util/MockQueryHandler.java')
-rw-r--r--vespa-hadoop/src/test/java/com/yahoo/vespa/hadoop/util/MockQueryHandler.java219
1 files changed, 0 insertions, 219 deletions
diff --git a/vespa-hadoop/src/test/java/com/yahoo/vespa/hadoop/util/MockQueryHandler.java b/vespa-hadoop/src/test/java/com/yahoo/vespa/hadoop/util/MockQueryHandler.java
deleted file mode 100644
index 64c160ea14c..00000000000
--- a/vespa-hadoop/src/test/java/com/yahoo/vespa/hadoop/util/MockQueryHandler.java
+++ /dev/null
@@ -1,219 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.hadoop.util;
-
-import com.fasterxml.jackson.core.JsonEncoding;
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.sun.net.httpserver.HttpExchange;
-import com.sun.net.httpserver.HttpHandler;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.net.URI;
-import java.net.URLDecoder;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class MockQueryHandler implements HttpHandler {
-
- private final Map<String, List<MockQueryHit>> hitMap;
- private final String childNode;
-
- public MockQueryHandler(String childNode) {
- this.hitMap = new HashMap<>();
- this.childNode = childNode;
- }
-
- public void handle(HttpExchange t) throws IOException {
- URI uri = t.getRequestURI();
- String query = uri.getQuery();
- String response = null;
-
- // Parse query - extract "query" element
- if (query != null) {
- String params[] = query.split("[&]");
- for (String param : params) {
- int i = param.indexOf('=');
- String name = param.substring(0, i);
- String value = URLDecoder.decode(param.substring(i + 1), "UTF-8");
-
- if ("query".equalsIgnoreCase(name)) {
- response = getResponse(URLDecoder.decode(param.substring(i + 1), "UTF-8"));
- }
- }
- }
-
- t.sendResponseHeaders(200, response == null ? 0 : response.length());
- OutputStream os = t.getResponseBody();
- os.write(response == null ? "".getBytes() : response.getBytes());
- os.close();
-
- }
-
- public MockQueryHit getHit(String query, Integer rank) {
- if (!hitMap.containsKey(query)) {
- return null;
- }
- if (rank >= hitMap.get(query).size()) {
- return null;
- }
- return hitMap.get(query).get(rank);
- }
-
- public MockQueryHit newHit() {
- return new MockQueryHit(this);
- }
-
- public void addHit(String query, MockQueryHit hit) {
- if (!hitMap.containsKey(query)) {
- hitMap.put(query, new ArrayList<>());
- }
- hitMap.get(query).add(hit);
- }
-
- private String getResponse(String query) throws IOException {
- List<MockQueryHit> hits = hitMap.get(query);
- if (hits == null) {
- return null;
- }
-
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- JsonGenerator g = new JsonFactory().createGenerator(out, JsonEncoding.UTF8);
-
- writeResultStart(g, hits.size());
- for (MockQueryHit hit : hits) {
- writeHit(g, hit);
- }
- writeResultsEnd(g);
- g.close();
-
- return out.toString();
- }
-
- private void writeHit(JsonGenerator g, MockQueryHit hit) throws IOException {
- g.writeStartObject();
-
- g.writeFieldName("id");
- g.writeString(hit.id);
-
- g.writeFieldName("relevance");
- g.writeNumber(hit.relevance);
-
- g.writeFieldName("fields");
- g.writeStartObject();
-
- g.writeFieldName("sddocname");
- g.writeString(hit.fieldSddocname);
-
- g.writeFieldName("date");
- g.writeString(hit.fieldDate);
-
- g.writeFieldName("content");
- g.writeString(hit.fieldContent);
-
- g.writeFieldName("id");
- g.writeString(hit.fieldId);
-
- g.writeEndObject();
- g.writeEndObject();
- }
-
- private void writeResultStart(JsonGenerator g, int count) throws IOException {
- g.writeStartObject();
- g.writeFieldName("root");
-
- g.writeStartObject();
-
- g.writeFieldName("id");
- g.writeString("toplevel");
-
- g.writeFieldName("relevance");
- g.writeNumber(1);
-
- g.writeFieldName("fields");
- g.writeStartObject();
- g.writeFieldName("totalCount");
- g.writeNumber(count);
- g.writeEndObject();
-
- g.writeFieldName("coverage");
- g.writeStartObject();
- g.writeFieldName("coverage");
- g.writeNumber(100);
- // ... more stuff here usually
- g.writeEndObject();
-
- g.writeFieldName("children");
- g.writeStartArray();
-
- if (!childNode.isEmpty()) {
- g.writeStartObject();
- g.writeFieldName(childNode);
- g.writeStartArray();
- }
- }
-
- private void writeResultsEnd(JsonGenerator g) throws IOException {
- if (!childNode.isEmpty()) {
- g.writeEndArray();
- g.writeEndObject();
- }
- g.writeEndArray();
- g.writeEndObject();
- g.writeEndObject();
- }
-
- public static class MockQueryHit {
-
- private final MockQueryHandler handler;
-
- public String id;
- public Double relevance;
- public String fieldSddocname;
- public String fieldDate;
- public String fieldContent;
- public String fieldId;
-
- private MockQueryHit(MockQueryHandler handler) {
- this.handler = handler;
- }
-
- public void add(String query) {
- handler.addHit(query, this);
- }
-
- public MockQueryHit setId(String id) {
- this.id = id;
- return this;
- }
-
- public MockQueryHit setRelevance(Double relevance) {
- this.relevance = relevance;
- return this;
- }
-
- public MockQueryHit setFieldSddocname(String fieldSddocname) {
- this.fieldSddocname = fieldSddocname;
- return this;
- }
-
- public MockQueryHit setFieldDate(String fieldDate) {
- this.fieldDate = fieldDate;
- return this;
- }
-
- public MockQueryHit setFieldContent(String fieldContent) {
- this.fieldContent = fieldContent;
- return this;
- }
-
- public MockQueryHit setFieldId(String fieldId) {
- this.fieldId = fieldId;
- return this;
- }
- }
-
-}