@Test public void testGetProcessInstancesByContainer() throws Exception { int offset = queryClient.findProcessInstancesByContainerId(CONTAINER_ID, Collections.singletonList(2), 0, 10).size(); Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("stringData", "waiting for signal"); parameters.put("personData", createPersonInstance(USER_JOHN)); List<Long> processInstanceIds = createProcessInstances(parameters); try { List<ProcessInstance> instances = queryClient.findProcessInstancesByContainerId(CONTAINER_ID, null, 0, 10); assertNotNull(instances); assertEquals(5, instances.size()); List<Long> found = collectInstances(instances); assertEquals(processInstanceIds, found); instances = queryClient.findProcessInstancesByContainerId(CONTAINER_ID, null, 0, 3); assertNotNull(instances); assertEquals(3, instances.size()); instances = queryClient.findProcessInstancesByContainerId(CONTAINER_ID, null, 1, 3); assertNotNull(instances); assertEquals(2, instances.size()); // search for completed only instances = queryClient.findProcessInstancesByContainerId(CONTAINER_ID, Collections.singletonList(2), 0, 10); assertNotNull(instances); assertEquals(0 + offset, instances.size()); } finally { abortProcessInstances(processInstanceIds); } }
@Test(timeout = 60 * 1000) public void testTimerStartEvent() throws Exception { String containerId = "timer-project-" + runtimeStrategy; createContainer(containerId, releaseId, new KieServerConfigItem(KieServerConstants.PCFG_RUNTIME_STRATEGY, runtimeStrategy, String.class.getName())); List<Integer> completedOnly = Arrays.asList(2); KieServerSynchronization.waitForProcessInstanceStart(queryClient, containerId, 3, completedOnly); List<ProcessInstance> startedInstances = queryClient.findProcessInstancesByContainerId(containerId, completedOnly, 0, 10, "Id", false); assertEquals(3, startedInstances.size()); long thirdInstance = startedInstances.get(0).getDate().getTime(); long secondInstance = startedInstances.get(1).getDate().getTime(); long firstInstance = startedInstances.get(2).getDate().getTime(); // let's round it up to be on simple value double distance1 = Math.ceil((thirdInstance - secondInstance)); double distance2 = Math.ceil((secondInstance - firstInstance)); // since the expiration time is 5 seconds let's make sure it's not more than doubled of expiration time assertTrue(distance1 < 10000); assertTrue(distance2 < 10000); } }
List<ProcessInstance> instances = queryClient.findProcessInstancesByContainerId(CONTAINER_ID, null, 0, 3, SORT_BY_PROCESS_ID, true); assertNotNull(instances); assertEquals(3, instances.size()); instances = queryClient.findProcessInstancesByContainerId(CONTAINER_ID, null, 1, 3, SORT_BY_PROCESS_ID, true); assertNotNull(instances); assertEquals(2, instances.size()); instances = queryClient.findProcessInstancesByContainerId(CONTAINER_ID, null, 0, 10, SORT_BY_PROCESS_ID, false); assertNotNull(instances); assertEquals(5, instances.size());