@Deployment(resources={"org/activiti/engine/test/api/task/TaskQueryTest.testTaskVariableValueEquals.bpmn20.xml"}) public void testTaskVariableValueEqualsOr() throws Exception {
  ProcessInstance processInstance=runtimeService.startProcessInstanceByKey("oneTaskProcess");
  Task task=taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("unexistingVar","value").count());
  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);
  taskService.setVariablesLocal(task.getId(),variables);
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("longVar",928374L).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("shortVar",(short)123).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("integerVar",1234).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("stringVar","stringValue").count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("booleanVar",true).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("dateVar",date).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("nullVar",null).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("longVar",999L).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("shortVar",(short)999).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("integerVar",999).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("stringVar","999").count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("booleanVar",false).count());
  Calendar otherDate=Calendar.getInstance();
  otherDate.add(Calendar.YEAR,1);
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("dateVar",otherDate.getTime()).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("nullVar","999").count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueNotEquals("longVar",999L).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueNotEquals("shortVar",(short)999).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueNotEquals("integerVar",999).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueNotEquals("stringVar","999").count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueNotEquals("booleanVar",false).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals(928374L).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals((short)123).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals(1234).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("stringValue").count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals(true).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals(date).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals(null).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals(999999L).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals((short)999).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals(9999).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals("unexistingstringvalue").count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals(false).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueEquals(otherDate.getTime()).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueLike("stringVar","string%").count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueLike("stringVar","String%").count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueLike("stringVar","%Value").count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueGreaterThan("integerVar",1000).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueGreaterThan("integerVar",1234).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueGreaterThan("integerVar",1240).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueGreaterThanOrEqual("integerVar",1000).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueGreaterThanOrEqual("integerVar",1234).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueGreaterThanOrEqual("integerVar",1240).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueLessThan("integerVar",1240).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueLessThan("integerVar",1234).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueLessThan("integerVar",1000).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueLessThanOrEqual("integerVar",1240).count());
  assertEquals(1,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueLessThanOrEqual("integerVar",1234).count());
  assertEquals(0,taskService.createTaskQuery().or().taskId("invalid").taskVariableValueLessThanOrEqual("integerVar",1000).count());
}
