/** * Copyright 2013 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.services.task; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.StringReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; import javax.naming.InitialContext; import javax.transaction.UserTransaction; import org.jbpm.services.task.impl.factories.TaskFactory; import org.jbpm.services.task.impl.model.TaskDataImpl; import org.junit.Ignore; import org.junit.Test; import org.kie.api.task.model.I18NText; 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.task.api.TaskModelProvider; import org.kie.internal.task.api.model.InternalI18NText; import org.kie.internal.task.api.model.InternalTask; public abstract class TaskQueryServiceBaseTest extends HumanTaskServicesBaseTest { // getTasksAssignedAsBusinessAdministrator(String userId, String language); @Test public void testGetTasksAssignedAsBusinessAdministratorWithUserLangNoTask() { List<TaskSummary> tasks = taskService.getTasksAssignedAsBusinessAdministrator("Bobba Fet", "en-UK"); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsBusinessAdministratorByStatusWithUserLangNoTask() { List<Status> allActiveStatus = new ArrayList<Status>(){{ this.add(Status.Created); this.add(Status.Ready); this.add(Status.Reserved); this.add(Status.InProgress); this.add(Status.Suspended); }}; List<TaskSummary> tasks = taskService.getTasksAssignedAsBusinessAdministratorByStatus("Bobba Fet", "en-UK",allActiveStatus); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsBusinessAdministratorWithUserLangOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { businessAdministrators = [new User('Bobba Fet')], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsBusinessAdministrator("Bobba Fet", "en-UK"); assertEquals(1, tasks.size()); } @Test public void testGetTasksAssignedAsBusinessAdministratorWithUserOfGroupLangOneTask() { // JBPM-4862 String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { businessAdministrators = [new Group('Crusaders')], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsBusinessAdministrator("Bobba Fet", "en-UK"); assertEquals(1, tasks.size()); } @Test public void testGetTasksAssignedAsBusinessAdministratorWithUserOfWrongGroupLangOneTask() { // JBPM-4862 String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { businessAdministrators = [new Group('Crusaders')], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsBusinessAdministrator("nocrusadaer", "en-UK"); assertEquals(0, tasks.size()); } // getTasksAssignedAsExcludedOwner(String userId, String language); @Test public void testGetTasksAssignedAsExcludedOwnerWithUserLangNoTask() { List<TaskSummary> tasks = taskService.getTasksAssignedAsExcludedOwner("Bobba Fet"); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsExcludedOwnerWithUserLangOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { excludedOwners = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsExcludedOwner("Bobba Fet"); assertEquals(1, tasks.size()); } @Test public void testGetTasksAssignedAsPotentialOwnerWithExcluded() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet'), new User('Darth Vader') ], excludedOwners = [new User('Darth Vader')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", "en-UK"); assertEquals(1, tasks.size()); tasks = taskService.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK"); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsPotentialOwnerWithMultipleExcluded() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet'), new User('Darth Vader'), new User('Luke Cage') ], excludedOwners = [new User('Darth Vader'), new User('Luke Cage')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", "en-UK"); assertEquals(1, tasks.size()); tasks = taskService.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK"); assertEquals(0, tasks.size()); tasks = taskService.getTasksAssignedAsPotentialOwner("Luke Cage", "en-UK"); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsPotentialOwnerWithUserGroupsSingleUserExcluded() { String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += " peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new Group('Crusaders'), ], excludedOwners = [new User('Luke Cage')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Luke Cage", "en-UK"); assertEquals(0, tasks.size()); tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", "en-UK"); assertEquals(1, tasks.size()); } @Test public void testGetTasksAssignedAsPotentialOwnerWithUserGroupsMultipleUsersExcluded() { String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += " peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new Group('Crusaders'), ], excludedOwners = [new User('Luke Cage'), new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Luke Cage", "en-UK"); assertEquals(0, tasks.size()); tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", "en-UK"); assertEquals(0, tasks.size()); } // getTasksAssignedAsPotentialOwner(String userId, String language) @Test public void testGetTasksAssignedAsPotentialOwnerWithUserLangNoTask() { List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", "en-UK"); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsPotentialOwnerWithUserLangOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", "en-UK"); assertEquals(1, tasks.size()); assertEquals("Bobba Fet", tasks.get(0).getActualOwnerId()); } // getTasksAssignedAsPotentialOwner(String userId, List<String> groupIds, String language) @Test public void testGetTasksAssignedAsPotentialOwnerWithUserGroupsLangNoTaskNoGroupIds() { List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", groupIds); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsPotentialOwnerWithUserGroupsLangOneTaskOneUser() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", groupIds); assertEquals(1, tasks.size()); assertEquals("Bobba Fet", tasks.get(0).getActualOwnerId()); } @Test public void testGetTasksAssignedAsPotentialOwnerWithUserGroupsLangOneTaskOneGroup() { String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet'), new Group('Crusaders'), ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", groupIds); assertEquals(1, tasks.size()); assertNull(tasks.get(0).getActualOwner()); assertNull(tasks.get(0).getActualOwnerId()); assertEquals(Status.Ready, tasks.get(0).getStatus()); } @Test public void testGetTasksAssignedAsPotentialOwnerWithUserGroupsLangStatus() { String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet'), new Group('Crusaders'), ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<Status> status = new ArrayList<Status>(); status.add(Status.Ready); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwnerByStatusByGroup("Bobba Fet", groupIds, status); assertEquals(1, tasks.size()); assertNull(tasks.get(0).getActualOwner()); assertNull(tasks.get(0).getActualOwnerId()); assertEquals(Status.Ready, tasks.get(0).getStatus()); } // getTasksAssignedAsPotentialOwner(String userId, List<String> groupIds, String language, int firstResult, int maxResults); @Test public void testGetTasksAssignedAsPotentialOwnerWithUserGroupsLangOffsetCountNoTask() { List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", groupIds, null, 0, 1); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsPotentialOwnerWithUserGroupsLangOffsetCountTwoTasksOneMaxResult() { // One potential owner, should go straight to state Reserved String str1 = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str1 += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str1 += "name = 'First task' })"; String str2 = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str2 += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str2 += "name = 'Second task' })"; Task task1 = TaskFactory.evalTask(new StringReader(str1)); taskService.addTask(task1, new HashMap<String, Object>()); Task task2 = TaskFactory.evalTask(new StringReader(str2)); taskService.addTask(task2, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", groupIds, null, 0, 1); assertEquals(1, tasks.size()); // FIXME tasks are returned in random order // assertEquals("First task", tasks.get(0).getName()); } @Test public void testGetTasksAssignedAsPotentialOwnerWithUserGroupsLangOffsetCountTwoTasksTwoMaxResults() { // One potential owner, should go straight to state Reserved String str1 = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str1 += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str1 += "name = 'First task' })"; String str2 = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str2 += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str2 += "name = 'Second task' })"; Task task1 = TaskFactory.evalTask(new StringReader(str1)); taskService.addTask(task1, new HashMap<String, Object>()); Task task2 = TaskFactory.evalTask(new StringReader(str2)); taskService.addTask(task2, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", groupIds, null, 0, 2); assertEquals(2, tasks.size()); // FIXME tasks are returned in random order // assertEquals("First task", tasks.get(0).getName()); // assertEquals("Second task", tasks.get(1).getName()); } @Test public void testGetTasksAssignedAsPotentialOwnerWithUserGroupsLangOffsetCountTwoTasksOneOffsetOneMaxResult() { // One potential owner, should go straight to state Reserved String str1 = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str1 += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str1 += "name = 'First task' })"; String str2 = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str2 += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str2 += "name = 'Second task' })"; Task task1 = TaskFactory.evalTask(new StringReader(str1)); taskService.addTask(task1, new HashMap<String, Object>()); Task task2 = TaskFactory.evalTask(new StringReader(str2)); taskService.addTask(task2, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", groupIds, null, 1, 1); // FIXME tasks are returned in random order // assertEquals(1, tasks.size()); // assertEquals("Second task", tasks.get(0).getName()); } // getTasksAssignedAsPotentialOwnerByStatus(String userId, List<Status> status, String language); @Test public void testGetTasksAssignedAsPotentialOwnerByStatusWithUserStatusLangNoTask() { List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Created); statuses.add(Status.Ready); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwnerByStatus("Bobba Fet", statuses, "en-UK"); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsPotentialOwnerByStatusWithUserStatusLangOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Created); statuses.add(Status.Ready); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwnerByStatus("Bobba Fet", statuses, "en-UK"); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsPotentialOwnerByStatusWithUserStatusLangOneTaskReserved() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Reserved); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwnerByStatus("Bobba Fet", statuses, "en-UK"); assertEquals(1, tasks.size()); assertEquals("Bobba Fet", tasks.get(0).getActualOwnerId()); } // getTasksAssignedAsPotentialOwnerByStatusByGroup(String userId, List<String> groupIds, List<Status> status, String language); @Test public void testGetTasksAssignedAsPotentialOwnerByStatusByGroupWithUserStatusLangNoTask() { List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Created); statuses.add(Status.Ready); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwnerByStatusByGroup("Bobba Fet", groupIds, statuses); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsPotentialOwnerByStatusByGroupWithUserStatusLangOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Created); statuses.add(Status.Ready); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwnerByStatusByGroup("Bobba Fet", groupIds, statuses); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsPotentialOwnerByStatusByGroupWithUserStatusLangOneTaskReserved() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Reserved); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwnerByStatusByGroup("Bobba Fet", groupIds, statuses); assertEquals(1, tasks.size()); assertEquals("Bobba Fet", tasks.get(0).getActualOwnerId()); } // getTasksAssignedAsRecipient(String userId, String language); @Test public void testGetTasksAssignedAsRecipientWithUserLangNoTask() { List<TaskSummary> tasks = taskService.getTasksAssignedAsRecipient("Bobba Fet"); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsRecipientWithUserLangOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { recipients = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name'})"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsRecipient("Bobba Fet"); assertEquals(1, tasks.size()); } // getTasksAssignedAsTaskInitiator(String userId, String language); @Test public void testGetTasksAssignedAsTaskInitiatorWithUserLangNoTask() { List<TaskSummary> tasks = taskService.getTasksAssignedAsTaskInitiator("Bobba Fet"); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsTaskInitiatorWithUserLangOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { taskInitiator = new User('Bobba Fet'),businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsTaskInitiator("Bobba Fet"); assertEquals(1, tasks.size()); } // getTasksAssignedAsTaskStakeholder(String userId, String language); @Test public void testGetTasksAssignedAsTaskStakeholderWithUserLangNoTask() { List<TaskSummary> tasks = taskService.getTasksAssignedAsTaskStakeholder("Bobba Fet"); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedAsTaskStakeholderWithUserLangOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { taskStakeholders = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsTaskStakeholder("Bobba Fet"); assertEquals(1, tasks.size()); } // getTasksAssignedByGroup(String groupId, String language) @Test public void testGetTasksAssignedByGroupWithGroupLangNoTask() { List<TaskSummary> tasks = taskService.getTasksAssignedByGroup("Crusaders"); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedByGroupWithGroupLangOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new Group('Crusaders') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedByGroup("Crusaders"); assertEquals(1, tasks.size()); } // getTasksAssignedByGroups(List<String> groupsId, String language); @Test public void testGetTasksAssignedByGroupsWithGroupsLangNoTask() { List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<TaskSummary> tasks = taskService.getTasksAssignedByGroups(groupIds); assertEquals(0, tasks.size()); } @Test public void testGetTasksAssignedByGroupsWithGroupsLangOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new Group('Crusaders') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<TaskSummary> tasks = taskService.getTasksAssignedByGroups(groupIds); assertEquals(1, tasks.size()); } // getTasksAssignedByGroupsByExpirationDate(List<String> groupIds, String language, Date expirationDate); // @Test // public void testGetTasksAssignedByGroupsByExpirationDateWithGroupsLangDateNoTask() { // List<String> groupIds = new ArrayList<String>(); // groupIds.add("Crusaders"); // Date date = new Date(); // List<TaskSummary> tasks = taskService.getTasksAssignedByGroupsByExpirationDate(groupIds, "en-UK", date); // assertEquals(0, tasks.size()); // } // @Test // public void testGetTasksAssignedByGroupsByExpirationDateWithUserStatusDateOneTaskReserved() { // // One potential owner, should go straight to state Reserved // String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { expirationTime = new Date( 10000000 ), } ), "; // str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new Group('Crusaders') ], }),"; // str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })"; // Task task = TaskFactory.evalTask(new StringReader(str)); // taskService.addTask(task, new HashMap<String, Object>()); // List<String> groupIds = new ArrayList<String>(); // groupIds.add("Crusaders"); // Date date = new Date(10000000); // List<TaskSummary> tasks = taskService.getTasksAssignedByGroupsByExpirationDate(groupIds, "en-UK", date); // assertEquals(1, tasks.size()); // //assertEquals("Bobba Fet", tasks.get(0).getActualOwner().getId()); // } // getTasksOwned(String userId); @Test public void testGetTasksOwnedWithUserNoTask() { List<TaskSummary> tasks = taskService.getTasksOwned("Bobba Fet", "en-UK"); assertEquals(0, tasks.size()); } @Test public void testGetTasksOwnedWithUserOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name'})"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksOwned("Bobba Fet", "en-UK"); assertEquals(1, tasks.size()); assertEquals("Bobba Fet", tasks.get(0).getActualOwnerId()); } // getTasksOwned(String userId, List<Status> status, String language); @Test public void testGetTasksOwnedWithUserStatusLangNoTask() { List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Created); statuses.add(Status.Ready); List<TaskSummary> tasks = taskService.getTasksOwnedByStatus("Darth Vader", statuses, "en-UK"); assertEquals(0, tasks.size()); } @Test public void testGetTasksOwnedWithUserStatusLangOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Reserved); List<TaskSummary> tasks = taskService.getTasksOwnedByStatus("Bobba Fet", statuses, "en-UK"); assertEquals(1, tasks.size()); assertEquals("Bobba Fet", tasks.get(0).getActualOwnerId()); } @Test public void testGetTasksOwnedWithUserStatusLangOneTaskCompleted() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Completed); List<TaskSummary> tasks = taskService.getTasksOwnedByStatus("Bobba Fet", statuses, "en-UK"); assertEquals(0, tasks.size()); } // getTasksOwnedByExpirationDate(String userId, List<Status> status, Date expirationDate); @Test public void testGetTasksOwnedByExpirationDateWithUserStatusDateNoTask() { List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Created); statuses.add(Status.Ready); Date date = new Date(); List<TaskSummary> tasks = taskService.getTasksOwnedByExpirationDate("Darth Vader", statuses, date); assertEquals(0, tasks.size()); } @Test public void testGetTasksOwnedByExpirationDateWithUserStatusDateOneTaskReserved() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { expirationTime = new Date( 10000000 ), } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Reserved); Date date = new Date(10000000); List<TaskSummary> tasks = taskService.getTasksOwnedByExpirationDate("Bobba Fet", statuses, date); assertEquals(1, tasks.size()); assertEquals("Bobba Fet", tasks.get(0).getActualOwnerId()); } @Test public void testGetTasksOwnedByExpirationDateWithUserStatusDateOneTaskCompleted() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { expirationTime = new Date( 10000000 ), } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Completed); Date date = new Date(10000000); List<TaskSummary> tasks = taskService.getTasksOwnedByExpirationDate("Bobba Fet", statuses, date); assertEquals(0, tasks.size()); } // getSubTasksAssignedAsPotentialOwner(long parentId, String userId, String language); @Ignore("not familiar with sub task concept; groupIds is not supplied to corresponding query") @Test public void testGetSubTasksAssignedAsPotentialOwnerWithParentUserLangNoTask() { List<TaskSummary> tasks = taskService.getSubTasksAssignedAsPotentialOwner(0, "Bobba Fet"); assertEquals(0, tasks.size()); } @Ignore("not familiar with sub task concept") @Test public void testGetSubTasksAssignedAsPotentialOwnerWithParentUserLangOneTask() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { taskStakeholders = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getSubTasksAssignedAsPotentialOwner(0, "Bobba Fet"); assertEquals(1, tasks.size()); } // getSubTasksByParent(long parentId); @Test public void testGetSubTasksByParentWithParentNoTask() { List<TaskSummary> tasks = taskService.getSubTasksByParent(0); assertEquals(0, tasks.size()); } // getPendingSubTasksByParent(long parentId); @Test public void testGetPendingSubTasksByParentWithParentNoTask() { int count = taskService.getPendingSubTasksByParent(0); assertEquals(0, count); } // Task getTaskByWorkItemId(long workItemId); @Test public void testGetTaskByWorkItemIdWithWorkItemNoTask() { Task task = taskService.getTaskByWorkItemId(0); assertEquals(null, task); } // Task getTaskInstanceById(long taskId); @Test public void testGetTaskInstanceByIdWithWorkItemNoTask() { Task task = taskService.getTaskByWorkItemId(0); assertEquals(null, task); } @Test public void testGetTasksAssignedByExpirationDateOptional() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.InProgress); statuses.add(Status.Reserved); statuses.add(Status.Created); List<TaskSummary> tasks = taskService.getTasksOwnedByExpirationDateOptional("Bobba Fet", statuses, new Date()); assertEquals(1, tasks.size()); } @Test public void testGetTasksByProcessInstanceId() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) {processInstanceId = 99 } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) {processInstanceId = 100 } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'Another name' })"; task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<Long> tasks = taskService.getTasksByProcessInstanceId(99L); assertEquals(1, tasks.size()); } @Test public void testGetTasksByStatusByProcessId() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) {processInstanceId = 99 } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) {processInstanceId = 100 } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'Another name' })"; task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Reserved); List<TaskSummary> tasks = taskService.getTasksByStatusByProcessInstanceId(99L, statuses, "en-UK"); assertEquals(1, tasks.size()); } @Test public void testGetTasksByStatusByProcessIdByTaskName() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) {processInstanceId = 99 } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); String otherProcessId = "org.process.task.other"; ((TaskDataImpl) task.getTaskData()).setProcessId(otherProcessId);; taskService.addTask(task, new HashMap<String, Object>()); str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) {processInstanceId = 100 } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'Another name' })"; task = TaskFactory.evalTask(new StringReader(str)); String processId = "org.process.task.test"; ((TaskDataImpl) task.getTaskData()).setProcessId(processId); taskService.addTask(task, new HashMap<String, Object>()); List<Status> statuses = new ArrayList<Status>(); statuses.add(Status.Reserved); List<TaskSummary> tasks = taskService.getTasksByStatusByProcessInstanceIdByTaskName(99L, statuses, "This is my task name"); assertEquals(1, tasks.size()); tasks = taskService.getTasksAssignedAsPotentialOwnerByProcessId("Bobba Fet", processId); assertEquals(1, tasks.size()); tasks = taskService.getTasksAssignedAsPotentialOwnerByProcessId("Administrator", processId); assertEquals(0, tasks.size()); tasks = taskService.getTasksAssignedAsPotentialOwnerByProcessId("Bobba Fet", otherProcessId); assertEquals(1, tasks.size()); tasks = taskService.getTasksAssignedAsPotentialOwnerByProcessId("Bobba Fet", "bad.process.id"); assertEquals(0, tasks.size()); } @Test public void testGetTasksOwnedByExpirationDateBeforeSpecifiedDateNoTask() { List<Status> statuses = new ArrayList<Status>(); statuses.addAll(Arrays.asList(new Status[] {Status.Created, Status.Ready, Status.Reserved, Status.InProgress})); List<TaskSummary> tasks = taskService.getTasksOwnedByExpirationDateBeforeSpecifiedDate("Bobba Fet", statuses, new Date(100000005)); assertEquals("Expecting empty list when no task available!", 0, tasks.size()); } @Test public void testGetTasksOwnedByExpirationDateBeforeSpecifiedDate() { // should be included in result String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) {" ; str += "expirationTime = new java.text.SimpleDateFormat(\"yyyy-MM-dd\").parse(\"2011-10-15\") } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); // should be included in result str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) {"; str += "expirationTime = new java.text.SimpleDateFormat(\"yyyy-MM-dd\").parse(\"2013-04-15\") } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); // should not be included in result -> date is not before, it equals str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) {"; str += "expirationTime = new java.text.SimpleDateFormat(\"yyyy-MM-dd\").parse(\"2013-04-16\") } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); // should not be included in result -> date is after not before str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) {"; str += "expirationTime = new java.text.SimpleDateFormat(\"yyyy-MM-dd\").parse(\"2013-08-16\") } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); // should not be included in result -> userId is different str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) {"; str += "expirationTime = new java.text.SimpleDateFormat(\"yyyy-MM-dd\").parse(\"2013-01-15\") } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Darth Vader')],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); Date dateSpecified = createDate("2013-04-16"); List<Status> statuses = new ArrayList<Status>(); statuses.addAll(Arrays.asList(new Status[] {Status.Created, Status.Ready, Status.Reserved, Status.InProgress})); List<TaskSummary> tasks = taskService.getTasksOwnedByExpirationDateBeforeSpecifiedDate("Bobba Fet", statuses, dateSpecified); assertEquals(2, tasks.size()); for(TaskSummary taskSummary : tasks) { assertTrue("Expected user 'Bobba Fet'!", taskSummary.getActualOwnerId().contains("Bobba Fet")); // the expiration date should be before the specified date assertTrue("Expiration date needs to be before the specified date!", taskSummary.getExpirationTime().compareTo(dateSpecified) < 0); } } @Test public void testModifyTaskName() { // JBPM-4148 String taskName = "This is my task name"; String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = '"+taskName+"' })"; Task task = TaskFactory.evalTask(new StringReader(str)); List<I18NText> names = new ArrayList<I18NText>(); I18NText text = TaskModelProvider.getFactory().newI18NText(); ((InternalI18NText) text).setLanguage("en-UK"); ((InternalI18NText) text).setText(taskName); names.add(text); ((InternalTask)task).setNames(names); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", "en-UK"); assertEquals(1, tasks.size()); assertEquals(taskName, tasks.get(0).getName()); Task newTask = taskService.getTaskById(tasks.get(0).getId()); List<I18NText> updatedNames = new ArrayList<I18NText>(); I18NText updatedName = TaskModelProvider.getFactory().newI18NText(); ((InternalI18NText) updatedName).setLanguage(newTask.getNames().get(0).getLanguage()); ((InternalI18NText) updatedName).setText("New task name"); updatedNames.add(updatedName); taskService.setTaskNames(newTask.getId(), updatedNames); List<TaskSummary> newTasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", "en-UK"); assertEquals(1, newTasks.size()); newTask = taskService.getTaskById(newTasks.get(0).getId()); assertEquals("New task name", newTask.getNames().get(0).getText()); } @Test public void testModifyTaskNameWithinTX() throws Exception{ // JBPM-4148 String taskName = "This is my task name"; String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = '"+taskName+"' })"; Task task = TaskFactory.evalTask(new StringReader(str)); List<I18NText> names = new ArrayList<I18NText>(); I18NText text = TaskModelProvider.getFactory().newI18NText(); ((InternalI18NText) text).setLanguage("en-UK"); ((InternalI18NText) text).setText(taskName); names.add(text); ((InternalTask)task).setNames(names); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", "en-UK"); assertEquals(1, tasks.size()); assertEquals(taskName, tasks.get(0).getName()); UserTransaction ut = InitialContext.doLookup("java:comp/UserTransaction"); ut.begin(); Task newTask = taskService.getTaskById(tasks.get(0).getId()); ((InternalI18NText)newTask.getNames().get(0)).setText("New task name"); ut.commit(); List<TaskSummary> newTasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", "en-UK"); assertEquals(1, newTasks.size()); newTask = taskService.getTaskById(newTasks.get(0).getId()); assertEquals("New task name", newTask.getNames().get(0).getText()); } @Test public void testGetTasksAssignedAsPotentialOwnerSkipable() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) {skipable=true } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", groupIds); assertEquals(1, tasks.size()); assertEquals("Bobba Fet", tasks.get(0).getActualOwnerId()); assertEquals(true, tasks.get(0).isSkipable()); } @Test public void testGetTasksAssignedAsPotentialOwnerCheckSubject() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { subject = 'test subject', priority = 55, taskData = (with( new TaskData()) {skipable=true } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", groupIds); assertEquals(1, tasks.size()); assertEquals("Bobba Fet", tasks.get(0).getActualOwnerId()); assertEquals(true, tasks.get(0).isSkipable()); assertEquals("test subject", tasks.get(0).getSubject()); } }