package org.activiti.editor.language.xml;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.util.List;
import java.util.Map;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.bpmn.model.ExtensionAttribute;
import org.activiti.bpmn.model.FlowElement;
import org.activiti.bpmn.model.Process;
import org.activiti.bpmn.model.UserTask;
import org.junit.Test;
public class CustomNamespaceAttributeConverterTest extends AbstractConverterTest {
@Test
public void convertXMLToModel() throws Exception {
BpmnModel bpmnModel = readXMLFile();
validateModel(bpmnModel);
}
@Test
public void convertModelToXML() throws Exception {
BpmnModel bpmnModel = readXMLFile();
BpmnModel parsedModel = exportAndReadXMLFile(bpmnModel);
validateModel(parsedModel);
deployProcess(parsedModel);
}
protected String getResource() {
return "customnamespaceattributemodel.bpmn";
}
private void validateModel(BpmnModel model) {
Process process = model.getMainProcess();
assertNotNull(process.getAttributes());
assertEquals(1, process.getAttributes().size());
List<ExtensionAttribute> attributes = process.getAttributes().get("version");
assertNotNull(attributes);
assertEquals(1, attributes.size());
ExtensionAttribute attribute = attributes.get(0);
//custom:version = "9"
assertNotNull(attribute);
assertEquals("http://custom.org/bpmn", attribute.getNamespace());
assertEquals("custom", attribute.getNamespacePrefix());
assertEquals("version", attribute.getName());
assertEquals("9", attribute.getValue());
FlowElement flowElement = model.getMainProcess().getFlowElement("usertask");
assertNotNull(flowElement);
assertTrue(flowElement instanceof UserTask);
assertEquals("usertask", flowElement.getId());
UserTask userTask = (UserTask) flowElement;
assertEquals("usertask", userTask.getId());
assertEquals("User Task", userTask.getName());
Map<String, List<ExtensionAttribute>> attributesMap = userTask.getAttributes();
assertNotNull(attributesMap);
assertEquals(2, attributesMap.size());
attributes = attributesMap.get("id");
assertNotNull(attributes);
assertEquals(1, attributes.size());
ExtensionAttribute a = attributes.get(0);
assertNotNull(a);
assertEquals("id", a.getName());
assertEquals("test", a.getValue());
assertEquals("custom2", a.getNamespacePrefix());
assertEquals("http://custom2.org/bpmn", a.getNamespace());
attributes = attributesMap.get("attr");
assertNotNull(attributes);
assertEquals(1, attributes.size());
a = attributes.get(0);
assertNotNull(a);
assertEquals("attr", a.getName());
assertEquals("attrValue", a.getValue());
assertEquals("custom2", a.getNamespacePrefix());
assertEquals("http://custom2.org/bpmn", a.getNamespace());
}
}