aboutsummaryrefslogtreecommitdiffstats
path: root/document/src/test
diff options
context:
space:
mode:
authorfreva <valerijf@yahoo-inc.com>2017-02-17 11:14:41 +0100
committerfreva <valerijf@yahoo-inc.com>2017-02-17 11:14:41 +0100
commit271fca4531159761f21677d4c6ec0802ed420898 (patch)
tree311ed46b11a83145d6d5769291978a994d3362af /document/src/test
parent6be1754eaef156e766d8d5a99f118eb9a851c1ab (diff)
Change fieldpath format
Diffstat (limited to 'document/src/test')
-rw-r--r--document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java187
-rw-r--r--document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java42
-rw-r--r--document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java2
3 files changed, 74 insertions, 157 deletions
diff --git a/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java b/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java
index f0251f9b494..da64ad380fb 100644
--- a/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java
+++ b/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java
@@ -343,172 +343,89 @@ public class DocumentUpdateJsonSerializerTest {
public void testSimultaneousFieldsAndFieldPathsUpdate() {
deSerializeAndSerializeJsonAndMatch(inputJson(
"{",
- " 'update': 'DOCUMENT_ID',",
- " 'fields': {",
- " 'singlepos_field': {",
- " 'assign': 'N60.222333;E10.12'",
- " }",
- " },",
- " 'fieldpaths': [",
- " {",
+ " 'update': 'DOCUMENT_ID',",
+ " 'fields': {",
+ " 'singlepos_field': {",
+ " 'assign': 'N60.222333;E10.12'",
+ " },",
+ " 'deep_map{my_field}': {",
" 'assign': {",
- " 'int_field': {",
- " 'value': '($value + 3) / 2',",
- " 'createmissingpath': true,",
- " 'removeifzero': false",
- " },",
- " 'where': 'int_field > 3'",
+ " 'my_key': 'my value',",
+ " 'new_key': 'new value'",
" }",
- " }",
- " ]",
+ " }",
+ " }",
"}"
));
}
- @Test(expected=IllegalArgumentException.class)
- public void testDoubleFieldPathOperationFails() {
+ @Test
+ public void testAssignFieldPathValue() {
deSerializeAndSerializeJsonAndMatch(inputJson(
"{",
- " 'update': 'DOCUMENT_ID',",
- " 'fieldpaths': [",
- " {",
+ " 'update': 'DOCUMENT_ID',",
+ " 'fields': {",
+ " 'deep_map{my_field}': {",
" 'assign': {",
- " 'deep_map{my_field}': {",
- " 'value': {",
- " 'key': 'my_key',",
- " 'value': 'my_value'",
- " },",
- " 'createmissingpath': true,",
- " 'removeifzero': true",
- " },",
- " 'map_struct{my_key}': {",
- " 'value': {",
- " 'my_string_field': 'Some string',",
- " 'my_int_field': 5",
- " },",
- " 'createmissingpath': false,",
- " 'removeifzero': false",
- " }",
+ " 'my_key': 'my value',",
+ " 'new_key': 'new value'",
" }",
- " }",
- " ]",
+ " },",
+ " 'map_struct{my_key}': {",
+ " 'assign': {",
+ " 'my_string_field': 'Some string',",
+ " 'my_int_field': 5",
+ " }",
+ " },",
+ " 'map_struct{my_key}.my_int_field': {",
+ " 'assign': '10'",
+ " }",
+ " }",
"}"
));
}
@Test
- public void testAssignFieldPathValue() {
+ public void testRemoveFieldPathValue() {
deSerializeAndSerializeJsonAndMatch(inputJson(
"{",
- " 'update': 'DOCUMENT_ID',",
- " 'fieldpaths': [",
- " {",
- " 'assign': {",
- " 'int_field': {",
- " 'value': '($value + 3) / 2',",
- " 'createmissingpath': true,",
- " 'removeifzero': false",
- " },",
- " 'where': 'int_field > 3'",
- " }",
- " },",
- " {",
- " 'assign': {",
- " 'deep_map{my_field}': {",
- " 'value': {",
- " 'my_key': 'my value',",
- " 'my_new_key': 'new value'",
- " },",
- " 'createmissingpath': true,",
- " 'removeifzero': true",
- " }",
- " }",
- " },",
- " {",
- " 'assign': {",
- " 'map_struct{my_key}': {",
- " 'value': {",
- " 'my_string_field': 'Some string',",
- " 'my_int_field': 5",
- " },",
- " 'createmissingpath': false,",
- " 'removeifzero': false",
- " }",
- " }",
- " },",
- " {",
- " 'assign': {",
- " 'map_struct{my_key}.my_int_field': {",
- " 'value': '$value / 2',",
- " 'createmissingpath': false,",
- " 'removeifzero': false",
- " }",
- " }",
- " },",
- " {",
- " 'assign': {",
- " 'string_field': {",
- " 'value': 'test',",
- " 'createmissingpath': false,",
- " 'removeifzero': true",
- " }",
- " }",
- " }",
- " ]",
+ " 'update': 'DOCUMENT_ID',",
+ " 'fields': {",
+ " 'int_array[5]': {",
+ " 'remove': {}",
+ " }",
+ " }",
"}"
));
}
@Test
- public void testRemoveFieldPathValue() {
+ public void testAddFieldPathValue() {
deSerializeAndSerializeJsonAndMatch(inputJson(
"{",
- " 'update': 'DOCUMENT_ID',",
- " 'fieldpaths': [",
- " {",
- " 'remove': {",
- " 'int_array': {},",
- " 'where': '$value == 5'",
- " }",
- " },",
- " {",
- " 'remove': {",
- " 'string_field': {}",
- " }",
- " }",
- " ]",
+ " 'update': 'DOCUMENT_ID',",
+ " 'fields': {",
+ " 'map_array{my_value}': {",
+ " 'add': ['some', 'fancy', 'strings']",
+ " }",
+ " }",
"}"
));
}
@Test
- public void testAddFieldPathValue() {
+ public void testMultipleOperationsOnSingleFieldPath() {
deSerializeAndSerializeJsonAndMatch(inputJson(
"{",
- " 'update': 'DOCUMENT_ID',",
- " 'fieldpaths': [",
- " {",
- " 'add': {",
- " 'int_array': {",
- " 'items': [123, 456, 789]",
- " }",
- " }",
- " },",
- " {",
- " 'add': {",
- " 'map_array{my_value}': {",
- " 'items': ['some', 'fancy', 'strings']",
- " }",
- " }",
- " },",
- " {",
- " 'add': {",
- " 'string_array': {",
- " 'items': ['test', 'of', 'array', 'add']",
- " }",
- " }",
- " }",
- " ]",
+ " 'update': 'DOCUMENT_ID',",
+ " 'fields': {",
+ " 'map_struct{my_key}': {",
+ " 'assign': {",
+ " 'my_string_field': 'Some string'",
+ " },",
+ " 'remove': {}",
+ " }",
+ " }",
"}"
));
}
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 283a65a71ba..7ad68be6b65 100644
--- a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java
+++ b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java
@@ -217,7 +217,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put);
smokeTestDoc(put.getDocument());
}
@@ -233,7 +233,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put);
smokeTestDoc(put.getDocument());
}
@@ -247,7 +247,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put);
assertEquals("id:unittest:smoke::whee", parseInfo.documentId.toString());
}
@@ -263,7 +263,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("skuggsjaa"));
assertSame(Struct.class, f.getClass());
@@ -283,7 +283,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
+ new VespaJsonDocumentReader().readUpdate(parseInfo.fieldsBuffer, doc);
checkSimpleArrayAdd(doc);
}
@@ -299,7 +299,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
+ new VespaJsonDocumentReader().readUpdate(parseInfo.fieldsBuffer, doc);
Map<String, Integer> weights = new HashMap<>();
FieldUpdate x = doc.getFieldUpdate("actualset");
for (ValueUpdate<?> v : x.getValueUpdates()) {
@@ -329,7 +329,7 @@ public class JsonReaderTestCase {
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
+ new VespaJsonDocumentReader().readUpdate(parseInfo.fieldsBuffer, doc);
Map<String, Tuple2<Number, String>> matches = new HashMap<>();
FieldUpdate x = doc.getFieldUpdate("actualset");
for (ValueUpdate<?> v : x.getValueUpdates()) {
@@ -371,7 +371,7 @@ public class JsonReaderTestCase {
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
+ new VespaJsonDocumentReader().readUpdate(parseInfo.fieldsBuffer, doc);
Map<String, Tuple2<Number, Operator>> matches = new HashMap<>();
FieldUpdate x = doc.getFieldUpdate("actualset");
for (ValueUpdate v : x.getValueUpdates()) {
@@ -405,7 +405,7 @@ public class JsonReaderTestCase {
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
+ new VespaJsonDocumentReader().readUpdate(parseInfo.fieldsBuffer, doc);
Map<Number, String> matches = new HashMap<>();
FieldUpdate x = doc.getFieldUpdate("actualarray");
for (ValueUpdate v : x.getValueUpdates()) {
@@ -442,7 +442,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("actualset"));
assertSame(WeightedSet.class, f.getClass());
@@ -463,7 +463,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("actualarray"));
assertSame(Array.class, f.getClass());
@@ -483,7 +483,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("actualmap"));
assertSame(MapFieldValue.class, f.getClass());
@@ -502,7 +502,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("singlepos"));
assertSame(Struct.class, f.getClass());
@@ -519,7 +519,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("singlepos"));
assertSame(Struct.class, f.getClass());
@@ -540,7 +540,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue(doc.getField("actualraw"));
assertSame(Raw.class, f.getClass());
@@ -558,7 +558,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put);
Document doc = put.getDocument();
FieldValue f = doc.getFieldValue("actualMapStringToArrayOfInt");
assertSame(MapFieldValue.class, f.getClass());
@@ -580,7 +580,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
+ new VespaJsonDocumentReader().readUpdate(parseInfo.fieldsBuffer, doc);
FieldUpdate f = doc.getFieldUpdate("something");
assertEquals(1, f.size());
AssignValueUpdate a = (AssignValueUpdate) f.getValueUpdate(0);
@@ -597,7 +597,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
+ new VespaJsonDocumentReader().readUpdate(parseInfo.fieldsBuffer, doc);
FieldUpdate f = doc.getFieldUpdate("actualMapStringToArrayOfInt");
assertEquals(1, f.size());
AssignValueUpdate assign = (AssignValueUpdate) f.getValueUpdate(0);
@@ -621,7 +621,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentUpdate doc = new DocumentUpdate(docType, parseInfo.documentId);
- VespaJsonDocumentReader.readUpdate(parseInfo.fieldsBuffer, doc);
+ new VespaJsonDocumentReader().readUpdate(parseInfo.fieldsBuffer, doc);
FieldUpdate x = doc.getFieldUpdate("actualset");
assertEquals(1, x.size());
AssignValueUpdate assign = (AssignValueUpdate) x.getValueUpdate(0);
@@ -824,7 +824,7 @@ public class JsonReaderTestCase {
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
exception.expect(NullPointerException.class);
exception.expectMessage("Could not get field \"smething\" in the structure of type \"smoke\".");
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(parseInfo.fieldsBuffer, put);
}
@Test
@@ -851,7 +851,7 @@ public class JsonReaderTestCase {
DocumentParseInfo parseInfo = r.parseDocument().get();
DocumentType docType = r.readDocumentType(parseInfo.documentId);
DocumentPut put = new DocumentPut(new Document(docType, parseInfo.documentId));
- VespaJsonDocumentReader.readPut(parseInfo.fieldsBuffer, put);
+ new VespaJsonDocumentReader().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 5949e079131..2e5989ecbbf 100644
--- a/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java
+++ b/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java
@@ -277,7 +277,7 @@ public class JsonWriterTestCase {
DocumentParseInfo raw = r.parseDocument().get();
DocumentType docType = r.readDocumentType(raw.documentId);
DocumentPut put = new DocumentPut(new Document(docType, raw.documentId));
- VespaJsonDocumentReader.readPut(raw.fieldsBuffer, put);
+ new VespaJsonDocumentReader().readPut(raw.fieldsBuffer, put);
return put.getDocument();
}