diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-07-04 22:47:21 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-07-04 22:47:21 +0200 |
commit | 40744a1a30cccff9c4b4b9f67ae6891956509ee3 (patch) | |
tree | 2b904bcf1826f6748abbbb6d5d392a5a2e729570 /document/src/test/java | |
parent | bdca3da122423f78c7dace3ab10c27c575b9fa65 (diff) |
Add option to ignore undefined fields
Diffstat (limited to 'document/src/test/java')
-rw-r--r-- | document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java | 39 | ||||
-rw-r--r-- | document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java | 2 |
2 files changed, 28 insertions, 13 deletions
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 675ad502630..441f1fd28ea 100644 --- a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java +++ b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java @@ -258,7 +258,7 @@ public class JsonReaderTestCase { DocumentParseInfo parseInfo = r.parseDocument().get(); DocumentType docType = r.readDocumentType(parseInfo.documentId); DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId)); - new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put); + new VespaJsonDocumentReader(false).readPut(parseInfo.fieldsBuffer, put); smokeTestDoc(put.getDocument()); } @@ -277,7 +277,7 @@ public class JsonReaderTestCase { DocumentParseInfo parseInfo = r.parseDocument().get(); DocumentType docType = r.readDocumentType(parseInfo.documentId); DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId)); - new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put); + new VespaJsonDocumentReader(false).readPut(parseInfo.fieldsBuffer, put); smokeTestDoc(put.getDocument()); } @@ -288,7 +288,7 @@ public class JsonReaderTestCase { DocumentParseInfo parseInfo = r.parseDocument().get(); DocumentType docType = r.readDocumentType(parseInfo.documentId); DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId)); - new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put); + new VespaJsonDocumentReader(false).readPut(parseInfo.fieldsBuffer, put); assertEquals("id:unittest:smoke::whee", parseInfo.documentId.toString()); } @@ -302,7 +302,7 @@ public class JsonReaderTestCase { DocumentParseInfo parseInfo = r.parseDocument().get(); DocumentType docType = r.readDocumentType(parseInfo.documentId); DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId)); - new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put); + new VespaJsonDocumentReader(false).readPut(parseInfo.fieldsBuffer, put); Document doc = put.getDocument(); FieldValue f = doc.getFieldValue(doc.getField("skuggsjaa")); assertSame(Struct.class, f.getClass()); @@ -316,7 +316,7 @@ public class JsonReaderTestCase { DocumentParseInfo parseInfo = r.parseDocument().get(); DocumentType docType = r.readDocumentType(parseInfo.documentId); DocumentUpdate update = new DocumentUpdate(docType, parseInfo.documentId); - new VespaJsonDocumentReader().readUpdate(parseInfo.fieldsBuffer, update); + new VespaJsonDocumentReader(false).readUpdate(parseInfo.fieldsBuffer, update); return update; } @@ -505,7 +505,7 @@ public class JsonReaderTestCase { DocumentParseInfo parseInfo = r.parseDocument().get(); DocumentType docType = r.readDocumentType(parseInfo.documentId); DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId)); - new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put); + new VespaJsonDocumentReader(false).readPut(parseInfo.fieldsBuffer, put); return put.getDocument(); } @@ -684,7 +684,7 @@ public class JsonReaderTestCase { DocumentParseInfo parseInfo = r.parseDocument().get(); DocumentType docType = r.readDocumentType(parseInfo.documentId); DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId)); - new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put); + new VespaJsonDocumentReader(false).readPut(parseInfo.fieldsBuffer, put); Document doc = put.getDocument(); FieldValue f = doc.getFieldValue(doc.getField("actualraw")); assertSame(Raw.class, f.getClass()); @@ -701,7 +701,7 @@ public class JsonReaderTestCase { DocumentParseInfo parseInfo = r.parseDocument().get(); DocumentType docType = r.readDocumentType(parseInfo.documentId); DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId)); - new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put); + new VespaJsonDocumentReader(false).readPut(parseInfo.fieldsBuffer, put); Document doc = put.getDocument(); FieldValue f = doc.getFieldValue("actualMapStringToArrayOfInt"); assertSame(MapFieldValue.class, f.getClass()); @@ -722,7 +722,7 @@ public class JsonReaderTestCase { DocumentParseInfo parseInfo = r.parseDocument().get(); DocumentType docType = r.readDocumentType(parseInfo.documentId); DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId)); - new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put); + new VespaJsonDocumentReader(false).readPut(parseInfo.fieldsBuffer, put); Document doc = put.getDocument(); FieldValue f = doc.getFieldValue("actualMapStringToArrayOfInt"); assertSame(MapFieldValue.class, f.getClass()); @@ -987,7 +987,7 @@ public class JsonReaderTestCase { } @Test - public void misspelledFieldTest() throws IOException{ + public void nonExistingFieldCausesException() throws IOException{ JsonReader r = createReader(inputJson( "{ 'put': 'id:unittest:smoke::whee',", " 'fields': {", @@ -996,8 +996,9 @@ public class JsonReaderTestCase { DocumentParseInfo parseInfo = r.parseDocument().get(); DocumentType docType = r.readDocumentType(parseInfo.documentId); DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId)); + try { - new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put); + new VespaJsonDocumentReader(false).readPut(parseInfo.fieldsBuffer, put); fail(); } catch (IllegalArgumentException e) { assertTrue(e.getMessage().startsWith("No field 'smething' in the structure of type 'smoke'")); @@ -1005,6 +1006,20 @@ public class JsonReaderTestCase { } @Test + public void nonExistingFieldCanBeIgnored() throws IOException{ + JsonReader r = createReader(inputJson( + "{ 'put': 'id:unittest:smoke::whee',", + " 'fields': {", + " 'smething': 'smoketest',", + " 'nalle': 'bamse' }}")); + DocumentParseInfo parseInfo = r.parseDocument().get(); + DocumentType docType = r.readDocumentType(parseInfo.documentId); + DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId)); + + new VespaJsonDocumentReader(true).readPut(parseInfo.fieldsBuffer, put); + } + + @Test public void feedWithBasicErrorTest() { JsonReader r = createReader(inputJson("[", " { 'put': 'id:test:smoke::0', 'fields': { 'something': 'foo' } },", @@ -1029,7 +1044,7 @@ public class JsonReaderTestCase { DocumentParseInfo parseInfo = r.parseDocument().get(); DocumentType docType = r.readDocumentType(parseInfo.documentId); DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId)); - new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put); + new VespaJsonDocumentReader(false).readPut(parseInfo.fieldsBuffer, put); smokeTestDoc(put.getDocument()); } diff --git a/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java b/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java index 92f28d8f219..e7368a691ab 100644 --- a/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java +++ b/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java @@ -349,7 +349,7 @@ public class JsonWriterTestCase { DocumentParseInfo raw = r.parseDocument().get(); DocumentType docType = r.readDocumentType(raw.documentId); DocumentPut put = new DocumentPut(new Document(docType, raw.documentId)); - new VespaJsonDocumentReader().readPut(raw.fieldsBuffer, put); + new VespaJsonDocumentReader(false).readPut(raw.fieldsBuffer, put); return put.getDocument(); } |