提交 dca72869 编写于 作者: V Vasile Dirla 提交者: Joram Barrez
上级 c77f02e1
......@@ -24,15 +24,15 @@ public class FormPropertiesConverterTest extends AbstractConverterTest {
BpmnModel bpmnModel = readXMLFile();
validateModel(bpmnModel);
}
@Test
@Test
public void doubleConversionValidation() throws Exception {
BpmnModel bpmnModel = readXMLFile();
validateModel(bpmnModel);
bpmnModel = exportAndReadXMLFile(bpmnModel);
validateModel(bpmnModel);
}
protected String getResource() {
return "formPropertiesProcess.bpmn";
}
......@@ -42,38 +42,38 @@ public class FormPropertiesConverterTest extends AbstractConverterTest {
assertEquals("User registration", model.getMainProcess().getName());
assertEquals(true, model.getMainProcess().isExecutable());
FlowElement startFlowElement = model.getMainProcess().getFlowElement("register");
FlowElement startFlowElement = model.getMainProcess().getFlowElement("startNode");
assertNotNull(startFlowElement);
assertTrue(startFlowElement instanceof StartEvent);
StartEvent startEvent = (StartEvent) startFlowElement;
for (FormProperty formProperty : startEvent.getFormProperties()) {
for (FormProperty formProperty :startEvent.getFormProperties()) {
assertEquals(true, formProperty.isRequired());
}
FlowElement userFlowElement = model.getMainProcess().getFlowElement("edit");
FlowElement userFlowElement = model.getMainProcess().getFlowElement("userTask");
assertNotNull(userFlowElement);
assertTrue(userFlowElement instanceof UserTask);
UserTask userTask = (UserTask) userFlowElement;
for (FormProperty formProperty : userTask.getFormProperties()) {
if (formProperty.getId().equals("duplicated")) {
checkFormProperty(formProperty, false, true, true);
}
if (formProperty.getId().equals("name")) {
checkFormProperty(formProperty, false, true, true);
}
if (formProperty.getId().equals("age")) {
checkFormProperty(formProperty, false, true, false);
}
if (formProperty.getId().equals("isMan")) {
List<FormProperty> formProperties = userTask.getFormProperties();
assertNotNull(formProperties);
assertEquals("Invalid form properties list: ", 8, formProperties.size());
for (FormProperty formProperty :formProperties) {
if (formProperty.getId().equals("new_property_1")) {
checkFormProperty(formProperty, false, false, false);
} else if (formProperty.getId().equals("new_property_2")) {
checkFormProperty(formProperty, false, false, true);
}
if (formProperty.getId().equals("remove")) {
checkFormProperty(formProperty, true, true, true);
}
if (formProperty.getId().equals("testEnum")) {
} else if (formProperty.getId().equals("new_property_3")) {
checkFormProperty(formProperty, false, true, false);
} else if (formProperty.getId().equals("new_property_4")) {
checkFormProperty(formProperty, false, true, true);
} else if (formProperty.getId().equals("new_property_5")) {
checkFormProperty(formProperty, true, false, false);
List<Map<String, Object>> formValues = new ArrayList<Map<String, Object>>();
List<Map<String, Object>> formValues = new ArrayList<Map<String,Object>>();
for (FormValue formValue : formProperty.getFormValues()) {
Map<String, Object> formValueMap = new HashMap<String, Object>();
formValueMap.put("id", formValue.getId());
......@@ -81,8 +81,16 @@ public class FormPropertiesConverterTest extends AbstractConverterTest {
formValues.add(formValueMap);
}
checkFormPropertyFormValues(formValues);
} else if (formProperty.getId().equals("new_property_6")) {
checkFormProperty(formProperty, true, false, true);
} else if (formProperty.getId().equals("new_property_7")) {
checkFormProperty(formProperty, true, true, false);
} else if (formProperty.getId().equals("new_property_8")) {
checkFormProperty(formProperty, true, true, true);
}
}
}
private void checkFormProperty(FormProperty formProperty, boolean shouldBeRequired, boolean shouldBeReadable, boolean shouldBeWritable) {
......@@ -92,15 +100,27 @@ public class FormPropertiesConverterTest extends AbstractConverterTest {
}
private void checkFormPropertyFormValues(List<Map<String, Object>> formValues) {
List<Map<String, Object>> expectedFormValues = new ArrayList<Map<String, Object>>();
List<Map<String, Object>> expectedFormValues = new ArrayList<Map<String,Object>>();
Map<String, Object> formValue1 = new HashMap<String, Object>();
formValue1.put("id", "enum1");
formValue1.put("name", "enum1");
formValue1.put("id", "value1");
formValue1.put("name", "Value 1");
Map<String, Object> formValue2 = new HashMap<String, Object>();
formValue2.put("id", "enum2");
formValue2.put("name", "enum2");
formValue2.put("id", "value2");
formValue2.put("name", "Value 2");
Map<String, Object> formValue3 = new HashMap<String, Object>();
formValue3.put("id", "value3");
formValue3.put("name", "Value 3");
Map<String, Object> formValue4 = new HashMap<String, Object>();
formValue4.put("id", "value4");
formValue4.put("name", "Value 4");
expectedFormValues.add(formValue1);
expectedFormValues.add(formValue2);
expectedFormValues.add(formValue3);
expectedFormValues.add(formValue4);
assertEquals(expectedFormValues, formValues);
}
}
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef">
<process id="formPropertiesProcess" name="User registration" isExecutable="true">
<startEvent id="register" name="Insert Data" activiti:formKey="teste">
<startEvent id="startNode">
<extensionElements>
<activiti:formProperty id="duplicated" name="duplicated" type="string" variable="duplicated" required="true"/>
<activiti:formProperty id="name" name="name" type="string" variable="name" required="true"/>
<activiti:formProperty id="age" name="age" type="long" variable="age" required="true"/>
<activiti:formProperty id="isMan" name="isMan" type="boolean" variable="isMan" required="true"/>
<activiti:formProperty id="remove" name="remove" type="boolean" variable="remove" required="true"/>
<activiti:formProperty id="new_property_1" name="v000" type="string" variable="v000" required="true" readable="false" writable="false"></activiti:formProperty>
<activiti:formProperty id="new_property_2" name="v001" type="string" variable="v001" required="true" readable="false"></activiti:formProperty>
<activiti:formProperty id="new_property_3" name="v010" type="string" variable="v010" required="true" writable="false"></activiti:formProperty>
<activiti:formProperty id="new_property_4" name="v011" type="string" variable="v011" required="true"></activiti:formProperty>
<activiti:formProperty id="new_property_5" name="v100" type="enum" variable="v100" readable="false" writable="false" required="true">
<activiti:value id="value1" name="Value 1"></activiti:value>
<activiti:value id="value2" name="Value 2"></activiti:value>
<activiti:value id="value3" name="Value 3"></activiti:value>
<activiti:value id="value4" name="Value 4"></activiti:value>
</activiti:formProperty>
<activiti:formProperty id="new_property_6" name="v101" type="string" variable="v101" readable="false" required="true"></activiti:formProperty>
<activiti:formProperty id="new_property_7" name="v110" type="string" variable="v110" writable="false" required="true"></activiti:formProperty>
<activiti:formProperty id="new_property_8" name="v111" type="string" variable="v111" required="true"></activiti:formProperty>
</extensionElements>
</startEvent>
<userTask id="edit" name="Edit" activiti:assignee="kermit" activiti:formKey="teste2">
<userTask id="userTask">
<extensionElements>
<activiti:formProperty id="duplicated" name="duplicated" type="long" variable="duplicated"/>
<activiti:formProperty id="name" name="name" type="string" variable="name"/>
<activiti:formProperty id="age" name="age" type="long" variable="age" writable="false"/>
<activiti:formProperty id="isMan" name="isMan" type="boolean" variable="isMan" readable="false"/>
<activiti:formProperty id="remove" name="remove" type="boolean" variable="remove" required="true"/>
<activiti:formProperty id="testeEnum" name="testeEnum" type="enum" variable="testeEnum">
<activiti:value id="enum1" name="enum1"/>
<activiti:value id="enum2" name="enum2"/>
<activiti:formProperty id="new_property_1" name="v000" type="string" variable="v000" readable="false" writable="false"></activiti:formProperty>
<activiti:formProperty id="new_property_2" name="v001" type="string" variable="v001" readable="false"></activiti:formProperty>
<activiti:formProperty id="new_property_3" name="v010" type="string" variable="v010" writable="false"></activiti:formProperty>
<activiti:formProperty id="new_property_4" name="v011" type="string" variable="v011"></activiti:formProperty>
<activiti:formProperty id="new_property_5" name="v100" type="enum" variable="v100" readable="false" writable="false" required="true">
<activiti:value id="value1" name="Value 1"></activiti:value>
<activiti:value id="value2" name="Value 2"></activiti:value>
<activiti:value id="value3" name="Value 3"></activiti:value>
<activiti:value id="value4" name="Value 4"></activiti:value>
</activiti:formProperty>
<activiti:formProperty id="new_property_6" name="v101" type="string" variable="v101" readable="false" required="true"></activiti:formProperty>
<activiti:formProperty id="new_property_7" name="v110" type="string" variable="v110" writable="false" required="true"></activiti:formProperty>
<activiti:formProperty id="new_property_8" name="v111" type="string" variable="v111" required="true"></activiti:formProperty>
</extensionElements>
</userTask>
<exclusiveGateway id="sid-5222200D-CB9E-4AA4-BCC9-CF9BD66684B6"/>
<endEvent id="fim" name="End"/>
<sequenceFlow id="sid-288E87B0-A482-45EE-A36F-458C624FFF50" sourceRef="edit" targetRef="sid-5222200D-CB9E-4AA4-BCC9-CF9BD66684B6"/>
<sequenceFlow id="sid-7DB064BE-D4FF-4FAC-8ABE-B411508701A6" sourceRef="register" targetRef="edit"/>
<sequenceFlow id="removerInd" name="Remove Data" sourceRef="sid-5222200D-CB9E-4AA4-BCC9-CF9BD66684B6" targetRef="fim">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${execution.getVariable("remove") == true}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="naoRemoverInd" sourceRef="sid-5222200D-CB9E-4AA4-BCC9-CF9BD66684B6" targetRef="edit">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${execution.getVariable("remove") == false}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="sid-67E5C57C-B8CB-4B76-AF19-46A3DD03290E" sourceRef="startNode" targetRef="userTask"></sequenceFlow>
<endEvent id="sid-DA28CB1A-F2D3-4C30-B3DB-ABD246D1DA3A"></endEvent>
<sequenceFlow id="sid-F5607957-26B8-4781-B424-513C79A4ABBA" sourceRef="userTask" targetRef="sid-DA28CB1A-F2D3-4C30-B3DB-ABD246D1DA3A"></sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_formPropertiesProcess">
<bpmndi:BPMNPlane bpmnElement="formPropertiesProcess" id="BPMNPlane_formPropertiesProcess">
<bpmndi:BPMNShape bpmnElement="register" id="BPMNShape_register">
<omgdc:Bounds height="30.0" width="30.0" x="45.0" y="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="edit" id="BPMNShape_edit">
<omgdc:Bounds height="80.0" width="100.0" x="135.0" y="15.0"/>
<bpmndi:BPMNDiagram id="BPMNDiagram_process">
<bpmndi:BPMNPlane bpmnElement="process" id="BPMNPlane_process">
<bpmndi:BPMNShape bpmnElement="startNode" id="BPMNShape_startNode">
<omgdc:Bounds height="30.0" width="30.0" x="161.25" y="163.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-5222200D-CB9E-4AA4-BCC9-CF9BD66684B6" id="BPMNShape_sid-5222200D-CB9E-4AA4-BCC9-CF9BD66684B6">
<omgdc:Bounds height="40.0" width="40.0" x="315.0" y="35.0"/>
<bpmndi:BPMNShape bpmnElement="userTask" id="BPMNShape_userTask">
<omgdc:Bounds height="80.0" width="100.0" x="240.0" y="138.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="fim" id="BPMNShape_fim">
<omgdc:Bounds height="28.0" width="28.0" x="510.0" y="41.0"/>
<bpmndi:BPMNShape bpmnElement="sid-DA28CB1A-F2D3-4C30-B3DB-ABD246D1DA3A" id="BPMNShape_sid-DA28CB1A-F2D3-4C30-B3DB-ABD246D1DA3A">
<omgdc:Bounds height="28.0" width="28.0" x="385.0" y="164.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="removerInd" id="BPMNEdge_removerInd">
<omgdi:waypoint x="355.0" y="55.0"/>
<omgdi:waypoint x="510.0" y="55.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-7DB064BE-D4FF-4FAC-8ABE-B411508701A6" id="BPMNEdge_sid-7DB064BE-D4FF-4FAC-8ABE-B411508701A6">
<omgdi:waypoint x="75.0" y="55.0"/>
<omgdi:waypoint x="135.0" y="55.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-288E87B0-A482-45EE-A36F-458C624FFF50" id="BPMNEdge_sid-288E87B0-A482-45EE-A36F-458C624FFF50">
<omgdi:waypoint x="235.0" y="55.0"/>
<omgdi:waypoint x="315.0" y="55.0"/>
<bpmndi:BPMNEdge bpmnElement="sid-F5607957-26B8-4781-B424-513C79A4ABBA" id="BPMNEdge_sid-F5607957-26B8-4781-B424-513C79A4ABBA">
<omgdi:waypoint x="340.0" y="178.0"></omgdi:waypoint>
<omgdi:waypoint x="385.0" y="178.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="naoRemoverInd" id="BPMNEdge_naoRemoverInd">
<omgdi:waypoint x="334.75" y="74.75"/>
<omgdi:waypoint x="334.0" y="134.0"/>
<omgdi:waypoint x="185.0" y="134.0"/>
<omgdi:waypoint x="185.0" y="95.0"/>
<bpmndi:BPMNEdge bpmnElement="sid-67E5C57C-B8CB-4B76-AF19-46A3DD03290E" id="BPMNEdge_sid-67E5C57C-B8CB-4B76-AF19-46A3DD03290E">
<omgdi:waypoint x="191.25" y="178.0"></omgdi:waypoint>
<omgdi:waypoint x="240.0" y="178.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册