[NO ISSUE] Introduce TestExecutor.extractResult
- user model changes: no
- storage format changes: no
- interface changes: no
Change-Id: I8dbd239fa4a3997006c7fa2b27579956ac9660a2
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2433
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
index 113fc67..9f4f248 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
@@ -1779,19 +1779,7 @@
InputStream resultStream = executeQueryService(
"select dv.DataverseName from Metadata.`Dataverse` as dv order by dv.DataverseName;",
getEndpoint(Servlets.QUERY_SERVICE), OutputFormat.CLEAN_JSON);
- String out = IOUtils.toString(resultStream, StandardCharsets.UTF_8);
- ObjectMapper om = new ObjectMapper();
- om.setConfig(om.getDeserializationConfig().with(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT));
- JsonNode result;
- try {
- result = om.readValue(out, ObjectNode.class).get("results");
- } catch (JsonMappingException e) {
- LOGGER.warn("error mapping response '{}' to json", out, e);
- result = null;
- }
- if (result == null) {
- return;
- }
+ JsonNode result = extractResult(IOUtils.toString(resultStream, StandardCharsets.UTF_8));
for (int i = 0; i < result.size(); i++) {
JsonNode json = result.get(i);
if (json != null) {
@@ -1821,6 +1809,21 @@
}
}
+ private JsonNode extractResult(String jsonString) throws IOException {
+ ObjectMapper om = new ObjectMapper();
+ om.setConfig(om.getDeserializationConfig().with(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT));
+ try {
+ final JsonNode result = om.readValue(jsonString, ObjectNode.class).get("results");
+ if (result == null) {
+ throw new IllegalArgumentException("No field 'results' in " + jsonString);
+ }
+ return result;
+ } catch (JsonMappingException e) {
+ LOGGER.warn("error mapping response '{}' to json", jsonString, e);
+ return om.createArrayNode();
+ }
+ }
+
//This method is here to enable extension
protected String getPath(String servlet) {
return servlet;