@Deployment(resources={"org/activiti/engine/test/api/task/TaskQueryTest.testProcessVariableValueEquals.bpmn20.xml"}) public void testProcessVariableValueEqualsOn() throws Exception {
  Map<String,Object> variables=new HashMap<String,Object>();
  variables.put("longVar",928374L);
  variables.put("shortVar",(short)123);
  variables.put("integerVar",1234);
  variables.put("stringVar","stringValue");
  variables.put("booleanVar",true);
  Date date=Calendar.getInstance().getTime();
  variables.put("dateVar",date);
  variables.put("nullVar",null);
  runtimeService.startProcessInstanceByKey("oneTaskProcess",variables);
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("longVar",928374L).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("shortVar",(short)123).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("integerVar",1234).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("stringVar","stringValue").count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("booleanVar",true).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("dateVar",date).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("nullVar",null).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("longVar",999L).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("shortVar",(short)999).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("integerVar",999).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("stringVar","999").count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("booleanVar",false).count());
  Calendar otherDate=Calendar.getInstance();
  otherDate.add(Calendar.YEAR,1);
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("dateVar",otherDate.getTime()).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("nullVar","999").count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("longVar",928374L).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("shortVar",(short)123).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("integerVar",1234).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("stringVar","stringValue").count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("booleanVar",true).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("dateVar",date).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("nullVar",null).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueNotEquals("longVar",999L).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueNotEquals("shortVar",(short)999).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueNotEquals("integerVar",999).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueNotEquals("stringVar","999").count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueNotEquals("booleanVar",false).count());
  assertEquals(0,taskService.createTaskQuery().processVariableValueNotEquals("longVar",928374L).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals(928374L).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals((short)123).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals(1234).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("stringValue").count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals(true).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals(date).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals(null).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals(999999L).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals((short)999).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals(9999).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals("unexistingstringvalue").count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals(false).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").processVariableValueEquals(otherDate.getTime()).count());
}
