package org.activiti.editor.language; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.List; import org.activiti.bpmn.model.ActivitiListener; import org.activiti.bpmn.model.BpmnModel; import org.activiti.bpmn.model.FlowElement; import org.activiti.bpmn.model.FormProperty; import org.activiti.bpmn.model.ImplementationType; import org.activiti.bpmn.model.UserTask; import org.apache.commons.lang.StringUtils; import org.junit.Test; public class UserTaskConverterTest extends AbstractConverterTest { @Test public void connvertJsonToModel() throws Exception { BpmnModel bpmnModel = readJsonFile(); validateModel(bpmnModel); } @Test public void doubleConversionValidation() throws Exception { BpmnModel bpmnModel = readJsonFile(); bpmnModel = convertToJsonAndBack(bpmnModel); validateModel(bpmnModel); } protected String getResource() { return "test.usertaskmodel.json"; } private void validateModel(BpmnModel model) { FlowElement flowElement = model.getMainProcess().getFlowElementMap().get("usertask"); assertNotNull(flowElement); assertTrue(flowElement instanceof UserTask); assertEquals("usertask", flowElement.getId()); UserTask userTask = (UserTask) flowElement; assertEquals("usertask", userTask.getId()); assertEquals("User task", userTask.getName()); assertEquals("testKey", userTask.getFormKey()); assertEquals(40l, userTask.getPriority().longValue()); assertEquals("2012-11-01", userTask.getDueDate()); assertEquals("kermit", userTask.getAssignee()); assertEquals(2, userTask.getCandidateUsers().size()); assertTrue(userTask.getCandidateUsers().contains("kermit")); assertTrue(userTask.getCandidateUsers().contains("fozzie")); assertEquals(2, userTask.getCandidateGroups().size()); assertTrue(userTask.getCandidateGroups().contains("management")); assertTrue(userTask.getCandidateGroups().contains("sales")); List<FormProperty> formProperties = userTask.getFormProperties(); assertEquals(2, formProperties.size()); FormProperty formProperty = formProperties.get(0); assertEquals("formId", formProperty.getId()); assertEquals("formName", formProperty.getName()); assertEquals("string", formProperty.getType()); assertEquals("variable", formProperty.getVariable()); assertEquals("${expression}", formProperty.getExpression()); formProperty = formProperties.get(1); assertEquals("formId2", formProperty.getId()); assertEquals("anotherName", formProperty.getName()); assertEquals("long", formProperty.getType()); assertTrue(StringUtils.isEmpty(formProperty.getVariable())); assertTrue(StringUtils.isEmpty(formProperty.getExpression())); List<ActivitiListener> listeners = userTask.getTaskListeners(); assertEquals(3, listeners.size()); ActivitiListener listener = (ActivitiListener) listeners.get(0); assertTrue(ImplementationType.IMPLEMENTATION_TYPE_CLASS.equals(listener.getImplementationType())); assertEquals("org.test.TestClass", listener.getImplementation()); assertEquals("create", listener.getEvent()); listener = (ActivitiListener) listeners.get(1); assertTrue(ImplementationType.IMPLEMENTATION_TYPE_EXPRESSION.equals(listener.getImplementationType())); assertEquals("${someExpression}", listener.getImplementation()); assertEquals("assignment", listener.getEvent()); listener = (ActivitiListener) listeners.get(2); assertTrue(ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION.equals(listener.getImplementationType())); assertEquals("${someDelegateExpression}", listener.getImplementation()); assertEquals("complete", listener.getEvent()); } }