diff options
Diffstat (limited to 'document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java')
-rw-r--r-- | document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java | 51 |
1 files changed, 51 insertions, 0 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 080528fea77..12ccba62005 100644 --- a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java +++ b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java @@ -20,6 +20,7 @@ import com.yahoo.document.MapDataType; import com.yahoo.document.PositionDataType; import com.yahoo.document.StructDataType; import com.yahoo.document.TensorDataType; +import com.yahoo.document.TestAndSetCondition; import com.yahoo.document.WeightedSetDataType; import com.yahoo.document.datatypes.Array; import com.yahoo.document.datatypes.BoolFieldValue; @@ -221,6 +222,56 @@ public class JsonReaderTestCase { } @Test + public void readSingleDocumentsPutStreaming() throws IOException { + String json = """ + { + "remove": "id:unittest:smoke::ignored", + "ignored-extra-array": [{ "foo": null }, { }], + "ignored-extra-object": { "foo": [null, { }], "bar": { } }, + "fields": { + "something": "smoketest", + "flag": true, + "nalle": "bamse" + }, + "id": "id:unittest:smoke::ignored", + "create": false, + "condition": "true" + } + """; + ParsedDocumentOperation operation = createReader(json).readSingleDocumentStreaming(DocumentOperationType.PUT,"id:unittest:smoke::doc1"); + DocumentPut put = ((DocumentPut) operation.operation()); + assertFalse(put.getCreateIfNonExistent()); + assertEquals("true", put.getCondition().getSelection()); + smokeTestDoc(put.getDocument()); + } + + @Test + public void readSingleDocumentsUpdateStreaming() throws IOException { + String json = """ + { + "remove": "id:unittest:smoke::ignored", + "ignored-extra-array": [{ "foo": null }, { }], + "ignored-extra-object": { "foo": [null, { }], "bar": { } }, + "fields": { + "something": { "assign": "smoketest" }, + "flag": { "assign": true }, + "nalle": { "assign": "bamse" } + }, + "id": "id:unittest:smoke::ignored", + "create": true, + "condition": "false" + } + """; + ParsedDocumentOperation operation = createReader(json).readSingleDocumentStreaming(DocumentOperationType.UPDATE,"id:unittest:smoke::doc1"); + Document doc = new Document(types.getDocumentType("smoke"), new DocumentId("id:unittest:smoke::doc1")); + DocumentUpdate update = ((DocumentUpdate) operation.operation()); + update.applyTo(doc); + smokeTestDoc(doc); + assertTrue(update.getCreateIfNonExistent()); + assertEquals("false", update.getCondition().getSelection()); + } + + @Test public void readSingleDocumentPut() throws IOException { Document doc = docFromJson(""" { |