@Override public RequestContext createContext() { if (this.commandService instanceof SelfExecutionCommandService) { return new TaskContext(); } return new TaskContext(commandService.createContext(), environment, taskEventSupport); }
@SuppressWarnings({ "unchecked", "rawtypes" }) public <T> T execute(Command<T> command) { return (T) ((TaskCommand) command).execute( new TaskContext() ); }
@Override public RequestContext execute(Executable executable, RequestContext context) { for (Batch batch : ( (InternalExecutable) executable ).getBatches()) { for (Command command : batch.getCommands()) { if (command instanceof TaskCommand) { TaskContext ctx = new TaskContext(context, environment, taskEventSupport); addUserIdToContext((TaskCommand<?>) command, ctx); Object result = ((ExecutableCommand) command).execute( ctx ); context.set("Result", result); } else { throw new IllegalArgumentException("Task service can only execute task commands"); } } } return context; }
@Test public void testGetUserTaskLoad() { // Prepare and claim 6 tasks by The Emperor for (int x = 0; x < 6; x++) { TaskFluent task = new TaskFluent() .setName("CalculatorTask1") .addPotentialUser(DARTH_VADER) .setDeploymentID(DEPLOYMENT_ID) .setProcessId(PROCESS_ID) .setAdminUser(ADMIN); createTaskWithoutAssert(task); } User userVader = new UserImpl(DARTH_VADER); TaskContext ctx = new TaskContext(); EntityManager em = emf.createEntityManager(); ctx.setPersistenceContext(new JPATaskPersistenceContext(em)); LoadCalculator calculator = new TotalCompletionTimeLoadCalculator(); Double userTaskLoad = calculator.getUserTaskLoad(userVader, ctx).getCalculatedLoad(); Double userTaskLoads = calculator.getUserTaskLoads(Collections.singletonList(userVader), ctx).iterator().next().getCalculatedLoad(); Assertions.assertThat(userTaskLoad).isGreaterThanOrEqualTo(840.0); Assertions.assertThat(userTaskLoads).isEqualTo(userTaskLoad); em.close(); }
@Test public void testGetUserTaskLoad() { // Prepare and claim 6 tasks by The Emperor for (int x = 0; x < 6; x++) { TaskFluent task = new TaskFluent() .setName("CalculatorTask1") .addPotentialUser(DARTH_VADER) .setDeploymentID(DEPLOYMENT_ID) .setProcessId(PROCESS_ID) .setAdminUser(ADMIN); createTaskWithoutAssert(task); } User userVader = new UserImpl(DARTH_VADER); TaskContext ctx = new TaskContext(); EntityManager em = emf.createEntityManager(); ctx.setPersistenceContext(new JPATaskPersistenceContext(em)); LoadCalculator calculator = new TotalCompletionTimeLoadCalculator(); Double userTaskLoad = calculator.getUserTaskLoad(userVader, ctx).getCalculatedLoad(); Double userTaskLoads = calculator.getUserTaskLoads(Collections.singletonList(userVader), ctx).iterator().next().getCalculatedLoad(); Assertions.assertThat(userTaskLoad).isGreaterThanOrEqualTo(840.0); Assertions.assertThat(userTaskLoads).isEqualTo(userTaskLoad); em.close(); }