summaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-05-23 09:03:03 +0200
committerJon Bratseth <bratseth@oath.com>2018-05-23 09:03:03 +0200
commit5db3df1e1c76922c8f9c66f2036f32bf0808012f (patch)
treed221868f1a673429e12dfa01aeb905622989ea55 /document
parent5db7b3494a981aeb457dc107966018f6e66f5f42 (diff)
JSON feed validation WIP
Diffstat (limited to 'document')
-rw-r--r--document/src/main/java/com/yahoo/document/json/JsonFeedReader.java1
-rw-r--r--document/src/main/java/com/yahoo/document/json/JsonReader.java1
-rw-r--r--document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java48
3 files changed, 50 insertions, 0 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/JsonFeedReader.java b/document/src/main/java/com/yahoo/document/json/JsonFeedReader.java
index ec0d29a53a6..1b5681e7146 100644
--- a/document/src/main/java/com/yahoo/document/json/JsonFeedReader.java
+++ b/document/src/main/java/com/yahoo/document/json/JsonFeedReader.java
@@ -23,6 +23,7 @@ import com.yahoo.vespaxmlparser.VespaXMLFeedReader.Operation;
* @author steinar
*/
public class JsonFeedReader implements FeedReader {
+
private final JsonReader reader;
private InputStream stream;
private static final JsonFactory jsonFactory = new JsonFactory().disable(JsonFactory.Feature.CANONICALIZE_FIELD_NAMES);
diff --git a/document/src/main/java/com/yahoo/document/json/JsonReader.java b/document/src/main/java/com/yahoo/document/json/JsonReader.java
index bedfbdc3da5..6b4605623b3 100644
--- a/document/src/main/java/com/yahoo/document/json/JsonReader.java
+++ b/document/src/main/java/com/yahoo/document/json/JsonReader.java
@@ -79,6 +79,7 @@ public class JsonReader {
return operation;
}
+ /** Returns the next document operation, or null if we have reached the end */
public DocumentOperation next() {
switch (state) {
case AT_START:
diff --git a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java
index 07f0a172caf..443ff27cd20 100644
--- a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java
+++ b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java
@@ -1094,6 +1094,54 @@ public class JsonReaderTestCase {
new JsonReader(types, jsonToInputStream(jsonData), parserFactory).next();
}
+ @Test
+ public void testMissingOperation() {
+ try {
+ String jsonData = inputJson(
+ "[",
+ " {",
+ " 'fields': {",
+ " 'actualarray': {",
+ " 'add': [",
+ " 'person',",
+ " 'another person'",
+ " ]",
+ " }",
+ " }",
+ " }",
+ "]");
+
+ new JsonReader(types, jsonToInputStream(jsonData), parserFactory).next();
+ }
+ catch (IllegalArgumentException e) {
+ assertEquals("", e.getMessage());
+ }
+ }
+
+ @Test
+ public void testMissingFieldsMap() { todo ...
+ try {
+ String jsonData = inputJson(
+ "[",
+ " {",
+ " 'fields': {",
+ " 'actualarray': {",
+ " 'add': [",
+ " 'person',",
+ " 'another person'",
+ " ]",
+ " }",
+ " }",
+ " }",
+ "]");
+
+ new JsonReader(types, jsonToInputStream(jsonData), parserFactory).next();
+ }
+ catch (IllegalArgumentException e) {
+ assertEquals("", e.getMessage());
+ }
+ }
+
static ByteArrayInputStream jsonToInputStream(String json) {
return new ByteArrayInputStream(Utf8.toBytes(json));
}