/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package org.jbpm.remote.ejb.test.task; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.assertj.core.api.Assertions; import org.jbpm.remote.ejb.test.ProcessDefinitions; import org.jbpm.remote.ejb.test.RemoteEjbTest; import org.jbpm.services.api.model.UserTaskInstanceDesc; import org.junit.Test; import org.kie.api.task.model.Status; import org.kie.api.task.model.Task; import org.kie.api.task.model.TaskSummary; import org.kie.internal.query.QueryFilter; import org.kie.internal.task.api.model.InternalTask; public class EGetTaskTest extends RemoteEjbTest { @Test public void testGetTaskInstanceInfo() { Long pid = ejb.startProcess(ProcessDefinitions.HUMAN_TASK); long taskId = ejb.getTasksByProcessInstanceId(pid).get(0); UserTaskInstanceDesc task = ejb.getTaskById(taskId); System.out.println(task.getActualOwner() + "," + task.getTaskId() + "," + task.getStatus()); Assertions.assertThat(userId).isEqualTo(task.getActualOwner()); Assertions.assertThat(Status.Reserved.name()).isEqualTo(task.getStatus()); } @Test public void testTaskQuery() { Long pid = ejb.startProcess(ProcessDefinitions.HUMAN_TASK); List<TaskSummary> taskList = ejb.getTasksOwned(userId, new QueryFilter(0, 5)); Assertions.assertThat(taskList.size()).isLessThanOrEqualTo(5); TaskSummary task = null; for (TaskSummary potentialTask : taskList) { System.out.println("id=" + potentialTask.getProcessInstanceId()); if (potentialTask.getProcessInstanceId() == pid) { task = potentialTask; } } Assertions.assertThat(task).isNotNull(); Assertions.assertThat(task.getName()).isEqualTo("Hello"); Assertions.assertThat(task.getStatus()).isEqualTo(Status.Reserved); Assertions.assertThat(task.getActualOwnerId()).isEqualTo(userId); } @Test() public void testTaskQueryWithPageSize() { startProcess(ProcessDefinitions.HUMAN_TASK, 5); List<TaskSummary> ts = ejb.getTasksAssignedAsPotentialOwner(userId, new QueryFilter(0, 2)); Assertions.assertThat(ts.size()).isEqualTo(2); } @Test public void testTaskQueryWithStatusInProgress() { Long pid = ejb.startProcess(ProcessDefinitions.HUMAN_TASK); long taskId = ejb.getTasksByProcessInstanceId(pid).get(0); ejb.start(taskId, userId); List<Status> statusList = new ArrayList<>(); statusList.add(Status.InProgress); List<TaskSummary> summaryList = ejb.getTasksByStatusByProcessInstanceId(pid, statusList); Assertions.assertThat(summaryList.size()).isEqualTo(1); } @Test public void testFormName() { Map<String, Object> params = new HashMap<>(); params.put("userName", "johndoe"); Long pid = ejb.startProcess(ProcessDefinitions.HUMAN_TASK_WITH_FORM, params); List<Status> statusList = new ArrayList<>(); statusList.add(Status.Reserved); List<TaskSummary> summaryList = ejb.getTasksByStatusByProcessInstanceId(pid, statusList, new QueryFilter(0, 1)); Assertions.assertThat(summaryList).isNotNull().isNotEmpty(); TaskSummary summary = summaryList.get(0); Task task = ejb.getTask(summary.getId()); String formName = ((InternalTask) task).getFormName(); Assertions.assertThat(formName).as("Expected different form name.").isEqualTo("UserNameInputTask"); } }