@Deployment(resources = {"org/camunda/bpm/engine/test/api/form/FormsProcess.bpmn20.xml"})
public void testSubmitTaskFormDataTypedVariables() {
String procDefId = repositoryService.createProcessDefinitionQuery().singleResult().getId();
ProcessInstance processInstance = formService.submitStartForm(procDefId, createVariables());
Task task = taskService.createTaskQuery().singleResult();
String stringValue = "some string";
String serializedValue = "some value";
formService.submitTaskForm(task.getId(), createVariables()
.putValueTyped("boolean", booleanValue(null))
.putValueTyped("string", stringValue(stringValue))
.putValueTyped("serializedObject", serializedObjectValue(serializedValue)
.objectTypeName(String.class.getName())
.serializationDataFormat(JavaObjectSerializer.SERIALIZATION_DATA_FORMAT)
.create())
.putValueTyped("object", objectValue(serializedValue).create()));
VariableMap variables = runtimeService.getVariablesTyped(processInstance.getId(), false);
assertEquals(booleanValue(null), variables.getValueTyped("boolean"));
assertEquals(stringValue(stringValue), variables.getValueTyped("string"));
assertNotNull(variables.<ObjectValue>getValueTyped("serializedObject").getValueSerialized());
assertNotNull(variables.<ObjectValue>getValueTyped("object").getValueSerialized());
}