@Test
public void testDelegateIsAllowedExcludedOwnerBusinessAdministrator() {

	User testUser = new UserImpl("BB8");
	List<String> testGroupIds = new ArrayList<>();
	testGroupIds.add("testGroup1");
	// Create the task.
	String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { status = Status.Ready } ), ";
	str += "peopleAssignments = (with ( new PeopleAssignments() ) { excludedOwners = [new User('BB8')], potentialOwners = [new Group('testGroup1')], businessAdministrators = [new User('BB8')]}),";
	str += "name =  'This is my task name' })";
	InternalTask task = (InternalTask) TaskFactory.evalTask(new StringReader(str));
	/*
	 * Test whether we can delegate the task. Because the user is a BusinessAdministrator, this should be possible, even if the owner is
	 * in the ExcludedOwners list.
	 */
	Operation operation = Operation.Delegate;
	List<OperationCommand> operationCommands = new ArrayList<>();
	OperationCommand operationCommand = new OperationCommand();
	// Set the list of user-types (e.g. PotentialOwners, BusinessAdministrators, etc.) that are allowed to execute this operation.
	List<Allowed> allowed = new ArrayList<>();
	// We should only allow PotentialOwner in this test (we're claiming a task).
	allowed.add(Allowed.PotentialOwner);
	allowed.add(Allowed.BusinessAdministrator);
	operationCommand.setAllowed(allowed);
	// Set the status that is required to be able to execute this operation.
	List<Status> status = new ArrayList<>();
	// Before we claim a task, the status is "Created".
	status.add(Status.Ready);
	operationCommand.setStatus(status);
	operationCommands.add(operationCommand);
	// We don't need "targetEntity" and "entities" for this test.
	MVELLifeCycleManager taskLcManager = new MVELLifeCycleManager();
	taskLcManager.evalCommand(operation, operationCommands, task, testUser, null, testGroupIds, null);
}