@Test public void receivesDecisionTask() throws Exception { result.expectedMinimumMessageCount(1); result.expectedMessagesMatches(new Predicate() { public boolean matches(Exchange exchange) { return exchange.getIn().getHeader(SWFConstants.ACTION).equals(SWFConstants.EXECUTE_ACTION) && exchange.getIn().getBody(Object[].class)[0].equals("test"); } }); ActivityTask activityTask = new ActivityTask(); activityTask.setTaskToken("token"); activityTask.setInput("[\"[Ljava.lang.Object;\",[\"test\"]]"); when(amazonSWClient.pollForActivityTask(any(PollForActivityTaskRequest.class))).thenReturn(activityTask); context.start(); assertMockEndpointsSatisfied(); verify(amazonSWClient, atLeastOnce()).pollForActivityTask(any(PollForActivityTaskRequest.class)); }
public static PollForActivityTaskRequest createPollForActivityTask(Domain domain, TaskListName taskList, Name name) { return new PollForActivityTaskRequest() .withDomain(domain.value()) .withTaskList(new TaskList() .withName(taskList.value())) .withIdentity(name.value()); }
public static void pollAndExecute() { while (!terminate) { System.out.println("Polling for an activity task from the tasklist '" + HelloTypes.TASKLIST + "' in the domain '" + HelloTypes.DOMAIN + "'."); ActivityTask task = swf.pollForActivityTask(new PollForActivityTaskRequest() .withDomain(HelloTypes.DOMAIN) .withTaskList(new TaskList().withName(HelloTypes.TASKLIST))); String taskToken = task.getTaskToken(); if (taskToken != null) { String result = null; Throwable error = null; try { System.out.println("Executing the activity task with input '" + task.getInput() + "'."); result = executeActivityTask(task.getInput()); } catch (Throwable th) { error = th; } if (error == null) { System.out.println("The activity task succeeded with result '" + result + "'."); swf.respondActivityTaskCompleted( new RespondActivityTaskCompletedRequest() .withTaskToken(taskToken) .withResult(result)); } else { System.out.println("The activity task failed with the error '" + error.getClass().getSimpleName() + "'."); swf.respondActivityTaskFailed( new RespondActivityTaskFailedRequest() .withTaskToken(taskToken) .withReason(error.getClass().getSimpleName()) .withDetails(error.getMessage())); } } } }