use of com.yahoo.document.update.ValueUpdate in project vespa by vespa-engine.
the class DocumentUpdateTestCase method testUpdatesToTheSameFieldAreCombining.
public void testUpdatesToTheSameFieldAreCombining() {
DocumentType docType = new DocumentType("my_type");
Field field = new Field("my_int", DataType.INT);
docType.addField(field);
DocumentUpdate update = new DocumentUpdate(docType, new DocumentId("doc:foo:"));
update.addFieldUpdate(FieldUpdate.createAssign(field, new IntegerFieldValue(1)));
update.addFieldUpdate(FieldUpdate.createAssign(field, new IntegerFieldValue(2)));
assertEquals(1, update.getFieldUpdates().size());
FieldUpdate fieldUpdate = update.getFieldUpdate(0);
assertNotNull(fieldUpdate);
assertEquals(field, fieldUpdate.getField());
assertEquals(2, fieldUpdate.getValueUpdates().size());
ValueUpdate valueUpdate = fieldUpdate.getValueUpdate(0);
assertNotNull(valueUpdate);
assertTrue(valueUpdate instanceof AssignValueUpdate);
assertEquals(new IntegerFieldValue(1), valueUpdate.getValue());
assertNotNull(valueUpdate = fieldUpdate.getValueUpdate(1));
assertTrue(valueUpdate instanceof AssignValueUpdate);
assertEquals(new IntegerFieldValue(2), valueUpdate.getValue());
}
use of com.yahoo.document.update.ValueUpdate in project vespa by vespa-engine.
the class IndexingProcessorTestCase method requireThatIndexerProcessesUpdates.
@Test
public void requireThatIndexerProcessesUpdates() {
DocumentType inputType = indexer.getDocumentTypeManager().getDocumentType("music");
DocumentUpdate input = new DocumentUpdate(inputType, "doc:scheme:");
input.addFieldUpdate(FieldUpdate.createAssign(inputType.getField("isbn"), new StringFieldValue("isbnmarker")));
input.addFieldUpdate(FieldUpdate.createAssign(inputType.getField("artist"), new StringFieldValue("69")));
DocumentOperation output = process(input);
assertTrue(output instanceof DocumentUpdate);
DocumentUpdate docUpdate = (DocumentUpdate) output;
assertEquals(3, docUpdate.getFieldUpdates().size());
{
FieldUpdate fieldUpdate = docUpdate.getFieldUpdate(0);
assertEquals("song", fieldUpdate.getField().getName());
assertEquals(1, fieldUpdate.getValueUpdates().size());
ValueUpdate<?> valueUpdate = fieldUpdate.getValueUpdate(0);
assertTrue(valueUpdate instanceof AssignValueUpdate);
assertEquals(new StringFieldValue("isbnmarker"), valueUpdate.getValue());
fieldUpdate = docUpdate.getFieldUpdate(1);
assertEquals("title", fieldUpdate.getField().getName());
assertEquals(1, fieldUpdate.getValueUpdates().size());
valueUpdate = fieldUpdate.getValueUpdate(0);
assertTrue(valueUpdate instanceof AssignValueUpdate);
assertEquals(new StringFieldValue("69"), valueUpdate.getValue());
}
{
FieldUpdate fieldUpdate = docUpdate.getFieldUpdate(1);
ValueUpdate<?> valueUpdate = fieldUpdate.getValueUpdate(0);
assertEquals("title", fieldUpdate.getField().getName());
assertTrue(valueUpdate instanceof AssignValueUpdate);
assertEquals(new StringFieldValue("69"), valueUpdate.getValue());
}
{
FieldUpdate fieldUpdate = docUpdate.getFieldUpdate(2);
ValueUpdate<?> valueUpdate = fieldUpdate.getValueUpdate(0);
assertEquals("isbn", fieldUpdate.getField().getName());
assertTrue(valueUpdate instanceof AssignValueUpdate);
assertEquals(new StringFieldValue("isbnmarker"), valueUpdate.getValue());
}
}
use of com.yahoo.document.update.ValueUpdate in project vespa by vespa-engine.
the class JsonReaderTestCase method testStructUpdate.
@Test
public final void testStructUpdate() throws IOException {
DocumentUpdate put = parseUpdate("{\"update\": \"id:unittest:mirrors:g=test:whee\"," + "\"create\": true," + " \"fields\": { " + "\"skuggsjaa\": {" + "\"assign\": { \"sandra\": \"person\"," + " \"cloud\": \"another person\"}}}}");
assertEquals(1, put.getFieldUpdates().size());
FieldUpdate fu = put.getFieldUpdate(0);
assertEquals(1, fu.getValueUpdates().size());
ValueUpdate vu = fu.getValueUpdate(0);
assertTrue(vu instanceof AssignValueUpdate);
AssignValueUpdate avu = (AssignValueUpdate) vu;
assertTrue(avu.getValue() instanceof Struct);
Struct s = (Struct) avu.getValue();
assertEquals(2, s.getFieldCount());
assertEquals(new StringFieldValue("person"), s.getFieldValue(s.getField("sandra")));
GrowableByteBuffer buf = new GrowableByteBuffer();
DocumentSerializer serializer = DocumentSerializerFactory.createHead(buf);
put.serialize(serializer);
assertEquals(107, buf.position());
}
use of com.yahoo.document.update.ValueUpdate in project vespa by vespa-engine.
the class JsonReaderTestCase method testEmptyStructUpdate.
@Test
public final void testEmptyStructUpdate() throws IOException {
DocumentUpdate put = parseUpdate("{\"update\": \"id:unittest:mirrors:g=test:whee\"," + "\"create\": true," + " \"fields\": { " + "\"skuggsjaa\": {" + "\"assign\": { }}}}");
assertEquals(1, put.getFieldUpdates().size());
FieldUpdate fu = put.getFieldUpdate(0);
assertEquals(1, fu.getValueUpdates().size());
ValueUpdate vu = fu.getValueUpdate(0);
assertTrue(vu instanceof AssignValueUpdate);
AssignValueUpdate avu = (AssignValueUpdate) vu;
assertTrue(avu.getValue() instanceof Struct);
Struct s = (Struct) avu.getValue();
assertEquals(0, s.getFieldCount());
GrowableByteBuffer buf = new GrowableByteBuffer();
DocumentSerializer serializer = DocumentSerializerFactory.createHead(buf);
put.serialize(serializer);
assertEquals(69, buf.position());
}
use of com.yahoo.document.update.ValueUpdate in project vespa by vespa-engine.
the class UriParserTestCase method requireThatUriFieldsCanBeParsed.
@Test
public void requireThatUriFieldsCanBeParsed() throws Exception {
DocumentTypeManager mgr = new DocumentTypeManager();
DocumentType docType = new DocumentType("my_doc");
docType.addField("my_uri", DataType.URI);
docType.addField("my_arr", DataType.getArray(DataType.URI));
mgr.registerDocumentType(docType);
VespaXMLFeedReader parser = new VespaXMLFeedReader("src/test/vespaxmlparser/test_uri.xml", mgr);
Iterator<VespaXMLFeedReader.Operation> it = parser.readAll().iterator();
Document doc = nextDocument(it);
assertNotNull(doc);
assertEquals(new StringFieldValue("scheme://host"), doc.getFieldValue("my_uri"));
assertNull(doc.getFieldValue("my_arr"));
assertNotNull(doc = nextDocument(it));
assertNull(doc.getFieldValue("my_uri"));
FieldValue val = doc.getFieldValue("my_arr");
assertNotNull(val);
assertTrue(val instanceof Array);
Array arr = (Array) val;
assertEquals(1, arr.size());
assertEquals(new StringFieldValue("scheme://host"), arr.get(0));
DocumentUpdate upd = nextUpdate(it);
assertNotNull(upd);
assertEquals(1, upd.getFieldUpdates().size());
FieldUpdate fieldUpd = upd.getFieldUpdate(0);
assertNotNull(fieldUpd);
assertEquals(docType.getField("my_arr"), fieldUpd.getField());
assertEquals(1, fieldUpd.getValueUpdates().size());
ValueUpdate valueUpd = fieldUpd.getValueUpdate(0);
assertNotNull(valueUpd);
assertTrue(valueUpd instanceof AddValueUpdate);
assertEquals(new StringFieldValue("scheme://host"), valueUpd.getValue());
assertFalse(it.hasNext());
}
Aggregations