summaryrefslogtreecommitdiffstats
path: root/container-search/src/test
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-06-27 22:05:20 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2022-06-27 22:05:20 +0200
commit9116588b56c3d28637429338dbef46c58227e7bd (patch)
treea3960466016502180083689659850378ee8880b3 /container-search/src/test
parent24c7eee36b9c251fc754e6ca51c921e97be44aeb (diff)
Avoid building full Slime AST when decoding json just to throw it all away when making it into a string.
Instead try cheap stream parsing with jackson and keep strings for as long as possible.
Diffstat (limited to 'container-search/src/test')
-rw-r--r--container-search/src/test/java/com/yahoo/search/handler/JSONSearchHandlerTestCase.java (renamed from container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java)9
-rw-r--r--container-search/src/test/java/com/yahoo/search/handler/Json2SinglelevelMapTestCase.java32
2 files changed, 36 insertions, 5 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java b/container-search/src/test/java/com/yahoo/search/handler/JSONSearchHandlerTestCase.java
index dd78cfefe28..b92bf68e099 100644
--- a/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/handler/JSONSearchHandlerTestCase.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.handler.test;
+package com.yahoo.search.handler;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -24,6 +24,7 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
+import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@@ -324,8 +325,7 @@ public class JSONSearchHandlerTestCase {
json.set("select", select);
Inspector inspector = SlimeUtils.jsonToSlime(json.toString().getBytes(StandardCharsets.UTF_8)).get();
- Map<String, String> map = new HashMap<>();
- searchHandler.createRequestMapping(inspector, map, "");
+ Map<String, String> map = new Json2SingleLevelMap(new ByteArrayInputStream(inspector.toString().getBytes(StandardCharsets.UTF_8))).parse();
JsonNode processedWhere = jsonMapper.readTree(map.get("select.where"));
JsonTestHelper.assertJsonEquals(where.toString(), processedWhere.toString());
@@ -510,8 +510,7 @@ public class JSONSearchHandlerTestCase {
// Create mapping
Inspector inspector = SlimeUtils.jsonToSlime(json.toString().getBytes(StandardCharsets.UTF_8)).get();
- Map<String, String> map = new HashMap<>();
- searchHandler.createRequestMapping(inspector, map, "");
+ Map<String, String> map = new Json2SingleLevelMap(new ByteArrayInputStream(inspector.toString().getBytes(StandardCharsets.UTF_8))).parse();
// Create GET-request with same query
String url = uri + "&model.sources=source1%2Csource2&select=_all&model.language=en&presentation.timing=false&pos.attribute=default&pos.radius=71234m&model.searchPath=node1&nocachewrite=false&ranking.matchPhase.maxHits=100&presentation.summary=none" +
diff --git a/container-search/src/test/java/com/yahoo/search/handler/Json2SinglelevelMapTestCase.java b/container-search/src/test/java/com/yahoo/search/handler/Json2SinglelevelMapTestCase.java
new file mode 100644
index 00000000000..d8db88323c7
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/search/handler/Json2SinglelevelMapTestCase.java
@@ -0,0 +1,32 @@
+package com.yahoo.search.handler;
+
+import org.junit.Test;
+
+import java.io.ByteArrayInputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class Json2SinglelevelMapTestCase {
+ @Test
+ public void testDecodeString() {
+ Map<String, String> m = new Json2SingleLevelMap(new ByteArrayInputStream("{\"yql\":\"text\", \"f1\":7.3, \"i1\":7, \"t\":true, \"f\":false, \"n\":null, \"a\":[0.786, 0.193]}".getBytes(StandardCharsets.UTF_8))).parse();
+ assertEquals(7, m.size());
+ assertTrue(m.containsKey("yql"));
+ assertTrue(m.containsKey("f1"));
+ assertTrue(m.containsKey("i1"));
+ assertTrue(m.containsKey("t"));
+ assertTrue(m.containsKey("f"));
+ assertTrue(m.containsKey("n"));
+ assertTrue(m.containsKey("a"));
+ assertEquals("text", m.get("yql"));
+ assertEquals("7.3", m.get("f1"));
+ assertEquals("7", m.get("i1"));
+ assertEquals("true", m.get("t"));
+ assertEquals("false", m.get("f"));
+ assertEquals("null", m.get("n"));
+ assertEquals("[0.786, 0.193]", m.get("a"));
+ }
+}