package org.activiti.engine.test.bpmn.event.timer;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import org.activiti.engine.impl.test.PluggableActivitiTestCase;
import org.activiti.engine.runtime.Job;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.test.Deployment;
/**
* Test timer expression according to act-865
*
* @author Saeid Mirzaei
*/
public class TimeExpressionTest extends PluggableActivitiTestCase {
private Date testExpression(String timeExpression) {
// Set the clock fixed
HashMap<String, Object> variables1 = new HashMap<String, Object>();
variables1.put("dueDate", timeExpression);
// After process start, there should be timer created
ProcessInstance pi1 = runtimeService.startProcessInstanceByKey("intermediateTimerEventExample", variables1);
assertEquals(1, managementService.createJobQuery().processInstanceId(pi1.getId()).count());
List<Job> jobs = managementService.createJobQuery().executable().list();
assertEquals(1, jobs.size());
return jobs.get(0).getDuedate();
}
@Deployment(resources = { "org/activiti/engine/test/bpmn/event/timer/IntermediateTimerEventTest.testExpression.bpmn20.xml"})
public void testTimeExpressionComplete() throws Exception {
Date dt = new Date();
Date dueDate = testExpression(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(dt));
assertEquals(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(dt),new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(dueDate));
}
@Deployment(resources = { "org/activiti/engine/test/bpmn/event/timer/IntermediateTimerEventTest.testExpression.bpmn20.xml"})
public void testTimeExpressionWithoutSeconds() throws Exception {
Date dt = new Date();
Date dueDate = testExpression(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm").format(dt));
assertEquals(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm").format(dt),new SimpleDateFormat("yyyy-MM-dd'T'HH:mm").format(dueDate));
}
@Deployment(resources = { "org/activiti/engine/test/bpmn/event/timer/IntermediateTimerEventTest.testExpression.bpmn20.xml"})
public void testTimeExpressionWithoutMinutes() throws Exception {
Date dt = new Date();
Date dueDate = testExpression(new SimpleDateFormat("yyyy-MM-dd'T'HH").format(new Date()));
assertEquals(new SimpleDateFormat("yyyy-MM-dd'T'HH").format(dt),new SimpleDateFormat("yyyy-MM-dd'T'HH").format(dueDate));
}
@Deployment(resources = { "org/activiti/engine/test/bpmn/event/timer/IntermediateTimerEventTest.testExpression.bpmn20.xml"})
public void testTimeExpressionWithoutTime() throws Exception {
Date dt = new Date();
Date dueDate = testExpression(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
assertEquals(new SimpleDateFormat("yyyy-MM-dd").format(dt),new SimpleDateFormat("yyyy-MM-dd").format(dueDate));
}
@Deployment(resources = { "org/activiti/engine/test/bpmn/event/timer/IntermediateTimerEventTest.testExpression.bpmn20.xml"})
public void testTimeExpressionWithoutDay() throws Exception {
Date dt = new Date();
Date dueDate = testExpression(new SimpleDateFormat("yyyy-MM").format(new Date()));
assertEquals(new SimpleDateFormat("yyyy-MM").format(dt),new SimpleDateFormat("yyyy-MM").format(dueDate));
}
@Deployment(resources = { "org/activiti/engine/test/bpmn/event/timer/IntermediateTimerEventTest.testExpression.bpmn20.xml"})
public void testTimeExpressionWithoutMonth() throws Exception {
Date dt = new Date();
Date dueDate = testExpression(new SimpleDateFormat("yyyy").format(new Date()));
assertEquals(new SimpleDateFormat("yyyy").format(dt),new SimpleDateFormat("yyyy").format(dueDate));
}
}