package org.activiti.editor.language.xml; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import org.activiti.bpmn.model.BoundaryEvent; import org.activiti.bpmn.model.BpmnModel; import org.activiti.bpmn.model.IntermediateCatchEvent; import org.activiti.bpmn.model.StartEvent; import org.activiti.bpmn.model.TimerEventDefinition; import org.junit.Test; public class TimerDefinitionConverterTest extends AbstractConverterTest { @Test public void connvertXMLToModel() 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 "timerCalendarDefinition.bpmn"; } private void validateModel(BpmnModel model) { IntermediateCatchEvent timer = (IntermediateCatchEvent) model.getMainProcess().getFlowElement("timer"); assertNotNull(timer); TimerEventDefinition timerEvent = (TimerEventDefinition) timer.getEventDefinitions().get(0); assertThat(timerEvent.getCalendarName(), is("custom")); assertEquals("PT5M", timerEvent.getTimeDuration()); StartEvent start = (StartEvent) model.getMainProcess().getFlowElement("theStart"); assertNotNull(start); TimerEventDefinition startTimerEvent = (TimerEventDefinition) start.getEventDefinitions().get(0); assertThat(startTimerEvent.getCalendarName(), is("custom")); assertEquals("R2/PT5S", startTimerEvent.getTimeCycle()); assertEquals("${EndDate}", startTimerEvent.getEndDate()); BoundaryEvent boundaryTimer = (BoundaryEvent) model.getMainProcess().getFlowElement("boundaryTimer"); assertNotNull(boundaryTimer); TimerEventDefinition boundaryTimerEvent = (TimerEventDefinition) boundaryTimer.getEventDefinitions().get(0); assertThat(boundaryTimerEvent.getCalendarName(), is("custom")); assertEquals("PT10S", boundaryTimerEvent.getTimeDuration()); } }