private void assertRequestInfoInstance(RequestInfoInstance expected, RequestInfoInstance actual) { assertNotNull(actual); assertEquals(expected.getId(), actual.getId()); assertEquals(expected.getBusinessKey(), actual.getBusinessKey()); assertEquals(expected.getStatus(), actual.getStatus()); assertEquals(expected.getCommandName(), actual.getCommandName()); }
@Override public RequestDetails apply(final RequestInfoInstance requestInfoInstance) { final Optional<RequestInfoInstance> request = ofNullable(requestInfoInstance); if (request.isPresent() == false) { return null; } final RequestSummary summary = request.map(new RequestSummaryMapper()).get(); final List<ErrorSummary> errors = request.map(r -> r.getErrors()).map(e -> e.getItems()).orElse(emptyList()).stream().map(new ErrorSummaryMapper()).collect(toList()); final List<RequestParameterSummary> params = request.map(r -> r.getData()).orElse(emptyMap()).entrySet().stream() .map(e -> new RequestParameterSummary(e.getKey(), String.valueOf(e.getValue()))) .collect(toList()); return new RequestDetails(summary, errors, params); } }
@Override public RequestSummary apply(final RequestInfoInstance request) { if (request == null) { return null; } return new RequestSummary(request.getId(), request.getScheduledDate(), request.getStatus() == null ? null : RequestStatus.valueOf(request.getStatus()), request.getCommandName(), request.getMessage(), request.getBusinessKey(), request.getRetries(), request.getExecutions(), null, null, null, request.getContainerId()); } }
public static void assertRequestSummary(final RequestInfoInstance request, final RequestSummary rs) { assertNotNull(rs); assertEquals(request.getId(), rs.getJobId()); assertEquals(request.getId(), rs.getId()); if (request.getStatus() == null) { assertNull(rs.getStatus()); } else { assertEquals(request.getStatus(), rs.getStatus().name()); } assertEquals(request.getCommandName(), rs.getCommandName()); assertEquals(request.getBusinessKey(), rs.getKey()); assertEquals(request.getRetries(), rs.getRetries()); assertEquals(request.getScheduledDate(), rs.getTime()); assertEquals(request.getMessage(), rs.getMessage()); assertEquals(null, rs.getProcessName()); assertEquals(null, rs.getProcessInstanceId()); assertEquals(null, rs.getProcessInstanceDescription()); }
@Test public void testScheduleAndRunJobWithWorkItem() throws Exception { JobRequestInstance jobRequestInstance = createJobRequestInstance(); final WorkItemImpl workItem = new WorkItemImpl(); workItem.setId(1); workItem.setName("testWorkItemName"); workItem.setDeploymentId("test-1.0.0"); workItem.setState(1); jobRequestInstance.getData().put("workItem", workItem); Long jobId = jobServicesClient.scheduleRequest(jobRequestInstance); assertNotNull(jobId); assertTrue(jobId.longValue() > 0); KieServerSynchronization.waitForJobToFinish(jobServicesClient, jobId); final RequestInfoInstance jobRequest = jobServicesClient.getRequestById(jobId, true, true); assertNotNull(jobRequest); assertEquals(jobId, jobRequest.getId()); assertEquals(STATUS.DONE.toString(), jobRequest.getStatus()); assertEquals(PRINT_OUT_COMMAND, jobRequest.getCommandName()); assertNotNull(jobRequest.getData().get("workItem")); }
@Test public void testScheduleAndRunJobWithoutData() throws Exception { JobRequestInstance jobRequestInstance = new JobRequestInstance(); jobRequestInstance.setCommand(PRINT_OUT_COMMAND); Long jobId = jobServicesClient.scheduleRequest(jobRequestInstance); assertNotNull(jobId); assertTrue( jobId.longValue() > 0); RequestInfoInstance jobRequest = jobServicesClient.getRequestById(jobId, false, false); assertNotNull(jobRequest); assertEquals(jobId, jobRequest.getId()); assertThat(jobRequest.getStatus(),anyOf( equalTo(STATUS.QUEUED.toString()), equalTo(STATUS.RUNNING.toString()), equalTo(STATUS.DONE.toString()))); assertEquals(PRINT_OUT_COMMAND, jobRequest.getCommandName()); KieServerSynchronization.waitForJobToFinish(jobServicesClient, jobId); jobRequest = jobServicesClient.getRequestById(jobId, false, false); assertNotNull(jobRequest); assertEquals(jobId, jobRequest.getId()); assertEquals(STATUS.DONE.toString(), jobRequest.getStatus()); assertEquals(PRINT_OUT_COMMAND, jobRequest.getCommandName()); }
RequestInfoInstance expected = createExpectedRequestInfoInstance(jobId, STATUS.QUEUED); assertRequestInfoInstance(expected, jobRequest); assertNotNull(jobRequest.getScheduledDate()); Map<String, Object> jobsData = jobRequest.getData(); assertNotNull(jobsData); assertEquals("just a simple value", jobsData.get("customValue")); jobsData = jobRequest.getData(); assertNotNull(jobsData); assertEquals("updated string", jobsData.get("customValue")); expected.setStatus(STATUS.CANCELLED.toString()); assertRequestInfoInstance(expected, jobRequest);
private RequestInfoInstance createExpectedRequestInfoInstance(Long jobId, STATUS expected) { return RequestInfoInstance.builder() .id(jobId) .businessKey(BUSINESS_KEY) .status(expected.toString()) .command(PRINT_OUT_COMMAND) .build(); }
@Test public void testScheduleViewAndCancelJob() { Calendar tomorrow = Calendar.getInstance(); tomorrow.add(Calendar.DATE, 1); JobRequestInstance jobRequestInstance = createJobRequestInstance(); jobRequestInstance.setScheduledDate(tomorrow.getTime()); Long jobId = jobServicesClient.scheduleRequest(jobRequestInstance); assertNotNull(jobId); assertTrue( jobId.longValue() > 0); RequestInfoInstance jobRequest = jobServicesClient.getRequestById(jobId, false, false); RequestInfoInstance expected = createExpectedRequestInfoInstance(jobId, STATUS.QUEUED); assertRequestInfoInstance(expected, jobRequest); assertNotNull(jobRequest.getScheduledDate()); jobServicesClient.cancelRequest(jobId); jobRequest = jobServicesClient.getRequestById(jobId, false, false); expected.setStatus(STATUS.CANCELLED.toString()); assertRequestInfoInstance(expected, jobRequest); }
@Test public void testScheduleSearchByKeyJob() throws Exception { int currentNumberOfRequests = jobServicesClient.getRequestsByBusinessKey(BUSINESS_KEY, 0, 100).size(); Calendar tomorrow = Calendar.getInstance(); tomorrow.add(Calendar.DATE, 1); JobRequestInstance jobRequestInstance = createJobRequestInstance(); jobRequestInstance.setScheduledDate(tomorrow.getTime()); Long jobId = jobServicesClient.scheduleRequest(jobRequestInstance); assertNotNull(jobId); assertTrue(jobId.longValue() > 0); List<RequestInfoInstance> result = jobServicesClient.getRequestsByBusinessKey(BUSINESS_KEY, 0, 100); assertNotNull(result); assertEquals(1 + currentNumberOfRequests, result.size()); List<RequestInfoInstance> queuedJobs = result.stream(). filter(n -> n.getStatus().equals(STATUS.QUEUED.name())).collect(Collectors.toList()); assertNotNull(queuedJobs); assertEquals(1, queuedJobs.size()); RequestInfoInstance expected = createExpectedRequestInfoInstance(jobId, STATUS.QUEUED); RequestInfoInstance queuedJob = queuedJobs.get(0); assertRequestInfoInstance(expected, queuedJob); result = jobServicesClient.getRequestsByBusinessKey(BUSINESS_KEY, Arrays.asList(STATUS.QUEUED.name()), 0, 100); assertNotNull(result); assertEquals(1, result.size()); assertRequestInfoInstance(expected, result.get(0)); jobServicesClient.cancelRequest(jobId); }
@Test public void testScheduleSearchByStatusAndCancelJob() { int currentNumberOfCancelled = jobServicesClient.getRequestsByStatus(Collections.singletonList(STATUS.CANCELLED.toString()), 0, 100).size(); Calendar tomorrow = Calendar.getInstance(); tomorrow.add(Calendar.DATE, 1); JobRequestInstance jobRequestInstance = createJobRequestInstance(); jobRequestInstance.setScheduledDate(tomorrow.getTime()); Long jobId = jobServicesClient.scheduleRequest(jobRequestInstance); assertNotNull(jobId); assertTrue( jobId.longValue() > 0); List<String> status = new ArrayList<String>(); status.add(STATUS.QUEUED.toString()); List<RequestInfoInstance> result = jobServicesClient.getRequestsByStatus(status, 0, 100); assertNotNull(result); assertEquals(1, result.size()); RequestInfoInstance jobRequest = result.get(0); RequestInfoInstance expected = createExpectedRequestInfoInstance(jobId, STATUS.QUEUED); assertRequestInfoInstance(expected, jobRequest); assertNotNull(jobRequest.getScheduledDate()); jobServicesClient.cancelRequest(jobId); result = jobServicesClient.getRequestsByStatus(status, 0, 100); assertNotNull(result); assertEquals(0, result.size()); // clear status to search only for canceled status.clear(); status.add(STATUS.CANCELLED.toString()); result = jobServicesClient.getRequestsByStatus(status, 0, 100); assertNotNull(result); assertEquals(1 + currentNumberOfCancelled, result.size()); }
public static void assertRequestSummary(final RequestInfoInstance request, final RequestSummary rs) { assertNotNull(rs); assertEquals(request.getId(), rs.getJobId()); assertEquals(request.getId(), rs.getId()); if (request.getStatus() == null) { assertNull(rs.getStatus()); } else { assertEquals(request.getStatus(), rs.getStatus().name()); } assertEquals(request.getCommandName(), rs.getCommandName()); assertEquals(request.getBusinessKey(), rs.getKey()); assertEquals(request.getRetries(), rs.getRetries()); assertEquals(request.getScheduledDate(), rs.getTime()); assertEquals(request.getMessage(), rs.getMessage()); assertEquals(null, rs.getProcessName()); assertEquals(null, rs.getProcessInstanceId()); assertEquals(null, rs.getProcessInstanceDescription()); }
public static RequestInfoInstance newRequestInfoInstance() { return RequestInfoInstance.builder() .id(1l) .businessKey("businessKey") .command("commandName") .data(singletonMap("key", "data")) .errors(new ErrorInfoInstanceList(singletonList(newErrorInfoInstance()))) .executions(10) .message("message") .retries(2) .scheduledDate(new Date()) .status("DONE") .responseData(singletonMap("responseKey", "responseData")) .build(); }
assertEquals(jobId, jobRequest.getId()); assertEquals(BUSINESS_KEY, jobRequest.getBusinessKey()); assertThat(jobRequest.getStatus(),anyOf( equalTo(STATUS.QUEUED.toString()), equalTo(STATUS.RUNNING.toString()), equalTo(STATUS.ERROR.toString()))); assertEquals(command, jobRequest.getCommandName()); expected.setCommandName(command); assertEquals(expected.getId(), jobRequest.getId()); assertEquals(expected.getBusinessKey(), jobRequest.getBusinessKey()); assertEquals(STATUS.DONE.toString(), jobRequest.getStatus()); assertEquals(expected.getCommandName(), jobRequest.getCommandName());
public static void assertRequestDetails(final RequestInfoInstance ri, final RequestDetails rd) { assertNotNull(rd); assertNotNull(rd.getRequest()); assertRequestSummary(ri, rd.getRequest()); assertNotNull(rd.getErrors()); assertErrorSummary(ri.getErrors().getItems().get(0), rd.getErrors().get(0)); assertNotNull(rd.getParams()); assertRequestParameterSummary(ri.getData().entrySet().iterator().next(), rd.getParams().get(0)); }
@Before public void finishAllJobs() throws Exception { List<String> status = new ArrayList<String>(); status.add(STATUS.QUEUED.toString()); status.add(STATUS.RUNNING.toString()); status.add(STATUS.RETRYING.toString()); List<RequestInfoInstance> requests = jobServicesClient.getRequestsByStatus(status, 0, 100); for (RequestInfoInstance instance : requests) { jobServicesClient.cancelRequest(instance.getId()); KieServerSynchronization.waitForJobToFinish(jobServicesClient, instance.getId()); } }
public static RequestInfoInstance newRequestInfoInstance() { return RequestInfoInstance.builder() .id(1l) .businessKey("businessKey") .command("commandName") .data(singletonMap("key", "data")) .errors(new ErrorInfoInstanceList(singletonList(newErrorInfoInstance()))) .executions(10) .message("message") .retries(2) .scheduledDate(new Date()) .status("DONE") .responseData(singletonMap("responseKey", "responseData")) .build(); }
@Test @Category(Smoke.class) public void testScheduleAndRunJob() throws Exception { JobRequestInstance jobRequestInstance = createJobRequestInstance(); Long jobId = jobServicesClient.scheduleRequest(jobRequestInstance); assertNotNull(jobId); assertTrue( jobId.longValue() > 0); RequestInfoInstance jobRequest = jobServicesClient.getRequestById(jobId, false, false); assertNotNull(jobRequest); assertEquals(jobId, jobRequest.getId()); assertEquals(BUSINESS_KEY, jobRequest.getBusinessKey()); assertThat(jobRequest.getStatus(),anyOf( equalTo(STATUS.QUEUED.toString()), equalTo(STATUS.RUNNING.toString()), equalTo(STATUS.DONE.toString()))); assertEquals(PRINT_OUT_COMMAND, jobRequest.getCommandName()); KieServerSynchronization.waitForJobToFinish(jobServicesClient, jobId); jobRequest = jobServicesClient.getRequestById(jobId, false, false); assertNotNull(jobRequest); assertEquals(jobId, jobRequest.getId()); assertEquals(BUSINESS_KEY, jobRequest.getBusinessKey()); assertEquals(STATUS.DONE.toString(), jobRequest.getStatus()); assertEquals(PRINT_OUT_COMMAND, jobRequest.getCommandName()); }