/* 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.activiti.rest.api.runtime; import org.activiti.engine.task.Task; import org.activiti.rest.service.BaseSpringRestTestCase; import org.activiti.rest.service.api.RestUrls; import org.apache.http.HttpStatus; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import com.fasterxml.jackson.databind.JsonNode; /** * Test for all REST-operations related to sub tasks. * * @author Tijs Rademakers */ public class TaskSubTaskCollectionResourceTest extends BaseSpringRestTestCase { /** * Test getting all sub tasks. * GET runtime/tasks/{taskId}/subtasks */ public void testGetSubTasks() throws Exception { Task parentTask = taskService.newTask(); parentTask.setName("parent task"); taskService.saveTask(parentTask); Task subTask = taskService.newTask(); subTask.setName("sub task 1"); subTask.setParentTaskId(parentTask.getId()); taskService.saveTask(subTask); Task subTask2 = taskService.newTask(); subTask2.setName("sub task 2"); subTask2.setParentTaskId(parentTask.getId()); taskService.saveTask(subTask2); // Request all sub tasks CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + RestUrls.createRelativeResourceUrl(RestUrls.URL_TASK_SUBTASKS_COLLECTION, parentTask.getId())), HttpStatus.SC_OK); JsonNode responseNode = objectMapper.readTree(response.getEntity().getContent()); closeResponse(response); assertNotNull(responseNode); assertTrue(responseNode.isArray()); assertEquals(2, responseNode.size()); boolean foundSubtask1 = false; boolean foundSubtask2 = false; for (int i=0; i< responseNode.size(); i++) { JsonNode var = responseNode.get(i); if ("sub task 1".equals(var.get("name").asText())) { foundSubtask1 = true; assertEquals(subTask.getId(), var.get("id").asText()); } else if ("sub task 2".equals(var.get("name").asText())) { foundSubtask2 = true; assertEquals(subTask2.getId(), var.get("id").asText()); } } assertTrue(foundSubtask1); assertTrue(foundSubtask2); taskService.deleteTask(parentTask.getId()); taskService.deleteTask(subTask.getId()); taskService.deleteTask(subTask2.getId()); historyService.deleteHistoricTaskInstance(parentTask.getId()); historyService.deleteHistoricTaskInstance(subTask.getId()); historyService.deleteHistoricTaskInstance(subTask2.getId()); } }