use of org.javarosa.core.services.transport.payload.ByteArrayPayload in project javarosa by opendatakit.
the class SMSSerializingVisitor method createSerializedPayload.
public IDataPayload createSerializedPayload(FormInstance model, IDataReference ref) throws IOException {
init();
rootRef = FormInstance.unpackReference(ref);
if (this.serializer == null) {
this.setAnswerDataSerializer(new XFormAnswerDataSerializer());
}
model.accept(this);
if (theSmsStr != null) {
byte[] form = theSmsStr.getBytes("UTF-16");
return new ByteArrayPayload(form, null, IDataPayload.PAYLOAD_TYPE_SMS);
} else {
return null;
}
}
use of org.javarosa.core.services.transport.payload.ByteArrayPayload in project javarosa by opendatakit.
the class XFormParserTest method serializeAndRestoreMetaNamespaceFormInstance.
@Test
public void serializeAndRestoreMetaNamespaceFormInstance() throws IOException {
// Given
ParseResult parseResult = parse(r("meta-namespace-form.xml"));
assertEquals(parseResult.formDef.getTitle(), "Namespace for Metadata");
assertNoParseErrors(parseResult);
FormDef formDef = parseResult.formDef;
TreeElement audit = findDepthFirst(formDef.getInstance().getRoot(), AUDIT_NODE);
TreeElement audit2 = findDepthFirst(formDef.getInstance().getRoot(), AUDIT_2_NODE);
TreeElement audit3 = findDepthFirst(formDef.getInstance().getRoot(), AUDIT_3_NODE);
assertNotNull(audit);
assertEquals(ORX_2_NAMESPACE_PREFIX, audit.getNamespacePrefix());
assertEquals(ORX_2_NAMESPACE_URI, audit.getNamespace());
assertNotNull(audit2);
assertEquals(ORX_2_NAMESPACE_PREFIX, audit2.getNamespacePrefix());
assertEquals(ORX_2_NAMESPACE_URI, audit2.getNamespace());
assertNotNull(audit3);
assertEquals(null, audit3.getNamespacePrefix());
assertEquals(null, audit3.getNamespace());
audit.setAnswer(new StringData(AUDIT_ANSWER));
audit2.setAnswer(new StringData(AUDIT_2_ANSWER));
audit3.setAnswer(new StringData(AUDIT_3_ANSWER));
// When
// serialize the form instance
XFormSerializingVisitor serializer = new XFormSerializingVisitor();
ByteArrayPayload xml = (ByteArrayPayload) serializer.createSerializedPayload(formDef.getInstance());
copy(xml.getPayloadStream(), FORM_INSTANCE_XML_FILE_NAME, REPLACE_EXISTING);
// restore (deserialize) the form instance
byte[] formInstanceBytes = readAllBytes(FORM_INSTANCE_XML_FILE_NAME);
FormInstance formInstance = XFormParser.restoreDataModel(formInstanceBytes, null);
// Then
audit = findDepthFirst(formInstance.getRoot(), AUDIT_NODE);
audit2 = findDepthFirst(formInstance.getRoot(), AUDIT_2_NODE);
audit3 = findDepthFirst(formInstance.getRoot(), AUDIT_3_NODE);
assertNotNull(audit);
assertEquals(ORX_2_NAMESPACE_PREFIX, audit.getNamespacePrefix());
assertEquals(ORX_2_NAMESPACE_URI, audit.getNamespace());
assertEquals(AUDIT_ANSWER, audit.getValue().getValue());
assertNotNull(audit2);
assertEquals(ORX_2_NAMESPACE_PREFIX, audit2.getNamespacePrefix());
assertEquals(ORX_2_NAMESPACE_URI, audit2.getNamespace());
assertEquals(AUDIT_2_ANSWER, audit2.getValue().getValue());
assertNotNull(audit3);
assertEquals(null, audit3.getNamespacePrefix());
assertEquals(null, audit3.getNamespace());
assertEquals(AUDIT_3_ANSWER, audit3.getValue().getValue());
}
Aggregations