From 1b797320c8ae16e2cf4b483a69a6b3b970b98ca3 Mon Sep 17 00:00:00 2001 From: Radovan Semancik Date: Fri, 19 Feb 2016 14:53:39 +0100 Subject: [PATCH] Extended TestEntitlement to multi-intent association. --- .../model/intest/TestEntitlements.java | 210 +++++++++++++++++- .../common/resource-dummy-orange.xml | 42 +++- .../resources/entitlements/role-brute.xml | 80 +++++++ .../test/resources/entitlements/role-thug.xml | 88 ++++++++ 4 files changed, 417 insertions(+), 3 deletions(-) create mode 100644 model/model-intest/src/test/resources/entitlements/role-brute.xml create mode 100644 model/model-intest/src/test/resources/entitlements/role-thug.xml diff --git a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestEntitlements.java b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestEntitlements.java index 9ca43637726..aaf4176b66d 100644 --- a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestEntitlements.java +++ b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestEntitlements.java @@ -92,6 +92,16 @@ public class TestEntitlements extends AbstractInitializedModelIntegrationTest { public static final File ROLE_MAPMAKER_FILE = new File(TEST_DIR, "role-mapmaker.xml"); public static final String ROLE_MAPMAKER_OID = "10000000-0000-0000-0000-000000001605"; + public static final File ROLE_BRUTE_FILE = new File(TEST_DIR, "role-brute.xml"); + public static final String ROLE_BRUTE_OID = "10000000-0000-0000-0000-000000001606"; + public static final String ROLE_BRUTE_NAME = "Brute"; + public static final String GROUP_BRUTE_NAME = "brute"; + + public static final File ROLE_THUG_FILE = new File(TEST_DIR, "role-thug.xml"); + public static final String ROLE_THUG_OID = "10000000-0000-0000-0000-000000001607"; + public static final String ROLE_THUG_NAME = "Thug"; + public static final String GROUP_THUG_NAME = "thug"; + public static final File SHADOW_GROUP_DUMMY_SWASHBUCKLERS_FILE = new File(TEST_DIR, "group-swashbucklers.xml"); public static final String SHADOW_GROUP_DUMMY_SWASHBUCKLERS_OID = "20000000-0000-0000-3333-000000000001"; public static final String GROUP_DUMMY_SWASHBUCKLERS_NAME = "swashbucklers"; @@ -374,6 +384,62 @@ public void test300AddRoleWimp() throws Exception { assertNoGroupMembers(dummyGroupAtOrange); } + @Test + public void test302AddRoleBrute() throws Exception { + final String TEST_NAME = "test302AddRoleBrute"; + TestUtil.displayTestTile(this, TEST_NAME); + + Task task = taskManager.createTaskInstance(TestEntitlements.class.getName() + "." + TEST_NAME); + OperationResult result = task.getResult(); + + // WHEN + TestUtil.displayWhen(TEST_NAME); + addObject(ROLE_BRUTE_FILE, task, result); + + // THEN + TestUtil.displayThen(TEST_NAME); + result.computeStatus(); + TestUtil.assertSuccess(result); + + DummyGroup dummyGroupBrute = dummyResourceOrange.getGroupByName(GROUP_BRUTE_NAME); + assertNotNull("No group on orange dummy resource", dummyGroupBrute); + display("Group", dummyGroupBrute); + assertNoGroupMembers(dummyGroupBrute); + + DummyGroup dummyGroupBruteWannabe = dummyResourceOrange.getGroupByName(GROUP_BRUTE_NAME + "-wannabe"); + assertNotNull("No wannabe group on orange dummy resource", dummyGroupBruteWannabe); + display("Wannabe Group", dummyGroupBruteWannabe); + assertNoGroupMembers(dummyGroupBruteWannabe); + } + + @Test + public void test304AddRoleThug() throws Exception { + final String TEST_NAME = "test304AddRoleThug"; + TestUtil.displayTestTile(this, TEST_NAME); + + Task task = taskManager.createTaskInstance(TestEntitlements.class.getName() + "." + TEST_NAME); + OperationResult result = task.getResult(); + + // WHEN + TestUtil.displayWhen(TEST_NAME); + addObject(ROLE_THUG_FILE, task, result); + + // THEN + TestUtil.displayThen(TEST_NAME); + result.computeStatus(); + TestUtil.assertSuccess(result); + + DummyGroup dummyGroupThug = dummyResourceOrange.getGroupByName(GROUP_THUG_NAME); + assertNotNull("No group on orange dummy resource", dummyGroupThug); + display("Group", dummyGroupThug); + assertNoGroupMembers(dummyGroupThug); + + DummyGroup dummyGroupThugWannabe = dummyResourceOrange.getGroupByName(GROUP_THUG_NAME + "-wannabe"); + assertNotNull("No wannabe group on orange dummy resource", dummyGroupThugWannabe); + display("Wannabe Group", dummyGroupThugWannabe); + assertNoGroupMembers(dummyGroupThugWannabe); + } + @Test public void test310AssignRoleWimpToLargo() throws Exception { final String TEST_NAME = "test310AssignRoleWimpToLargo"; @@ -406,13 +472,153 @@ public void test310AssignRoleWimpToLargo() throws Exception { assertGroupMember(dummyGroupAtOrange, USER_LARGO_USERNAME); } + @Test + public void test312AssignRoleBruteToLargo() throws Exception { + final String TEST_NAME = "test312AssignRoleBruteToLargo"; + TestUtil.displayTestTile(this, TEST_NAME); + + Task task = taskManager.createTaskInstance(TestEntitlements.class.getName() + "." + TEST_NAME); + OperationResult result = task.getResult(); + + // WHEN + TestUtil.displayWhen(TEST_NAME); + assignRole(USER_LARGO_OID, ROLE_BRUTE_OID, task, result); + + // THEN + TestUtil.displayThen(TEST_NAME); + result.computeStatus(); + TestUtil.assertSuccess(result); + + DummyGroup dummyGroupBrute = dummyResourceOrange.getGroupByName(GROUP_BRUTE_NAME); + assertNotNull("No group on orange dummy resource", dummyGroupBrute); + display("Group", dummyGroupBrute); +// assertEquals("Wrong group description", GROUP_DUMMY_LANDLUBERS_DESCRIPTION, +// dummyGroup.getAttributeValue(DummyResourceContoller.DUMMY_GROUP_ATTRIBUTE_DESCRIPTION)); + assertGroupMember(dummyGroupBrute, USER_LARGO_USERNAME); + + DummyGroup dummyGroupBruteWannabe = dummyResourceOrange.getGroupByName(GROUP_BRUTE_NAME + "-wannabe"); + assertNotNull("No wannabe group on orange dummy resource", dummyGroupBruteWannabe); + display("Wannabe Group", dummyGroupBruteWannabe); + assertGroupMember(dummyGroupBruteWannabe, USER_LARGO_USERNAME); + } + + @Test + public void test313UnAssignRoleBruteFromLargo() throws Exception { + final String TEST_NAME = "test313UnAssignRoleBruteFromLargo"; + TestUtil.displayTestTile(this, TEST_NAME); + + Task task = taskManager.createTaskInstance(TestEntitlements.class.getName() + "." + TEST_NAME); + OperationResult result = task.getResult(); + + // WHEN + TestUtil.displayWhen(TEST_NAME); + unassignRole(USER_LARGO_OID, ROLE_BRUTE_OID, task, result); + + // THEN + TestUtil.displayThen(TEST_NAME); + result.computeStatus(); + TestUtil.assertSuccess(result); + + DummyGroup dummyGroupBrute = dummyResourceOrange.getGroupByName(GROUP_BRUTE_NAME); + assertNotNull("No group on orange dummy resource", dummyGroupBrute); + display("Group", dummyGroupBrute); + assertNoGroupMembers(dummyGroupBrute); + + DummyGroup dummyGroupBruteWannabe = dummyResourceOrange.getGroupByName(GROUP_BRUTE_NAME + "-wannabe"); + assertNotNull("No wannabe group on orange dummy resource", dummyGroupBruteWannabe); + display("Wannabe Group", dummyGroupBruteWannabe); + assertNoGroupMembers(dummyGroupBruteWannabe); + + DummyGroup dummyGroup = dummyResource.getGroupByName(GROUP_DUMMY_WIMPS_NAME); + assertNotNull("No group on dummy resource", dummyGroup); + display("Group", dummyGroup); +// assertEquals("Wrong group description", GROUP_DUMMY_LANDLUBERS_DESCRIPTION, +// dummyGroup.getAttributeValue(DummyResourceContoller.DUMMY_GROUP_ATTRIBUTE_DESCRIPTION)); + assertGroupMember(dummyGroup, USER_LARGO_USERNAME); + + DummyGroup dummyGroupAtOrange = dummyResourceOrange.getGroupByName(GROUP_DUMMY_WIMPS_NAME); + assertNotNull("No group on orange dummy resource", dummyGroupAtOrange); + display("Group @orange", dummyGroupAtOrange); + assertGroupMember(dummyGroupAtOrange, USER_LARGO_USERNAME); + } + + @Test + public void test314AssignRoleThugToLargo() throws Exception { + final String TEST_NAME = "test314AssignRoleThugToLargo"; + TestUtil.displayTestTile(this, TEST_NAME); + + Task task = taskManager.createTaskInstance(TestEntitlements.class.getName() + "." + TEST_NAME); + OperationResult result = task.getResult(); + + // WHEN + TestUtil.displayWhen(TEST_NAME); + assignRole(USER_LARGO_OID, ROLE_THUG_OID, task, result); + + // THEN + TestUtil.displayThen(TEST_NAME); + result.computeStatus(); + TestUtil.assertSuccess(result); + + DummyGroup dummyGroupThug = dummyResourceOrange.getGroupByName(GROUP_THUG_NAME); + assertNotNull("No group on orange dummy resource", dummyGroupThug); + display("Group", dummyGroupThug); +// assertEquals("Wrong group description", GROUP_DUMMY_LANDLUBERS_DESCRIPTION, +// dummyGroup.getAttributeValue(DummyResourceContoller.DUMMY_GROUP_ATTRIBUTE_DESCRIPTION)); + assertGroupMember(dummyGroupThug, USER_LARGO_USERNAME); + + DummyGroup dummyGroupThugWannabe = dummyResourceOrange.getGroupByName(GROUP_THUG_NAME + "-wannabe"); + assertNotNull("No wannabe group on orange dummy resource", dummyGroupThugWannabe); + display("Wannabe Group", dummyGroupThugWannabe); + assertGroupMember(dummyGroupThugWannabe, USER_LARGO_USERNAME); + } + + @Test + public void test315UnAssignRoleThugFromLargo() throws Exception { + final String TEST_NAME = "test315UnAssignRoleThugFromLargo"; + TestUtil.displayTestTile(this, TEST_NAME); + + Task task = taskManager.createTaskInstance(TestEntitlements.class.getName() + "." + TEST_NAME); + OperationResult result = task.getResult(); + + // WHEN + TestUtil.displayWhen(TEST_NAME); + unassignRole(USER_LARGO_OID, ROLE_THUG_OID, task, result); + + // THEN + TestUtil.displayThen(TEST_NAME); + result.computeStatus(); + TestUtil.assertSuccess(result); + + DummyGroup dummyGroupThug = dummyResourceOrange.getGroupByName(GROUP_THUG_NAME); + assertNotNull("No group on orange dummy resource", dummyGroupThug); + display("Group", dummyGroupThug); + assertNoGroupMembers(dummyGroupThug); + + DummyGroup dummyGroupThugWannabe = dummyResourceOrange.getGroupByName(GROUP_THUG_NAME + "-wannabe"); + assertNotNull("No wannabe group on orange dummy resource", dummyGroupThugWannabe); + display("Wannabe Group", dummyGroupThugWannabe); + assertNoGroupMembers(dummyGroupThugWannabe); + + DummyGroup dummyGroup = dummyResource.getGroupByName(GROUP_DUMMY_WIMPS_NAME); + assertNotNull("No group on dummy resource", dummyGroup); + display("Group", dummyGroup); +// assertEquals("Wrong group description", GROUP_DUMMY_LANDLUBERS_DESCRIPTION, +// dummyGroup.getAttributeValue(DummyResourceContoller.DUMMY_GROUP_ATTRIBUTE_DESCRIPTION)); + assertGroupMember(dummyGroup, USER_LARGO_USERNAME); + + DummyGroup dummyGroupAtOrange = dummyResourceOrange.getGroupByName(GROUP_DUMMY_WIMPS_NAME); + assertNotNull("No group on orange dummy resource", dummyGroupAtOrange); + display("Group @orange", dummyGroupAtOrange); + assertGroupMember(dummyGroupAtOrange, USER_LARGO_USERNAME); + } + /** * after renaming user largo it should be also propagated to the associations * @throws Exception */ @Test - public void test311RenameLargo() throws Exception { - final String TEST_NAME = "test311RenameLargo"; + public void test317RenameLargo() throws Exception { + final String TEST_NAME = "test317RenameLargo"; TestUtil.displayTestTile(this, TEST_NAME); Task task = taskManager.createTaskInstance(TestEntitlements.class.getName() + "." + TEST_NAME); diff --git a/model/model-intest/src/test/resources/common/resource-dummy-orange.xml b/model/model-intest/src/test/resources/common/resource-dummy-orange.xml index 576caedf68b..df3be1645cd 100644 --- a/model/model-intest/src/test/resources/common/resource-dummy-orange.xml +++ b/model/model-intest/src/test/resources/common/resource-dummy-orange.xml @@ -1,6 +1,6 @@ + + Brute + + + + entitlement + group + + + + + + entitlement + group-wannabe + + + + + + account + default + + riOrange:group + + + + + entitlement + group + + + + + + + + + + + account + default + + riOrange:group + + + + + entitlement + group-wannabe + + + + + + + + true + diff --git a/model/model-intest/src/test/resources/entitlements/role-thug.xml b/model/model-intest/src/test/resources/entitlements/role-thug.xml new file mode 100644 index 00000000000..4e42c3b52c8 --- /dev/null +++ b/model/model-intest/src/test/resources/entitlements/role-thug.xml @@ -0,0 +1,88 @@ + + + Thug + Almost same as Brute role, but the expressions in inducements are different + + + + entitlement + group + + + + + + entitlement + group-wannabe + + + + + + account + default + + riOrange:group + + + + + + attributes/icfs:name + thug + + + onResourceIfNeeded + + + + + + + + + + account + default + + riOrange:group + + + + + + attributes/icfs:name + thug-wannabe + + + onResourceIfNeeded + + + + + + + true +