提交 bb376da4 编写于 作者: J Joram Barrez
上级 dca72869
......@@ -3,6 +3,7 @@ package org.activiti.editor.language;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.ArrayList;
import java.util.HashMap;
......@@ -24,22 +25,22 @@ public class FormPropertiesConverterTest extends AbstractConverterTest {
BpmnModel bpmnModel = readJsonFile();
validateModel(bpmnModel);
}
@Test
@Test
public void doubleConversionValidation() throws Exception {
BpmnModel bpmnModel = readJsonFile();
validateModel(bpmnModel);
bpmnModel = convertToJsonAndBack(bpmnModel);
validateModel(bpmnModel);
}
protected String getResource() {
return "test.formpropertiesmodel.json";
}
private void validateModel(BpmnModel model) {
assertEquals("process", model.getMainProcess().getId());
assertEquals("formPropsProcess", model.getMainProcess().getName());
assertEquals("formPropertiesProcess", model.getMainProcess().getId());
assertEquals("User registration", model.getMainProcess().getName());
assertEquals(true, model.getMainProcess().isExecutable());
FlowElement startFlowElement = model.getMainProcess().getFlowElement("startNode");
......@@ -47,8 +48,41 @@ public class FormPropertiesConverterTest extends AbstractConverterTest {
assertTrue(startFlowElement instanceof StartEvent);
StartEvent startEvent = (StartEvent) startFlowElement;
for (FormProperty formProperty :startEvent.getFormProperties()) {
assertEquals(true, formProperty.isRequired());
List<FormProperty> formProperties = startEvent.getFormProperties();
assertNotNull(formProperties);
assertEquals("Invalid form properties list: ", 8 ,formProperties.size());
for (FormProperty formProperty :formProperties) {
if (formProperty.getId().equals("new_property_1")) {
checkFormProperty(formProperty, "v000", true, false, false);
} else if (formProperty.getId().equals("new_property_2")) {
checkFormProperty(formProperty, "v001", true, false, true);
} else if (formProperty.getId().equals("new_property_3")) {
checkFormProperty(formProperty, "v010", true, true, false);
} else if (formProperty.getId().equals("new_property_4")) {
checkFormProperty(formProperty, "v011", true, true, true);
} else if (formProperty.getId().equals("new_property_5")) {
checkFormProperty(formProperty, "v100", true, false, false);
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());
formValueMap.put("name", formValue.getName());
formValues.add(formValueMap);
}
checkFormPropertyFormValues(formValues);
} else if (formProperty.getId().equals("new_property_6")) {
checkFormProperty(formProperty, "v101", true, false, true);
} else if (formProperty.getId().equals("new_property_7")) {
checkFormProperty(formProperty, "v110", true, true, false);
} else if (formProperty.getId().equals("new_property_8")) {
checkFormProperty(formProperty, "v111", true, true, true);
} else {
fail("unexpected form property id " + formProperty.getId());
}
}
FlowElement userFlowElement = model.getMainProcess().getFlowElement("userTask");
......@@ -56,22 +90,22 @@ public class FormPropertiesConverterTest extends AbstractConverterTest {
assertTrue(userFlowElement instanceof UserTask);
UserTask userTask = (UserTask) userFlowElement;
List<FormProperty> formProperties = userTask.getFormProperties();
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);
checkFormProperty(formProperty, "v000", false, false, false);
} else if (formProperty.getId().equals("new_property_2")) {
checkFormProperty(formProperty, false, false, true);
checkFormProperty(formProperty, "v001", false, false, true);
} else if (formProperty.getId().equals("new_property_3")) {
checkFormProperty(formProperty, false, true, false);
checkFormProperty(formProperty, "v010", false, true, false);
} else if (formProperty.getId().equals("new_property_4")) {
checkFormProperty(formProperty, false, true, true);
checkFormProperty(formProperty, "v011", false, true, true);
} else if (formProperty.getId().equals("new_property_5")) {
checkFormProperty(formProperty, true, false, false);
checkFormProperty(formProperty, "v100", true, false, false);
List<Map<String, Object>> formValues = new ArrayList<Map<String,Object>>();
for (FormValue formValue : formProperty.getFormValues()) {
......@@ -83,38 +117,41 @@ public class FormPropertiesConverterTest extends AbstractConverterTest {
checkFormPropertyFormValues(formValues);
} else if (formProperty.getId().equals("new_property_6")) {
checkFormProperty(formProperty, true, false, true);
checkFormProperty(formProperty, "v101", true, false, true);
} else if (formProperty.getId().equals("new_property_7")) {
checkFormProperty(formProperty, true, true, false);
checkFormProperty(formProperty, "v110", true, true, false);
} else if (formProperty.getId().equals("new_property_8")) {
checkFormProperty(formProperty, true, true, true);
checkFormProperty(formProperty, "v111", true, true, true);
} else {
fail("unexpected form property id " + formProperty.getId());
}
}
}
private void checkFormProperty(FormProperty formProperty, boolean shouldBeRequired, boolean shouldBeReadable, boolean shouldBeWritable) {
private void checkFormProperty(FormProperty formProperty, String name, boolean shouldBeRequired, boolean shouldBeReadable, boolean shouldBeWritable) {
assertEquals(name, formProperty.getName());
assertEquals(shouldBeRequired, formProperty.isRequired());
assertEquals(shouldBeReadable, formProperty.isReadable());
assertEquals(shouldBeWritable, formProperty.isWriteable());
}
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", "value 1");
formValue1.put("name", "value 1");
formValue1.put("id", "value1");
formValue1.put("name", "Value 1");
Map<String, Object> formValue2 = new HashMap<String, Object>();
formValue2.put("id", "value 2");
formValue2.put("name", "value 2");
formValue2.put("id", "value2");
formValue2.put("name", "Value 2");
Map<String, Object> formValue3 = new HashMap<String, Object>();
formValue3.put("id", "value 3");
formValue3.put("name", "value 3");
formValue3.put("id", "value3");
formValue3.put("name", "Value 3");
Map<String, Object> formValue4 = new HashMap<String, Object>();
formValue4.put("id", "value 4");
formValue4.put("name", "value 4");
formValue4.put("id", "value4");
formValue4.put("name", "Value 4");
expectedFormValues.add(formValue1);
expectedFormValues.add(formValue2);
......
{
"resourceId": "1744",
"properties": {
"process_id": "process",
"name": "formPropsProcess",
"process_id": "formPropertiesProcess",
"name": "User registration",
"documentation": "",
"process_author": "",
"process_version": "",
......@@ -71,20 +71,20 @@
"required": true,
"enumValues": [
{
"value": "value 1",
"$$hashKey": "0CU"
"id": "value1",
"name": "Value 1"
},
{
"value": "value 2",
"$$hashKey": "0CV"
"id": "value2",
"name": "Value 2"
},
{
"value": "value 3",
"$$hashKey": "0CZ"
"id": "value3",
"name": "Value 3"
},
{
"value": "value 4",
"$$hashKey": "0D2"
"id": "value4",
"name": "Value 4"
}
]
},
......@@ -198,20 +198,20 @@
"writable": false,
"enumValues": [
{
"value": "value 1",
"$$hashKey": "0CU"
"id": "value1",
"name": "Value 1"
},
{
"value": "value 2",
"$$hashKey": "0CV"
"id": "value2",
"name": "Value 2"
},
{
"value": "value 3",
"$$hashKey": "0CZ"
"id": "value3",
"name": "Value 3"
},
{
"value": "value 4",
"$$hashKey": "0D2"
"id": "value4",
"name": "Value 4"
}
],
"required": true
......@@ -393,4 +393,3 @@
},
"ssextensions": []
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册