diff --git a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/assignments/global/TestAssignmentApprovalGlobal.java b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/assignments/global/TestAssignmentApprovalGlobal.java
index 20871a6dd33..bf7f28441e5 100644
--- a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/assignments/global/TestAssignmentApprovalGlobal.java
+++ b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/assignments/global/TestAssignmentApprovalGlobal.java
@@ -18,10 +18,13 @@
import com.evolveum.midpoint.prism.delta.ItemDelta;
import com.evolveum.midpoint.prism.delta.builder.DeltaBuilder;
+import com.evolveum.midpoint.prism.marshaller.QueryConvertor;
+import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.wf.impl.policy.assignments.AbstractTestAssignmentApproval;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
+import com.evolveum.prism.xml.ns._public.types_3.ModificationTypeType;
import javax.xml.namespace.QName;
import java.util.List;
@@ -66,24 +69,56 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti
/*
-
+
+ add
+
approver
+
+ UserType
+
+
+ RoleType
+
+
*/
+ /*
+ * Role4 has no approvers. By default, no workflow process(es) are created for roles that have no approvers.
+ * But if we would include Role4 in the global policy rule, a workflow process would be created (even if it
+ * would be automatically approved/rejected, based on setting). But the tests expect there's no process for this role.
+ * So we have to exclude it from the global policy rule.
+ */
+
+
GlobalPolicyRuleType rule = new GlobalPolicyRuleType(prismContext);
PolicyConstraintsType constraints = new PolicyConstraintsType(prismContext);
- constraints.getAssignment().add(new AssignmentPolicyConstraintType(prismContext));
+ AssignmentPolicyConstraintType assignmentConstraint = new AssignmentPolicyConstraintType(prismContext);
+ assignmentConstraint.getOperation().add(ModificationTypeType.ADD);
+ constraints.getAssignment().add(assignmentConstraint);
rule.setPolicyConstraints(constraints);
PolicyActionsType actions = new PolicyActionsType(prismContext);
ApprovalPolicyActionType approvalAction = new ApprovalPolicyActionType(prismContext);
- approvalAction.getApproverRelation().add(new QName("approverXX")); // intentionally wrong (tests should fail with this setting)
+ approvalAction.getApproverRelation().add(new QName("approver"));
actions.setApproval(approvalAction);
+ ObjectSelectorType users = new ObjectSelectorType(prismContext);
+ users.setType(UserType.COMPLEX_TYPE);
+ rule.setFocusSelector(users);
+ ObjectSelectorType roles = new ObjectSelectorType(prismContext);
+ roles.setType(RoleType.COMPLEX_TYPE);
+ roles.setFilter(
+ QueryConvertor.createSearchFilterType(
+ QueryBuilder.queryFor(RoleType.class, prismContext)
+ .not().item(RoleType.F_NAME).eqPoly("Role4")
+ .buildFilter(),
+ prismContext)
+ );
+ rule.setTargetSelector(roles);
rule.setPolicyActions(actions);
List> deltas =
diff --git a/model/workflow-impl/testng-integration.xml b/model/workflow-impl/testng-integration.xml
index 866815b2254..8535c3b9454 100644
--- a/model/workflow-impl/testng-integration.xml
+++ b/model/workflow-impl/testng-integration.xml
@@ -44,7 +44,7 @@
-
+