You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2016/04/19 15:01:51 UTC

[04/24] syncope git commit: [SYNCOPE-822] UUID keys

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ConnectorITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ConnectorITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ConnectorITCase.java
index 1d30916..e5721a2 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ConnectorITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ConnectorITCase.java
@@ -37,6 +37,7 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
+import java.util.UUID;
 import javax.ws.rs.core.Response;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.Transformer;
@@ -120,7 +121,8 @@ public class ConnectorITCase extends AbstractITCase {
     @Test
     public void create() {
         ConnInstanceTO connectorTO = new ConnInstanceTO();
-        connectorTO.setLocation(connectorService.read(100L, Locale.ENGLISH.getLanguage()).getLocation());
+        connectorTO.setLocation(connectorService.read(
+                "88a7a819-dab5-46b4-9b90-0b9769eabdb8", Locale.ENGLISH.getLanguage()).getLocation());
         connectorTO.setVersion(connidSoapVersion);
         connectorTO.setConnectorName("net.tirasa.connid.bundles.soap.WebServiceConnector");
         connectorTO.setBundleName("net.tirasa.connid.bundles.soap");
@@ -220,8 +222,8 @@ public class ConnectorITCase extends AbstractITCase {
     public void update() {
         ConnInstanceTO connectorTO = new ConnInstanceTO();
 
-        // set connector instance id
-        connectorTO.setKey(103L);
+        // set connector instance key
+        connectorTO.setKey("fcf9f2b0-f7d6-42c9-84a6-61b28255a42b");
 
         // set connector version
         connectorTO.setVersion(connidSoapVersion);
@@ -272,7 +274,7 @@ public class ConnectorITCase extends AbstractITCase {
         assertEquals(Integer.valueOf(20), actual.getConnRequestTimeout());
     }
 
-    private List<ResourceTO> filter(final List<ResourceTO> input, final Long connectorKey) {
+    private List<ResourceTO> filter(final List<ResourceTO> input, final String connectorKey) {
         List<ResourceTO> result = new ArrayList<>();
 
         for (ResourceTO resource : input) {
@@ -290,11 +292,13 @@ public class ConnectorITCase extends AbstractITCase {
         // Copy resource and connector in order to create new objects.
         // ----------------------------------
         // Retrieve a connector instance template.
-        ConnInstanceTO connInstanceTO = connectorService.read(103L, Locale.ENGLISH.getLanguage());
+        ConnInstanceTO connInstanceTO = connectorService.read(
+                "fcf9f2b0-f7d6-42c9-84a6-61b28255a42b", Locale.ENGLISH.getLanguage());
         assertNotNull(connInstanceTO);
 
         // check for resource
-        List<ResourceTO> resources = filter(resourceService.list(), 103L);
+        List<ResourceTO> resources =
+                filter(resourceService.list(), "fcf9f2b0-f7d6-42c9-84a6-61b28255a42b");
         assertEquals(4, resources.size());
 
         // Retrieve a resource TO template.
@@ -304,7 +308,7 @@ public class ConnectorITCase extends AbstractITCase {
         resourceTO.setKey("newAbout103" + getUUIDString());
 
         // Make it new.
-        connInstanceTO.setKey(0L);
+        connInstanceTO.setKey(null);
         connInstanceTO.setDisplayName("newDisplayName" + getUUIDString());
         // ----------------------------------
 
@@ -320,10 +324,10 @@ public class ConnectorITCase extends AbstractITCase {
         assertNotNull(connInstanceTO);
         assertFalse(connInstanceTO.getCapabilities().contains(ConnectorCapability.AUTHENTICATE));
 
-        long connId = connInstanceTO.getKey();
+        String connKey = connInstanceTO.getKey();
 
         // Link resourceTO to the new connector instance.
-        resourceTO.setConnector(connId);
+        resourceTO.setConnector(connKey);
         // ----------------------------------
 
         // ----------------------------------
@@ -334,7 +338,7 @@ public class ConnectorITCase extends AbstractITCase {
 
         assertNotNull(resourceTO);
 
-        resources = filter(resourceService.list(), connId);
+        resources = filter(resourceService.list(), connKey);
         assertEquals(1, resources.size());
         // ----------------------------------
 
@@ -366,7 +370,7 @@ public class ConnectorITCase extends AbstractITCase {
     @Test
     public void deleteWithException() {
         try {
-            connectorService.delete(0L);
+            connectorService.delete(UUID.randomUUID().toString());
         } catch (SyncopeClientException e) {
             assertEquals(Response.Status.NOT_FOUND, e.getType().getResponseStatus());
         }
@@ -384,7 +388,8 @@ public class ConnectorITCase extends AbstractITCase {
 
     @Test
     public void read() {
-        ConnInstanceTO connectorInstanceTO = connectorService.read(100L, Locale.ENGLISH.getLanguage());
+        ConnInstanceTO connectorInstanceTO = connectorService.read(
+                "88a7a819-dab5-46b4-9b90-0b9769eabdb8", Locale.ENGLISH.getLanguage());
         assertNotNull(connectorInstanceTO);
     }
 
@@ -400,14 +405,16 @@ public class ConnectorITCase extends AbstractITCase {
 
     @Test
     public void getConnectorConfiguration() {
-        Set<ConnConfProperty> props = connectorService.read(104L, Locale.ENGLISH.getLanguage()).getConf();
+        Set<ConnConfProperty> props = connectorService.read(
+                "6c2acf1b-b052-46f0-8c56-7a8ad6905edf", Locale.ENGLISH.getLanguage()).getConf();
         assertNotNull(props);
         assertFalse(props.isEmpty());
     }
 
     @Test
     public void checkHiddenProperty() {
-        ConnInstanceTO connInstanceTO = connectorService.read(100L, Locale.ENGLISH.getLanguage());
+        ConnInstanceTO connInstanceTO = connectorService.read(
+                "88a7a819-dab5-46b4-9b90-0b9769eabdb8", Locale.ENGLISH.getLanguage());
 
         boolean check = false;
 
@@ -542,7 +549,8 @@ public class ConnectorITCase extends AbstractITCase {
 
     @Test
     public void buildObjectClassInfo() {
-        ConnInstanceTO ws = connectorService.read(102L, Locale.ENGLISH.getLanguage());
+        ConnInstanceTO ws = connectorService.read(
+                "5ffbb4ac-a8c3-4b44-b699-11b398a1ba08", Locale.ENGLISH.getLanguage());
         assertNotNull(ws);
 
         List<ConnIdObjectClassTO> objectClassInfo = connectorService.buildObjectClassInfo(ws, true);
@@ -551,7 +559,8 @@ public class ConnectorITCase extends AbstractITCase {
         assertEquals(ObjectClass.ACCOUNT_NAME, objectClassInfo.get(0).getType());
         assertTrue(objectClassInfo.get(0).getAttributes().contains("promoThirdPartyDisclaimer"));
 
-        ConnInstanceTO ldap = connectorService.read(105L, Locale.ENGLISH.getLanguage());
+        ConnInstanceTO ldap = connectorService.read(
+                "74141a3b-0762-4720-a4aa-fc3e374ef3ef", Locale.ENGLISH.getLanguage());
         assertNotNull(ldap);
 
         objectClassInfo = connectorService.buildObjectClassInfo(ldap, true);
@@ -561,12 +570,12 @@ public class ConnectorITCase extends AbstractITCase {
         Collection<String> objectClasses = CollectionUtils.collect(objectClassInfo,
                 new Transformer<ConnIdObjectClassTO, String>() {
 
-                    @Override
-                    public String transform(final ConnIdObjectClassTO info) {
-                        return info.getType();
-                    }
+            @Override
+            public String transform(final ConnIdObjectClassTO info) {
+                return info.getType();
+            }
 
-                });
+        });
         assertEquals(2, objectClasses.size());
         assertTrue(objectClasses.contains(ObjectClass.ACCOUNT_NAME));
         assertTrue(objectClasses.contains(ObjectClass.GROUP_NAME));
@@ -579,7 +588,8 @@ public class ConnectorITCase extends AbstractITCase {
         // ----------------------------------------
         ConnInstanceTO connectorTO = new ConnInstanceTO();
 
-        connectorTO.setLocation(connectorService.read(100L, Locale.ENGLISH.getLanguage()).getLocation());
+        connectorTO.setLocation(connectorService.read(
+                "88a7a819-dab5-46b4-9b90-0b9769eabdb8", Locale.ENGLISH.getLanguage()).getLocation());
 
         // set connector version
         connectorTO.setVersion(connidSoapVersion);
@@ -694,9 +704,10 @@ public class ConnectorITCase extends AbstractITCase {
         BulkAction bulkAction = new BulkAction();
         bulkAction.setType(BulkAction.Type.DELETE);
 
-        ConnInstanceTO conn = connectorService.read(101L, Locale.ENGLISH.getLanguage());
+        ConnInstanceTO conn = connectorService.read(
+                "5aa5b8be-7521-481a-9651-c557aea078c1", Locale.ENGLISH.getLanguage());
 
-        conn.setKey(0L);
+        conn.setKey(null);
         conn.setDisplayName("forBulk1");
 
         bulkAction.getTargets().add(String.valueOf(getObject(
@@ -707,24 +718,24 @@ public class ConnectorITCase extends AbstractITCase {
         bulkAction.getTargets().add(String.valueOf(getObject(
                 connectorService.create(conn).getLocation(), ConnectorService.class, ConnInstanceTO.class).getKey()));
 
-        Iterator<String> iter = bulkAction.getTargets().iterator();
+        Iterator<String> itor = bulkAction.getTargets().iterator();
 
-        assertNotNull(connectorService.read(Long.valueOf(iter.next()), Locale.ENGLISH.getLanguage()));
-        assertNotNull(connectorService.read(Long.valueOf(iter.next()), Locale.ENGLISH.getLanguage()));
+        assertNotNull(connectorService.read(itor.next(), Locale.ENGLISH.getLanguage()));
+        assertNotNull(connectorService.read(itor.next(), Locale.ENGLISH.getLanguage()));
 
         connectorService.bulk(bulkAction);
 
-        iter = bulkAction.getTargets().iterator();
+        itor = bulkAction.getTargets().iterator();
 
         try {
-            connectorService.read(Long.valueOf(iter.next()), Locale.ENGLISH.getLanguage());
+            connectorService.read(itor.next(), Locale.ENGLISH.getLanguage());
             fail();
         } catch (SyncopeClientException e) {
             assertNotNull(e);
         }
 
         try {
-            connectorService.read(Long.valueOf(iter.next()), Locale.ENGLISH.getLanguage());
+            connectorService.read(itor.next(), Locale.ENGLISH.getLanguage());
             fail();
         } catch (SyncopeClientException e) {
             assertNotNull(e);
@@ -733,7 +744,8 @@ public class ConnectorITCase extends AbstractITCase {
 
     @Test
     public void issueSYNCOPE605() {
-        ConnInstanceTO connectorInstanceTO = connectorService.read(103L, Locale.ENGLISH.getLanguage());
+        ConnInstanceTO connectorInstanceTO = connectorService.read(
+                "fcf9f2b0-f7d6-42c9-84a6-61b28255a42b", Locale.ENGLISH.getLanguage());
         assertTrue(connectorInstanceTO.getCapabilities().isEmpty());
 
         connectorInstanceTO.getCapabilities().add(ConnectorCapability.SEARCH);

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java
index 91077a4..e8d03d0 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java
@@ -29,6 +29,7 @@ import java.security.AccessControlException;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
 import javax.naming.directory.DirContext;
@@ -47,7 +48,6 @@ import org.apache.syncope.common.lib.patch.AssociationPatch;
 import org.apache.syncope.common.lib.patch.AttrPatch;
 import org.apache.syncope.common.lib.patch.DeassociationPatch;
 import org.apache.syncope.common.lib.patch.GroupPatch;
-import org.apache.syncope.common.lib.patch.LongReplacePatchItem;
 import org.apache.syncope.common.lib.patch.StringReplacePatchItem;
 import org.apache.syncope.common.lib.to.AnyObjectTO;
 import org.apache.syncope.common.lib.to.AnyTypeClassTO;
@@ -108,7 +108,7 @@ public class GroupITCase extends AbstractITCase {
     public void create() {
         GroupTO groupTO = getSampleTO("lastGroup");
         groupTO.getVirAttrs().add(attrTO("rvirtualdata", "rvirtualvalue"));
-        groupTO.setGroupOwner(8L);
+        groupTO.setGroupOwner("f779c0d4-633b-4be5-8f57-32eb478a3ca5");
 
         groupTO = createGroup(groupTO).getAny();
         assertNotNull(groupTO);
@@ -128,7 +128,7 @@ public class GroupITCase extends AbstractITCase {
         // SYNCOPE-515: remove ownership
         GroupPatch groupPatch = new GroupPatch();
         groupPatch.setKey(groupTO.getKey());
-        groupPatch.setGroupOwner(new LongReplacePatchItem());
+        groupPatch.setGroupOwner(new StringReplacePatchItem());
 
         assertNull(updateGroup(groupPatch).getAny().getGroupOwner());
     }
@@ -136,7 +136,7 @@ public class GroupITCase extends AbstractITCase {
     @Test
     public void delete() {
         try {
-            groupService.delete(0L);
+            groupService.delete(UUID.randomUUID().toString());
         } catch (SyncopeClientException e) {
             assertEquals(Response.Status.NOT_FOUND, e.getType().getResponseStatus());
         }
@@ -173,7 +173,7 @@ public class GroupITCase extends AbstractITCase {
 
     @Test
     public void read() {
-        GroupTO groupTO = groupService.read(1L);
+        GroupTO groupTO = groupService.read("37d15e4c-cdc1-460b-a591-8505c8133806");
 
         assertNotNull(groupTO);
         assertNotNull(groupTO.getPlainAttrs());
@@ -182,16 +182,16 @@ public class GroupITCase extends AbstractITCase {
 
     @Test
     public void selfRead() {
-        UserTO userTO = userService.read(1L);
+        UserTO userTO = userService.read("1417acbe-cbf6-4277-9372-e75e04f97000");
         assertNotNull(userTO);
 
-        assertTrue(userTO.getMembershipMap().containsKey(1L));
-        assertFalse(userTO.getMembershipMap().containsKey(3L));
+        assertTrue(userTO.getMembershipMap().containsKey("37d15e4c-cdc1-460b-a591-8505c8133806"));
+        assertFalse(userTO.getMembershipMap().containsKey("29f96485-729e-4d31-88a1-6fc60e4677f3"));
 
         GroupService groupService2 = clientFactory.create("rossini", ADMIN_PWD).getService(GroupService.class);
 
         try {
-            groupService2.read(3L);
+            groupService2.read("29f96485-729e-4d31-88a1-6fc60e4677f3");
             fail();
         } catch (SyncopeClientException e) {
             assertEquals(ClientExceptionType.DelegatedAdministration, e.getType());
@@ -203,7 +203,7 @@ public class GroupITCase extends AbstractITCase {
 
             @Override
             public boolean evaluate(final GroupTO group) {
-                return 1L == group.getKey();
+                return "37d15e4c-cdc1-460b-a591-8505c8133806".equals(group.getKey());
             }
         }));
     }
@@ -266,7 +266,7 @@ public class GroupITCase extends AbstractITCase {
     @Test
     public void updateAsGroupOwner() {
         // 1. read group as admin
-        GroupTO groupTO = groupService.read(6L);
+        GroupTO groupTO = groupService.read("ebf97068-aa4b-4a85-9f01-680e8c4cf227");
 
         // issue SYNCOPE-15
         assertNotNull(groupTO.getCreationDate());
@@ -582,21 +582,22 @@ public class GroupITCase extends AbstractITCase {
 
     @Test
     public void uDynMembership() {
-        assertTrue(userService.read(4L).getDynGroups().isEmpty());
+        assertTrue(userService.read("c9b2dec2-00a7-4855-97c0-d854842b4b24").getDynGroups().isEmpty());
 
         GroupTO group = getBasicSampleTO("uDynMembership");
         group.setUDynMembershipCond("cool==true");
         group = createGroup(group).getAny();
         assertNotNull(group);
 
-        assertTrue(userService.read(4L).getDynGroups().contains(group.getKey()));
+        assertTrue(userService.read(
+                "c9b2dec2-00a7-4855-97c0-d854842b4b24").getDynGroups().contains(group.getKey()));
 
         GroupPatch patch = new GroupPatch();
         patch.setKey(group.getKey());
         patch.setUDynMembershipCond("cool==false");
         groupService.update(patch);
 
-        assertTrue(userService.read(4L).getDynGroups().isEmpty());
+        assertTrue(userService.read("c9b2dec2-00a7-4855-97c0-d854842b4b24").getDynGroups().isEmpty());
     }
 
     @Test
@@ -617,8 +618,10 @@ public class GroupITCase extends AbstractITCase {
         newAny.getResources().clear();
         newAny = createAnyObject(newAny).getAny();
         assertNotNull(newAny.getPlainAttrMap().get("location"));
-        assertTrue(anyObjectService.read(1L).getDynGroups().contains(group.getKey()));
-        assertTrue(anyObjectService.read(2L).getDynGroups().contains(group.getKey()));
+        assertTrue(anyObjectService.read(
+                "fc6dbc3a-6c07-4965-8781-921e7401a4a5").getDynGroups().contains(group.getKey()));
+        assertTrue(anyObjectService.read(
+                "8559d14d-58c2-46eb-a2d4-a7d35161e8f8").getDynGroups().contains(group.getKey()));
         assertTrue(anyObjectService.read(newAny.getKey()).getDynGroups().contains(group.getKey()));
 
         // 2. update group and change aDynMembership condition
@@ -643,8 +646,10 @@ public class GroupITCase extends AbstractITCase {
                 build());
         newAny = updateAnyObject(anyPatch).getAny();
         assertNull(newAny.getPlainAttrMap().get("location"));
-        assertFalse(anyObjectService.read(1L).getDynGroups().contains(group.getKey()));
-        assertFalse(anyObjectService.read(2L).getDynGroups().contains(group.getKey()));
+        assertFalse(anyObjectService.read(
+                "fc6dbc3a-6c07-4965-8781-921e7401a4a5").getDynGroups().contains(group.getKey()));
+        assertFalse(anyObjectService.read(
+                "8559d14d-58c2-46eb-a2d4-a7d35161e8f8").getDynGroups().contains(group.getKey()));
         assertTrue(anyObjectService.read(newAny.getKey()).getDynGroups().contains(group.getKey()));
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java
index 2a44c3d..7d6e0c9 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java
@@ -135,7 +135,8 @@ public class MultitenancyITCase extends AbstractITCase {
     @Test
     public void createResourceAndPull() {
         // read connector
-        ConnInstanceTO conn = adminClient.getService(ConnectorService.class).read(100L, Locale.ENGLISH.getLanguage());
+        ConnInstanceTO conn = adminClient.getService(ConnectorService.class).
+                read("b7ea96c3-c633-488b-98a0-b52ac35850f7", Locale.ENGLISH.getLanguage());
         assertNotNull(conn);
         assertEquals("LDAP", conn.getDisplayName());
 
@@ -144,80 +145,84 @@ public class MultitenancyITCase extends AbstractITCase {
         resource.setKey("new-ldap-resource");
         resource.setConnector(conn.getKey());
 
-        ProvisionTO provisionTO = new ProvisionTO();
-        provisionTO.setAnyType(AnyTypeKind.USER.name());
-        provisionTO.setObjectClass(ObjectClass.ACCOUNT_NAME);
-        resource.getProvisions().add(provisionTO);
-
-        MappingTO mapping = new MappingTO();
-        mapping.setConnObjectLink("'uid=' + username + ',ou=people,o=isp'");
-        provisionTO.setMapping(mapping);
-
-        MappingItemTO item = new MappingItemTO();
-        item.setIntAttrName("username");
-        item.setIntMappingType(IntMappingType.Username);
-        item.setExtAttrName("cn");
-        item.setPurpose(MappingPurpose.BOTH);
-        mapping.setConnObjectKeyItem(item);
-
-        item = new MappingItemTO();
-        item.setPassword(true);
-        item.setIntMappingType(IntMappingType.Password);
-        item.setExtAttrName("userPassword");
-        item.setPurpose(MappingPurpose.BOTH);
-        item.setMandatoryCondition("true");
-        mapping.add(item);
-
-        item = new MappingItemTO();
-        item.setIntMappingType(IntMappingType.UserKey);
-        item.setPurpose(MappingPurpose.BOTH);
-        item.setExtAttrName("sn");
-        item.setMandatoryCondition("true");
-        mapping.add(item);
-
-        item = new MappingItemTO();
-        item.setIntAttrName("email");
-        item.setIntMappingType(IntMappingType.UserPlainSchema);
-        item.setPurpose(MappingPurpose.BOTH);
-        item.setExtAttrName("mail");
-        mapping.add(item);
-
-        // create resource
-        Response response = adminClient.getService(ResourceService.class).create(resource);
-        assertEquals(Response.Status.CREATED.getStatusCode(), response.getStatus());
-        resource = adminClient.getService(ResourceService.class).read(resource.getKey());
-        assertNotNull(resource);
-
-        // create pull task
-        PullTaskTO task = new PullTaskTO();
-        task.setName("LDAP Pull Task");
-        task.setActive(true);
-        task.setDestinationRealm(SyncopeConstants.ROOT_REALM);
-        task.setResource(resource.getKey());
-        task.setPullMode(PullMode.FULL_RECONCILIATION);
-        task.setPerformCreate(true);
-
-        response = adminClient.getService(TaskService.class).create(task);
-        assertEquals(Response.Status.CREATED.getStatusCode(), response.getStatus());
-        task = adminClient.getService(TaskService.class).read(
-                Long.valueOf(StringUtils.substringAfterLast(response.getLocation().toASCIIString(), "/")), true);
-        assertNotNull(resource);
-
-        // pull
-        ExecTO execution = AbstractTaskITCase.execProvisioningTask(
-                adminClient.getService(TaskService.class), task.getKey(), 50, false);
-
-        // verify execution status
-        String status = execution.getStatus();
-        assertNotNull(status);
-        assertEquals(PropagationTaskExecStatus.SUCCESS, PropagationTaskExecStatus.valueOf(status));
-
-        // verify that pulled user is found
-        PagedResult<UserTO> matchingUsers = adminClient.getService(UserService.class).search(
-                new AnySearchQuery.Builder().realm(SyncopeConstants.ROOT_REALM).
-                fiql(SyncopeClient.getUserSearchConditionBuilder().is("username").equalTo("pullFromLDAP").query()).
-                build());
-        assertNotNull(matchingUsers);
-        assertEquals(1, matchingUsers.getResult().size());
+        try {
+            ProvisionTO provisionTO = new ProvisionTO();
+            provisionTO.setAnyType(AnyTypeKind.USER.name());
+            provisionTO.setObjectClass(ObjectClass.ACCOUNT_NAME);
+            resource.getProvisions().add(provisionTO);
+
+            MappingTO mapping = new MappingTO();
+            mapping.setConnObjectLink("'uid=' + username + ',ou=people,o=isp'");
+            provisionTO.setMapping(mapping);
+
+            MappingItemTO item = new MappingItemTO();
+            item.setIntAttrName("username");
+            item.setIntMappingType(IntMappingType.Username);
+            item.setExtAttrName("cn");
+            item.setPurpose(MappingPurpose.BOTH);
+            mapping.setConnObjectKeyItem(item);
+
+            item = new MappingItemTO();
+            item.setPassword(true);
+            item.setIntMappingType(IntMappingType.Password);
+            item.setExtAttrName("userPassword");
+            item.setPurpose(MappingPurpose.BOTH);
+            item.setMandatoryCondition("true");
+            mapping.add(item);
+
+            item = new MappingItemTO();
+            item.setIntMappingType(IntMappingType.UserKey);
+            item.setPurpose(MappingPurpose.BOTH);
+            item.setExtAttrName("sn");
+            item.setMandatoryCondition("true");
+            mapping.add(item);
+
+            item = new MappingItemTO();
+            item.setIntAttrName("email");
+            item.setIntMappingType(IntMappingType.UserPlainSchema);
+            item.setPurpose(MappingPurpose.BOTH);
+            item.setExtAttrName("mail");
+            mapping.add(item);
+
+            // create resource
+            Response response = adminClient.getService(ResourceService.class).create(resource);
+            assertEquals(Response.Status.CREATED.getStatusCode(), response.getStatus());
+            resource = adminClient.getService(ResourceService.class).read(resource.getKey());
+            assertNotNull(resource);
+
+            // create pull task
+            PullTaskTO task = new PullTaskTO();
+            task.setName("LDAP Pull Task");
+            task.setActive(true);
+            task.setDestinationRealm(SyncopeConstants.ROOT_REALM);
+            task.setResource(resource.getKey());
+            task.setPullMode(PullMode.FULL_RECONCILIATION);
+            task.setPerformCreate(true);
+
+            response = adminClient.getService(TaskService.class).create(task);
+            assertEquals(Response.Status.CREATED.getStatusCode(), response.getStatus());
+            task = adminClient.getService(TaskService.class).read(
+                    StringUtils.substringAfterLast(response.getLocation().toASCIIString(), "/"), true);
+            assertNotNull(resource);
+
+            // pull
+            ExecTO execution = AbstractTaskITCase.execProvisioningTask(
+                    adminClient.getService(TaskService.class), task.getKey(), 50, false);
+
+            // verify execution status
+            String status = execution.getStatus();
+            assertNotNull(status);
+            assertEquals(PropagationTaskExecStatus.SUCCESS, PropagationTaskExecStatus.valueOf(status));
+
+            // verify that pulled user is found
+            PagedResult<UserTO> matchingUsers = adminClient.getService(UserService.class).search(
+                    new AnySearchQuery.Builder().realm(SyncopeConstants.ROOT_REALM).
+                    fiql(SyncopeClient.getUserSearchConditionBuilder().is("username").equalTo("pullFromLDAP").query()).
+                    build());
+            assertNotNull(matchingUsers);
+            assertEquals(1, matchingUsers.getResult().size());
+        } finally {
+            adminClient.getService(ResourceService.class).delete(resource.getKey());
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationITCase.java
index b1c125d..70d55ba 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationITCase.java
@@ -61,7 +61,8 @@ public class NotificationITCase extends AbstractITCase {
 
     @Test
     public void read() {
-        NotificationTO notificationTO = notificationService.read(10L);
+        NotificationTO notificationTO = notificationService.read(
+                "9e2b911c-25de-4c77-bcea-b86ed9451050");
         assertNotNull(notificationTO);
     }
 
@@ -78,7 +79,8 @@ public class NotificationITCase extends AbstractITCase {
     @Test
     public void create() {
         NotificationTO notificationTO = buildNotificationTO();
-        notificationTO.setRecipientsFIQL(SyncopeClient.getUserSearchConditionBuilder().inGroups(7L).query());
+        notificationTO.setRecipientsFIQL(SyncopeClient.getUserSearchConditionBuilder().
+                inGroups("bf825fe1-7320-4a54-bd64-143b5c18ab97").query());
 
         Response response = notificationService.create(notificationTO);
         NotificationTO actual = getObject(response.getLocation(), NotificationService.class, NotificationTO.class);
@@ -91,8 +93,10 @@ public class NotificationITCase extends AbstractITCase {
 
     @Test
     public void update() {
-        NotificationTO notificationTO = notificationService.read(10L);
-        notificationTO.setRecipientsFIQL(SyncopeClient.getUserSearchConditionBuilder().inGroups(7L).query());
+        NotificationTO notificationTO = notificationService.read(
+                "9e2b911c-25de-4c77-bcea-b86ed9451050");
+        notificationTO.setRecipientsFIQL(SyncopeClient.getUserSearchConditionBuilder().inGroups(
+                "bf825fe1-7320-4a54-bd64-143b5c18ab97").query());
 
         notificationService.update(notificationTO);
         NotificationTO actual = notificationService.read(notificationTO.getKey());

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationTaskITCase.java
index 6519325..bff885c 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationTaskITCase.java
@@ -318,7 +318,8 @@ public class NotificationTaskITCase extends AbstractTaskITCase {
         notification.getAbouts().put(AnyTypeKind.GROUP.name(),
                 SyncopeClient.getGroupSearchConditionBuilder().is("name").equalTo(groupName).query());
 
-        notification.setRecipientsFIQL(SyncopeClient.getUserSearchConditionBuilder().inGroups(8L).query());
+        notification.setRecipientsFIQL(SyncopeClient.getUserSearchConditionBuilder().
+                inGroups("f779c0d4-633b-4be5-8f57-32eb478a3ca5").query());
         notification.setSelfAsRecipient(false);
         notification.setRecipientAttrName("email");
         notification.setRecipientAttrType(IntMappingType.UserPlainSchema);
@@ -386,10 +387,12 @@ public class NotificationTaskITCase extends AbstractTaskITCase {
 
         if (includeAbout) {
             notification.getAbouts().put(AnyTypeKind.USER.name(),
-                    SyncopeClient.getUserSearchConditionBuilder().inGroups(7L).query());
+                    SyncopeClient.getUserSearchConditionBuilder().
+                    inGroups("bf825fe1-7320-4a54-bd64-143b5c18ab97").query());
         }
 
-        notification.setRecipientsFIQL(SyncopeClient.getUserSearchConditionBuilder().inGroups(8L).query());
+        notification.setRecipientsFIQL(SyncopeClient.getUserSearchConditionBuilder().
+                inGroups("f779c0d4-633b-4be5-8f57-32eb478a3ca5").query());
         notification.setSelfAsRecipient(true);
         notification.setRecipientAttrName("email");
         notification.setRecipientAttrType(IntMappingType.UserPlainSchema);
@@ -408,7 +411,8 @@ public class NotificationTaskITCase extends AbstractTaskITCase {
 
         // 2. create user
         UserTO userTO = UserITCase.getUniqueSampleTO(MAIL_ADDRESS);
-        userTO.getMemberships().add(new MembershipTO.Builder().group(7L).build());
+        userTO.getMemberships().add(
+                new MembershipTO.Builder().group("bf825fe1-7320-4a54-bd64-143b5c18ab97").build());
 
         userTO = createUser(userTO).getAny();
         assertNotNull(userTO);

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java
index 1109d62..3f9ac6d 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java
@@ -265,7 +265,8 @@ public class PlainSchemaITCase extends AbstractITCase {
         assertNotNull(userTO);
 
         UserTO newUserTO = SerializationUtils.clone(userTO);
-        newUserTO.getMemberships().add(new MembershipTO.Builder().group(2L).build());
+        newUserTO.getMemberships().add(
+                new MembershipTO.Builder().group("b1f7c12d-ec83-441f-a50e-1691daaedf3b").build());
 
         userTO = userService.update(newUserTO).readEntity(new GenericType<ProvisioningResult<UserTO>>() {
         }).getAny();

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java
index 6df4935..b00df7d 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java
@@ -69,7 +69,7 @@ public class PolicyITCase extends AbstractITCase {
 
     @Test
     public void getAccountPolicy() {
-        AccountPolicyTO policyTO = policyService.read(6L);
+        AccountPolicyTO policyTO = policyService.read("06e2ed52-6966-44aa-a177-a0ca7434201f");
 
         assertNotNull(policyTO);
         assertTrue(policyTO.getUsedByResources().isEmpty());
@@ -78,7 +78,7 @@ public class PolicyITCase extends AbstractITCase {
 
     @Test
     public void getPasswordPolicy() {
-        PasswordPolicyTO policyTO = policyService.read(4L);
+        PasswordPolicyTO policyTO = policyService.read("986d1236-3ac5-4a19-810c-5ab21d79cba1");
 
         assertNotNull(policyTO);
         assertTrue(policyTO.getUsedByResources().contains(RESOURCE_NAME_NOPROPAGATION));
@@ -87,7 +87,7 @@ public class PolicyITCase extends AbstractITCase {
 
     @Test
     public void getPullPolicy() {
-        PullPolicyTO policyTO = policyService.read(1L);
+        PullPolicyTO policyTO = policyService.read("66691e96-285f-4464-bc19-e68384ea4c85");
 
         assertNotNull(policyTO);
         assertTrue(policyTO.getUsedByRealms().isEmpty());
@@ -119,7 +119,7 @@ public class PolicyITCase extends AbstractITCase {
 
     @Test
     public void update() {
-        PasswordPolicyTO globalPolicy = policyService.read(2L);
+        PasswordPolicyTO globalPolicy = policyService.read("ce93fcda-dc3a-4369-a7b0-a6108c261c85");
 
         PasswordPolicyTO policy = SerializationUtils.clone(globalPolicy);
         policy.setDescription("A simple password policy");
@@ -127,7 +127,7 @@ public class PolicyITCase extends AbstractITCase {
         // create a new password policy using the former as a template
         policy = createPolicy(policy);
         assertNotNull(policy);
-        assertNotEquals(2L, policy.getKey());
+        assertNotEquals("ce93fcda-dc3a-4369-a7b0-a6108c261c85", policy.getKey());
 
         ((DefaultPasswordRuleConf) policy.getRuleConfs().get(0)).setMaxLength(22);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java
index 6a19e94..e32eafb 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java
@@ -31,6 +31,7 @@ import org.apache.syncope.common.lib.to.PagedResult;
 import org.apache.syncope.common.lib.to.PropagationTaskTO;
 import org.apache.syncope.common.lib.to.ExecTO;
 import org.apache.syncope.common.lib.to.UserTO;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.TaskType;
 import org.apache.syncope.common.rest.api.beans.ExecuteQuery;
 import org.apache.syncope.common.rest.api.beans.TaskExecQuery;
@@ -71,7 +72,7 @@ public class PropagationTaskITCase extends AbstractTaskITCase {
 
     @Test
     public void read() {
-        final PropagationTaskTO taskTO = taskService.read(3L, true);
+        PropagationTaskTO taskTO = taskService.read("316285cc-ae52-4ea2-a33b-7355e189ac3f", true);
         assertNotNull(taskTO);
         assertNotNull(taskTO.getExecutions());
         assertTrue(taskTO.getExecutions().isEmpty());
@@ -79,38 +80,36 @@ public class PropagationTaskITCase extends AbstractTaskITCase {
 
     @Test
     public void bulkAction() {
-        PagedResult<PropagationTaskTO> before = taskService.list(
-                new TaskQuery.Builder(TaskType.PROPAGATION).build());
-
         // create user with testdb resource
         UserTO userTO = UserITCase.getUniqueSampleTO("taskBulk@apache.org");
         userTO.getResources().add(RESOURCE_NAME_TESTDB);
-        createUser(userTO);
+        userTO = createUser(userTO).getAny();
 
-        List<PropagationTaskTO> after = new ArrayList<>(
-                taskService.<PropagationTaskTO>list(new TaskQuery.Builder(TaskType.PROPAGATION).build()).
+        List<PropagationTaskTO> tasks = new ArrayList<>(
+                taskService.<PropagationTaskTO>list(new TaskQuery.Builder(TaskType.PROPAGATION).
+                        anyTypeKind(AnyTypeKind.USER).anyTypeKey(userTO.getKey()).build()).
                 getResult());
-        after.removeAll(before.getResult());
-        assertFalse(after.isEmpty());
+        assertFalse(tasks.isEmpty());
 
         BulkAction bulkAction = new BulkAction();
         bulkAction.setType(BulkAction.Type.DELETE);
-
-        for (PropagationTaskTO taskTO : after) {
-            bulkAction.getTargets().add(String.valueOf(taskTO.getKey()));
+        for (PropagationTaskTO taskTO : tasks) {
+            bulkAction.getTargets().add(taskTO.getKey());
         }
 
         taskService.bulk(bulkAction);
 
-        assertFalse(taskService.list(new TaskQuery.Builder(TaskType.PROPAGATION).build()).getResult().
-                containsAll(after));
+        assertFalse(taskService.list(new TaskQuery.Builder(TaskType.PROPAGATION).page(1).size(100).build()).
+                getResult().containsAll(tasks));
     }
 
     @Test
     public void issueSYNCOPE741() {
         for (int i = 0; i < 3; i++) {
-            taskService.execute(new ExecuteQuery.Builder().key(1L).build());
-            taskService.execute(new ExecuteQuery.Builder().key(2L).build());
+            taskService.execute(new ExecuteQuery.Builder().
+                    key("1e697572-b896-484c-ae7f-0c8f63fcbc6c").build());
+            taskService.execute(new ExecuteQuery.Builder().
+                    key("316285cc-ae52-4ea2-a33b-7355e189ac3f").build());
         }
         try {
             Thread.sleep(3000);
@@ -132,19 +131,20 @@ public class PropagationTaskITCase extends AbstractTaskITCase {
         }
 
         // check read
-        PropagationTaskTO task = taskService.read(1L, false);
+        PropagationTaskTO task = taskService.read("1e697572-b896-484c-ae7f-0c8f63fcbc6c", false);
         assertNotNull(task);
-        assertEquals(1L, task.getKey(), 0);
+        assertEquals("1e697572-b896-484c-ae7f-0c8f63fcbc6c", task.getKey());
         assertTrue(task.getExecutions().isEmpty());
 
-        task = taskService.read(1L, true);
+        task = taskService.read("1e697572-b896-484c-ae7f-0c8f63fcbc6c", true);
         assertNotNull(task);
-        assertEquals(1L, task.getKey(), 0);
+        assertEquals("1e697572-b896-484c-ae7f-0c8f63fcbc6c", task.getKey());
         assertFalse(task.getExecutions().isEmpty());
 
         // check list executions
         PagedResult<ExecTO> execs = taskService.listExecutions(
-                new TaskExecQuery.Builder().key(1L).page(1).size(2).build());
+                new TaskExecQuery.Builder().key("1e697572-b896-484c-ae7f-0c8f63fcbc6c").
+                page(1).size(2).build());
         assertTrue(execs.getTotalCount() >= execs.getResult().size());
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
index e386c0d..ff0ccbb 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
@@ -29,6 +29,7 @@ import java.util.HashSet;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
+import java.util.UUID;
 import javax.ws.rs.core.Response;
 import org.apache.commons.collections4.IterableUtils;
 import org.apache.commons.collections4.Predicate;
@@ -88,7 +89,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
 
     @BeforeClass
     public static void testPullctionsSetup() {
-        PullTaskTO pullTask = taskService.read(PULL_TASK_ID, true);
+        PullTaskTO pullTask = taskService.read(PULL_TASK_KEY, true);
         pullTask.getActionsClassNames().add(TestPullActions.class.getName());
         taskService.update(pullTask);
     }
@@ -122,7 +123,8 @@ public class PullTaskITCase extends AbstractTaskITCase {
         UserTO userTemplate = new UserTO();
         userTemplate.getResources().add(RESOURCE_NAME_WS2);
 
-        userTemplate.getMemberships().add(new MembershipTO.Builder().group(8L).build());
+        userTemplate.getMemberships().add(
+                new MembershipTO.Builder().group("f779c0d4-633b-4be5-8f57-32eb478a3ca5").build());
         task.getTemplates().put(AnyTypeKind.USER.name(), userTemplate);
 
         GroupTO groupTemplate = new GroupTO();
@@ -173,7 +175,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
                     page(1).size(1).build()).getTotalCount();
             assertNotNull(usersPre);
 
-            execProvisioningTask(taskService, PULL_TASK_ID, 50, false);
+            execProvisioningTask(taskService, PULL_TASK_KEY, 50, false);
 
             // after execution of the pull task the user data should have been pulled from CSV
             // and processed by user template
@@ -199,7 +201,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
             assertTrue(userTO.getResources().contains(RESOURCE_NAME_TESTDB));
             assertTrue(userTO.getResources().contains(RESOURCE_NAME_WS2));
             assertEquals(1, userTO.getMemberships().size());
-            assertEquals(8, userTO.getMemberships().get(0).getRightKey());
+            assertEquals("f779c0d4-633b-4be5-8f57-32eb478a3ca5", userTO.getMemberships().get(0).getRightKey());
 
             // Unmatching --> Assign (link) - SYNCOPE-658
             assertTrue(userTO.getResources().contains(RESOURCE_NAME_CSV));
@@ -241,9 +243,9 @@ public class PullTaskITCase extends AbstractTaskITCase {
             assertNotNull(userTO);
             assertEquals("active", userTO.getStatus());
 
-            Set<Long> otherPullTaskKeys = new HashSet<>();
-            otherPullTaskKeys.add(25L);
-            otherPullTaskKeys.add(26L);
+            Set<String> otherPullTaskKeys = new HashSet<>();
+            otherPullTaskKeys.add("feae4e57-15ca-40d9-b973-8b9015efca49");
+            otherPullTaskKeys.add("55d5e74b-497e-4bc0-9156-73abef4b9adc");
             execProvisioningTasks(taskService, otherPullTaskKeys, 50, false);
 
             // Matching --> UNLINK
@@ -256,7 +258,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
 
     @Test
     public void dryRun() {
-        ExecTO execution = execProvisioningTask(taskService, PULL_TASK_ID, 50, true);
+        ExecTO execution = execProvisioningTask(taskService, PULL_TASK_KEY, 50, true);
         assertEquals(
                 "Execution of " + execution.getRefDesc() + " failed with message " + execution.getMessage(),
                 "SUCCESS", execution.getStatus());
@@ -267,7 +269,8 @@ public class PullTaskITCase extends AbstractTaskITCase {
         UserTO userTO = null;
         JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
         try {
-            ExecTO execution = execProvisioningTask(taskService, 7L, 50, false);
+            ExecTO execution = execProvisioningTask(
+                    taskService, "83f7e85d-9774-43fe-adba-ccd856312994", 50, false);
             assertNotNull(execution.getStatus());
             assertEquals(PropagationTaskExecStatus.SUCCESS, PropagationTaskExecStatus.valueOf(execution.getStatus()));
 
@@ -280,7 +283,8 @@ public class PullTaskITCase extends AbstractTaskITCase {
             jdbcTemplate.execute("UPDATE TEST SET status=TRUE WHERE id='testuser1'");
 
             // re-execute the same PullTask: now user must be active
-            execution = execProvisioningTask(taskService, 7L, 50, false);
+            execution = execProvisioningTask(
+                    taskService, "83f7e85d-9774-43fe-adba-ccd856312994", 50, false);
             assertNotNull(execution.getStatus());
             assertEquals(PropagationTaskExecStatus.SUCCESS, PropagationTaskExecStatus.valueOf(execution.getStatus()));
 
@@ -335,7 +339,8 @@ public class PullTaskITCase extends AbstractTaskITCase {
         ldapCleanup();
 
         // 0. pull
-        ExecTO execution = execProvisioningTask(taskService, 11L, 50, false);
+        ExecTO execution = execProvisioningTask(
+                taskService, "1e419ca4-ea81-4493-a14f-28b90113686d", 50, false);
 
         // 1. verify execution status
         assertEquals(PropagationTaskExecStatus.SUCCESS, PropagationTaskExecStatus.valueOf(execution.getStatus()));
@@ -368,11 +373,11 @@ public class PullTaskITCase extends AbstractTaskITCase {
         assertNotNull(groupTO);
         assertEquals("testLDAPGroup", groupTO.getName());
         assertEquals("true", groupTO.getPlainAttrMap().get("show").getValues().get(0));
-        assertEquals(matchingUsers.getResult().iterator().next().getKey(), groupTO.getUserOwner(), 0);
+        assertEquals(matchingUsers.getResult().iterator().next().getKey(), groupTO.getUserOwner());
         assertNull(groupTO.getGroupOwner());
 
         // SYNCOPE-317
-        execProvisioningTask(taskService, 11L, 50, false);
+        execProvisioningTask(taskService, "1e419ca4-ea81-4493-a14f-28b90113686d", 50, false);
     }
 
     @Test
@@ -433,7 +438,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
             }
 
             // 4. pull
-            execProvisioningTask(taskService, 28L, 50, false);
+            execProvisioningTask(taskService, "30cfd653-257b-495f-8665-281281dbcb3d", 50, false);
 
             // 5. verify that printer was re-created in Syncope (implies that location does not start with given prefix,
             // hence PrefixMappingItemTransformer was applied during pull)
@@ -453,16 +458,21 @@ public class PullTaskITCase extends AbstractTaskITCase {
 
     @Test
     public void filteredReconciliation() {
+        String user1OnTestPull = UUID.randomUUID().toString();
+        String user2OnTestPull = UUID.randomUUID().toString();
+
         JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
         PullTaskTO task = null;
         UserTO userTO = null;
         try {
             // 1. create 2 users on testpull
-            jdbcTemplate.execute("INSERT INTO testpull VALUES (1001, 'user1', 'Doe', 'mail1@apache.org')");
-            jdbcTemplate.execute("INSERT INTO testpull VALUES (1002, 'user2', 'Rossi', 'mail2@apache.org')");
+            jdbcTemplate.execute("INSERT INTO testpull VALUES ("
+                    + "'" + user1OnTestPull + "', 'user1', 'Doe', 'mail1@apache.org')");
+            jdbcTemplate.execute("INSERT INTO testpull VALUES ("
+                    + "'" + user2OnTestPull + "', 'user2', 'Rossi', 'mail2@apache.org')");
 
             // 2. create new pull task for test-db, with reconciliation filter (surname 'Rossi') 
-            task = taskService.read(10L, true);
+            task = taskService.read("7c2242f4-14af-4ab5-af31-cdae23783655", true);
             task.setPullMode(PullMode.FILTERED_RECONCILIATION);
             task.setReconciliationFilterBuilderClassName(TestReconciliationFilterBuilder.class.getName());
             Response response = taskService.create(task);
@@ -488,9 +498,9 @@ public class PullTaskITCase extends AbstractTaskITCase {
                 assertEquals(ClientExceptionType.NotFound, e.getType());
             }
         } finally {
-            jdbcTemplate.execute("DELETE FROM testpull WHERE id = 1001");
-            jdbcTemplate.execute("DELETE FROM testpull WHERE id = 1002");
-            if (task != null && task.getKey() != 7L) {
+            jdbcTemplate.execute("DELETE FROM testpull WHERE id = '" + user1OnTestPull + "'");
+            jdbcTemplate.execute("DELETE FROM testpull WHERE id = '" + user2OnTestPull + "'");
+            if (task != null && !"83f7e85d-9774-43fe-adba-ccd856312994".equals(task.getKey())) {
                 taskService.delete(task.getKey());
             }
             if (userTO != null) {
@@ -519,7 +529,8 @@ public class PullTaskITCase extends AbstractTaskITCase {
         userTO.getResources().add(RESOURCE_NAME_NOPROPAGATION2);
         userTO.getResources().add(RESOURCE_NAME_NOPROPAGATION4);
 
-        userTO.getMemberships().add(new MembershipTO.Builder().group(7L).build());
+        userTO.getMemberships().add(
+                new MembershipTO.Builder().group("bf825fe1-7320-4a54-bd64-143b5c18ab97").build());
 
         userTO = createUser(userTO).getAny();
         assertNotNull(userTO);
@@ -534,13 +545,14 @@ public class PullTaskITCase extends AbstractTaskITCase {
             //-----------------------------
             UserTO template = new UserTO();
 
-            template.getMemberships().add(new MembershipTO.Builder().group(10L).build());
+            template.getMemberships().add(
+                    new MembershipTO.Builder().group("b8d38784-57e7-4595-859a-076222644b55").build());
 
             template.getResources().add(RESOURCE_NAME_NOPROPAGATION4);
             //-----------------------------
 
             // Update pull task
-            PullTaskTO task = taskService.read(9L, true);
+            PullTaskTO task = taskService.read("81d88f73-d474-4450-9031-605daa4e313f", true);
             assertNotNull(task);
 
             task.getTemplates().put(AnyTypeKind.USER.name(), template);
@@ -569,7 +581,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
     @Test
     public void issueSYNCOPE230() {
         // 1. read PullTask for resource-db-pull (table TESTPULL on external H2)
-        execProvisioningTask(taskService, 10L, 50, false);
+        execProvisioningTask(taskService, "7c2242f4-14af-4ab5-af31-cdae23783655", 50, false);
 
         // 3. read e-mail address for user created by the PullTask first execution
         UserTO userTO = readUser("issuesyncope230");
@@ -582,7 +594,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
         jdbcTemplate.execute("UPDATE TESTPULL SET email='updatedSYNCOPE230@syncope.apache.org'");
 
         // 5. re-execute the PullTask
-        execProvisioningTask(taskService, 10L, 50, false);
+        execProvisioningTask(taskService, "7c2242f4-14af-4ab5-af31-cdae23783655", 50, false);
 
         // 6. verify that the e-mail was updated
         userTO = readUser("issuesyncope230");
@@ -597,7 +609,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
         // -----------------------------
         // Add a custom correlation rule
         // -----------------------------
-        PullPolicyTO policyTO = policyService.read(9L);
+        PullPolicyTO policyTO = policyService.read("9454b0d7-2610-400a-be82-fc23cf553dd6");
         policyTO.getSpecification().getCorrelationRules().put(AnyTypeKind.USER.name(), TestPullRule.class.getName());
         policyService.update(policyTO);
         // -----------------------------
@@ -659,7 +671,8 @@ public class PullTaskITCase extends AbstractTaskITCase {
             assertEquals(1, result.getPropagationStatuses().size());
             assertEquals(PropagationTaskExecStatus.SUCCESS, result.getPropagationStatuses().get(0).getStatus());
 
-            ExecTO taskExecTO = execProvisioningTask(taskService, 24L, 50, false);
+            ExecTO taskExecTO = execProvisioningTask(
+                    taskService, "986867e2-993b-430e-8feb-aa9abb4c1dcd", 50, false);
 
             assertNotNull(taskExecTO.getStatus());
             assertEquals(PropagationTaskExecStatus.SUCCESS, PropagationTaskExecStatus.valueOf(taskExecTO.getStatus()));
@@ -694,7 +707,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
         assertTrue(userTO.getVirAttrMap().isEmpty());
 
         // Update pull task
-        PullTaskTO task = taskService.read(12L, true);
+        PullTaskTO task = taskService.read("38abbf9e-a1a3-40a1-a15f-7d0ac02f47f1", true);
         assertNotNull(task);
 
         UserTO template = new UserTO();
@@ -783,70 +796,85 @@ public class PullTaskITCase extends AbstractTaskITCase {
         // First of all, clear any potential conflict with existing user / group
         ldapCleanup();
 
-        // 1. create user in LDAP
-        String oldCleanPassword = "security123";
-        UserTO user = UserITCase.getUniqueSampleTO("syncope313-ldap@syncope.apache.org");
-        user.setPassword(oldCleanPassword);
-        user.getResources().add(RESOURCE_NAME_LDAP);
-        user = createUser(user).getAny();
-        assertNotNull(user);
-        assertFalse(user.getResources().isEmpty());
-
-        // 2. request to change password only on Syncope and not on LDAP
-        String newCleanPassword = "new-security123";
-        UserPatch userPatch = new UserPatch();
-        userPatch.setKey(user.getKey());
-        userPatch.setPassword(new PasswordPatch.Builder().value(newCleanPassword).build());
-        user = updateUser(userPatch).getAny();
-
-        // 3. Check that the Syncope user now has the changed password
-        Pair<Map<String, Set<String>>, UserTO> self = clientFactory.create(user.getUsername(), newCleanPassword).self();
-        assertNotNull(self);
-
-        // 4. Check that the LDAP resource has the old password
-        ConnObjectTO connObject =
-                resourceService.readConnObject(RESOURCE_NAME_LDAP, AnyTypeKind.USER.name(), user.getKey());
-        assertNotNull(getLdapRemoteObject(
-                connObject.getPlainAttrMap().get(Name.NAME).getValues().get(0),
-                oldCleanPassword,
-                connObject.getPlainAttrMap().get(Name.NAME).getValues().get(0)));
-
-        // 5. Update the LDAP Connector to retrieve passwords
-        ResourceTO ldapResource = resourceService.read(RESOURCE_NAME_LDAP);
-        ConnInstanceTO resourceConnector = connectorService.read(
-                ldapResource.getConnector(), Locale.ENGLISH.getLanguage());
-        ConnConfProperty property = resourceConnector.getConfMap().get("retrievePasswordsWithSearch");
-        property.getValues().clear();
-        property.getValues().add(Boolean.TRUE);
-        connectorService.update(resourceConnector);
-
-        // 6. Pull the user from the resource
-        PullTaskTO pullTask = new PullTaskTO();
-        pullTask.setDestinationRealm(SyncopeConstants.ROOT_REALM);
-        pullTask.setName("LDAP Pull Task");
-        pullTask.setActive(true);
-        pullTask.setPerformCreate(true);
-        pullTask.setPerformUpdate(true);
-        pullTask.setPullMode(PullMode.FULL_RECONCILIATION);
-        pullTask.setResource(RESOURCE_NAME_LDAP);
-        pullTask.getActionsClassNames().add(LDAPPasswordPullActions.class.getName());
-        Response taskResponse = taskService.create(pullTask);
-
-        pullTask = getObject(taskResponse.getLocation(), TaskService.class, PullTaskTO.class);
-        assertNotNull(pullTask);
+        UserTO user = null;
+        PullTaskTO pullTask = null;
+        ConnInstanceTO resourceConnector = null;
+        ConnConfProperty property = null;
+        try {
+            // 1. create user in LDAP
+            String oldCleanPassword = "security123";
+            user = UserITCase.getUniqueSampleTO("syncope313-ldap@syncope.apache.org");
+            user.setPassword(oldCleanPassword);
+            user.getResources().add(RESOURCE_NAME_LDAP);
+            user = createUser(user).getAny();
+            assertNotNull(user);
+            assertFalse(user.getResources().isEmpty());
+
+            // 2. request to change password only on Syncope and not on LDAP
+            String newCleanPassword = "new-security123";
+            UserPatch userPatch = new UserPatch();
+            userPatch.setKey(user.getKey());
+            userPatch.setPassword(new PasswordPatch.Builder().value(newCleanPassword).build());
+            user = updateUser(userPatch).getAny();
+
+            // 3. Check that the Syncope user now has the changed password
+            Pair<Map<String, Set<String>>, UserTO> self =
+                    clientFactory.create(user.getUsername(), newCleanPassword).self();
+            assertNotNull(self);
+
+            // 4. Check that the LDAP resource has the old password
+            ConnObjectTO connObject =
+                    resourceService.readConnObject(RESOURCE_NAME_LDAP, AnyTypeKind.USER.name(), user.getKey());
+            assertNotNull(getLdapRemoteObject(
+                    connObject.getPlainAttrMap().get(Name.NAME).getValues().get(0),
+                    oldCleanPassword,
+                    connObject.getPlainAttrMap().get(Name.NAME).getValues().get(0)));
+
+            // 5. Update the LDAP Connector to retrieve passwords
+            ResourceTO ldapResource = resourceService.read(RESOURCE_NAME_LDAP);
+            resourceConnector = connectorService.read(
+                    ldapResource.getConnector(), Locale.ENGLISH.getLanguage());
+            property = resourceConnector.getConfMap().get("retrievePasswordsWithSearch");
+            property.getValues().clear();
+            property.getValues().add(Boolean.TRUE);
+            connectorService.update(resourceConnector);
+
+            // 6. Pull the user from the resource
+            pullTask = new PullTaskTO();
+            pullTask.setDestinationRealm(SyncopeConstants.ROOT_REALM);
+            pullTask.setName("LDAP Pull Task");
+            pullTask.setActive(true);
+            pullTask.setPerformCreate(true);
+            pullTask.setPerformUpdate(true);
+            pullTask.setPullMode(PullMode.FULL_RECONCILIATION);
+            pullTask.setResource(RESOURCE_NAME_LDAP);
+            pullTask.getActionsClassNames().add(LDAPPasswordPullActions.class.getName());
+            Response taskResponse = taskService.create(pullTask);
+
+            pullTask = getObject(taskResponse.getLocation(), TaskService.class, PullTaskTO.class);
+            assertNotNull(pullTask);
+
+            ExecTO execution = execProvisioningTask(taskService, pullTask.getKey(), 50, false);
+            assertEquals(PropagationTaskExecStatus.SUCCESS, PropagationTaskExecStatus.valueOf(execution.getStatus()));
 
-        ExecTO execution = execProvisioningTask(taskService, pullTask.getKey(), 50, false);
-        assertEquals(PropagationTaskExecStatus.SUCCESS, PropagationTaskExecStatus.valueOf(execution.getStatus()));
+            // 7. Test the pulled user
+            self = clientFactory.create(user.getUsername(), oldCleanPassword).self();
+            assertNotNull(self);
+        } finally {
+            // Delete PullTask + user + reset the connector
+            if (pullTask != null) {
+                taskService.delete(pullTask.getKey());
+            }
 
-        // 7. Test the pulled user
-        self = clientFactory.create(user.getUsername(), oldCleanPassword).self();
-        assertNotNull(self);
+            if (resourceConnector != null && property != null) {
+                property.getValues().clear();
+                property.getValues().add(Boolean.FALSE);
+                connectorService.update(resourceConnector);
+            }
 
-        // 8. Delete PullTask + user + reset the connector
-        taskService.delete(pullTask.getKey());
-        property.getValues().clear();
-        property.getValues().add(Boolean.FALSE);
-        connectorService.update(resourceConnector);
-        deleteUser(user.getKey());
+            if (user != null) {
+                deleteUser(user.getKey());
+            }
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PushTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PushTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PushTaskITCase.java
index 15a87f7..ed9b603 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PushTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PushTaskITCase.java
@@ -73,7 +73,8 @@ public class PushTaskITCase extends AbstractTaskITCase {
 
     @Test
     public void read() {
-        PushTaskTO pushTaskTO = taskService.<PushTaskTO>read(17L, true);
+        PushTaskTO pushTaskTO = taskService.<PushTaskTO>read(
+                "0bc11a19-6454-45c2-a4e3-ceef84e5d79b", true);
         assertEquals(UnmatchingRule.ASSIGN, pushTaskTO.getUnmatchingRule());
         assertEquals(MatchingRule.UPDATE, pushTaskTO.getMatchingRule());
     }
@@ -118,56 +119,68 @@ public class PushTaskITCase extends AbstractTaskITCase {
 
     @Test
     public void pushMatchingUnmatchingGroups() {
-        assertFalse(groupService.read(3L).getResources().contains(RESOURCE_NAME_LDAP));
+        assertFalse(groupService.read("29f96485-729e-4d31-88a1-6fc60e4677f3").
+                getResources().contains(RESOURCE_NAME_LDAP));
 
-        execProvisioningTask(taskService, 23L, 50, false);
+        execProvisioningTask(taskService, "fd905ba5-9d56-4f51-83e2-859096a67b75", 50, false);
 
-        assertNotNull(resourceService.readConnObject(RESOURCE_NAME_LDAP, AnyTypeKind.GROUP.name(), 3L));
-        assertTrue(groupService.read(3L).getResources().contains(RESOURCE_NAME_LDAP));
+        assertNotNull(resourceService.readConnObject(
+                RESOURCE_NAME_LDAP, AnyTypeKind.GROUP.name(), "29f96485-729e-4d31-88a1-6fc60e4677f3"));
+        assertTrue(groupService.read("29f96485-729e-4d31-88a1-6fc60e4677f3").
+                getResources().contains(RESOURCE_NAME_LDAP));
 
-        execProvisioningTask(taskService, 23L, 50, false);
+        execProvisioningTask(taskService, "fd905ba5-9d56-4f51-83e2-859096a67b75", 50, false);
 
-        assertNotNull(resourceService.readConnObject(RESOURCE_NAME_LDAP, AnyTypeKind.GROUP.name(), 3L));
-        assertFalse(groupService.read(3L).getResources().contains(RESOURCE_NAME_LDAP));
+        assertNotNull(resourceService.readConnObject(
+                RESOURCE_NAME_LDAP, AnyTypeKind.GROUP.name(), "29f96485-729e-4d31-88a1-6fc60e4677f3"));
+        assertFalse(groupService.read("29f96485-729e-4d31-88a1-6fc60e4677f3").
+                getResources().contains(RESOURCE_NAME_LDAP));
     }
 
     @Test
     public void pushUnmatchingUsers() throws Exception {
-        assertFalse(userService.read(2L).getResources().contains(RESOURCE_NAME_TESTDB2));
-        assertFalse(userService.read(3L).getResources().contains(RESOURCE_NAME_TESTDB2));
-        assertFalse(userService.read(4L).getResources().contains(RESOURCE_NAME_TESTDB2));
-        assertTrue(userService.read(5L).getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertFalse(userService.read("74cd8ece-715a-44a4-a736-e17b46c4e7e6").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertFalse(userService.read("b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertFalse(userService.read("c9b2dec2-00a7-4855-97c0-d854842b4b24").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertTrue(userService.read("823074dc-d280-436d-a7dd-07399fae48ec").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
 
-        final JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
+        JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
         assertEquals(0, jdbcTemplate.queryForList("SELECT ID FROM test2 WHERE ID='puccini'").size());
 
         // ------------------------------------------
         // Unmatching --> Assign --> dryRuyn
         // ------------------------------------------
-        execProvisioningTask(taskService, 13L, 50, true);
+        execProvisioningTask(taskService, "af558be4-9d2f-4359-bf85-a554e6e90be1", 50, true);
         assertEquals(0, jdbcTemplate.queryForList("SELECT ID FROM test2 WHERE ID='vivaldi'").size());
-        assertFalse(userService.read(3L).getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertFalse(userService.read("b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
         // ------------------------------------------
 
-        Set<Long> pushTaskIds = new HashSet<>();
-        pushTaskIds.add(13L);
-        pushTaskIds.add(14L);
-        pushTaskIds.add(15L);
-        pushTaskIds.add(16L);
-        execProvisioningTasks(taskService, pushTaskIds, 50, false);
+        Set<String> pushTaskKeys = new HashSet<>();
+        pushTaskKeys.add("af558be4-9d2f-4359-bf85-a554e6e90be1");
+        pushTaskKeys.add("97f327b6-2eff-4d35-85e8-d581baaab855");
+        pushTaskKeys.add("03aa2a04-4881-4573-9117-753f81b04865");
+        pushTaskKeys.add("5e5f7c7e-9de7-4c6a-99f1-4df1af959807");
+        execProvisioningTasks(taskService, pushTaskKeys, 50, false);
 
         // ------------------------------------------
         // Unatching --> Ignore
         // ------------------------------------------
         assertEquals(1, jdbcTemplate.queryForList("SELECT ID FROM test2 WHERE ID='verdi'").size());
-        assertFalse(userService.read(2L).getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertFalse(userService.read("74cd8ece-715a-44a4-a736-e17b46c4e7e6").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
         // ------------------------------------------
 
         // ------------------------------------------
         // Unmatching --> Assign
         // ------------------------------------------
         assertEquals(1, jdbcTemplate.queryForList("SELECT ID FROM test2 WHERE ID='vivaldi'").size());
-        assertTrue(userService.read(3L).getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertTrue(userService.read("b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
         jdbcTemplate.execute("DELETE FROM test2 WHERE ID='vivaldi'");
         // ------------------------------------------
 
@@ -175,7 +188,8 @@ public class PushTaskITCase extends AbstractTaskITCase {
         // Unmatching --> Provision
         // ------------------------------------------
         assertEquals(1, jdbcTemplate.queryForList("SELECT ID FROM test2 WHERE ID='bellini'").size());
-        assertFalse(userService.read(4L).getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertFalse(userService.read("c9b2dec2-00a7-4855-97c0-d854842b4b24").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
         jdbcTemplate.execute("DELETE FROM test2 WHERE ID='bellini'");
         // ------------------------------------------
 
@@ -183,14 +197,17 @@ public class PushTaskITCase extends AbstractTaskITCase {
         // Unmatching --> Unlink
         // ------------------------------------------
         assertEquals(0, jdbcTemplate.queryForList("SELECT ID FROM test2 WHERE ID='puccini'").size());
-        assertFalse(userService.read(5L).getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertFalse(userService.read("823074dc-d280-436d-a7dd-07399fae48ec").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
         // ------------------------------------------
     }
 
     @Test
     public void pushMatchingUser() throws Exception {
-        assertTrue(userService.read(1L).getResources().contains(RESOURCE_NAME_TESTDB2));
-        assertFalse(userService.read(2L).getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertTrue(userService.read("1417acbe-cbf6-4277-9372-e75e04f97000").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertFalse(userService.read("74cd8ece-715a-44a4-a736-e17b46c4e7e6").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
 
         JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
         assertEquals(1, jdbcTemplate.queryForList("SELECT ID FROM test2 WHERE ID='verdi'").size());
@@ -199,22 +216,24 @@ public class PushTaskITCase extends AbstractTaskITCase {
         // ------------------------------------------
         // Matching --> Deprovision --> dryRuyn
         // ------------------------------------------
-        execProvisioningTask(taskService, 19L, 50, true);
-        assertTrue(userService.read(1L).getResources().contains(RESOURCE_NAME_TESTDB2));
+        execProvisioningTask(taskService, "c46edc3a-a18b-4af2-b707-f4a415507496", 50, true);
+        assertTrue(userService.read("1417acbe-cbf6-4277-9372-e75e04f97000").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
         assertEquals(1, jdbcTemplate.queryForList("SELECT ID FROM test2 WHERE ID='rossini'").size());
         // ------------------------------------------
 
-        Set<Long> pushTaskKeys = new HashSet<>();
-        pushTaskKeys.add(18L);
-        pushTaskKeys.add(19L);
-        pushTaskKeys.add(16L);
+        Set<String> pushTaskKeys = new HashSet<>();
+        pushTaskKeys.add("ec674143-480a-4816-98ad-b61fa090821e");
+        pushTaskKeys.add("c46edc3a-a18b-4af2-b707-f4a415507496");
+        pushTaskKeys.add("5e5f7c7e-9de7-4c6a-99f1-4df1af959807");
 
         execProvisioningTasks(taskService, pushTaskKeys, 50, false);
 
         // ------------------------------------------
         // Matching --> Deprovision && Ignore
         // ------------------------------------------
-        assertFalse(userService.read(2L).getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertFalse(userService.read("74cd8ece-715a-44a4-a736-e17b46c4e7e6").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
         // DELETE Capability not available ....
         assertEquals(1, jdbcTemplate.queryForList("SELECT ID FROM test2 WHERE ID='verdi'").size());
         // ------------------------------------------
@@ -222,7 +241,8 @@ public class PushTaskITCase extends AbstractTaskITCase {
         // ------------------------------------------
         // Matching --> Unassign
         // ------------------------------------------
-        assertFalse(userService.read(1L).getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertFalse(userService.read("1417acbe-cbf6-4277-9372-e75e04f97000").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
         // DELETE Capability not available ....
         assertEquals(1, jdbcTemplate.queryForList("SELECT ID FROM test2 WHERE ID='rossini'").size());
         // ------------------------------------------
@@ -230,21 +250,23 @@ public class PushTaskITCase extends AbstractTaskITCase {
         // ------------------------------------------
         // Matching --> Link
         // ------------------------------------------
-        execProvisioningTask(taskService, 20L, 50, false);
-        assertTrue(userService.read(2L).getResources().contains(RESOURCE_NAME_TESTDB2));
+        execProvisioningTask(taskService, "51318433-cce4-4f71-8f45-9534b6c9c819", 50, false);
+        assertTrue(userService.read("74cd8ece-715a-44a4-a736-e17b46c4e7e6").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
         assertEquals(1, jdbcTemplate.queryForList("SELECT ID FROM test2 WHERE ID='verdi'").size());
         // ------------------------------------------
 
         pushTaskKeys.clear();
-        pushTaskKeys.add(21L);
-        pushTaskKeys.add(22L);
+        pushTaskKeys.add("24b1be9c-7e3b-443a-86c9-798ebce5eaf2");
+        pushTaskKeys.add("375c7b7f-9e3a-4833-88c9-b7787b0a69f2");
 
         execProvisioningTasks(taskService, pushTaskKeys, 50, false);
 
         // ------------------------------------------
         // Matching --> Unlink && Update
         // ------------------------------------------
-        assertFalse(userService.read(2L).getResources().contains(RESOURCE_NAME_TESTDB2));
+        assertFalse(userService.read("74cd8ece-715a-44a4-a736-e17b46c4e7e6").
+                getResources().contains(RESOURCE_NAME_TESTDB2));
         assertEquals(1, jdbcTemplate.queryForList("SELECT ID FROM test2 WHERE ID='verdi'").size());
         // ------------------------------------------
     }
@@ -283,7 +305,7 @@ public class PushTaskITCase extends AbstractTaskITCase {
             // Create resource ad-hoc
             ResourceTO resourceTO = new ResourceTO();
             resourceTO.setKey(resourceName);
-            resourceTO.setConnector(105L);
+            resourceTO.setConnector("74141a3b-0762-4720-a4aa-fc3e374ef3ef");
 
             ProvisionTO provisionTO = new ProvisionTO();
             provisionTO.setAnyType(AnyTypeKind.GROUP.name());

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
index 4d3360f..e02f614 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
@@ -85,13 +85,13 @@ public class RealmITCase extends AbstractITCase {
         assertNotNull(actual.getKey());
         assertEquals("last", actual.getName());
         assertEquals("/even/two/last", actual.getFullPath());
-        assertEquals(actual.getParent(), getRealm("/even/two").getKey(), 0);
+        assertEquals(actual.getParent(), getRealm("/even/two").getKey());
         assertNull(realm.getAccountPolicy());
         assertNull(realm.getPasswordPolicy());
 
         // 2. update setting policies
-        actual.setAccountPolicy(6L);
-        actual.setPasswordPolicy(4L);
+        actual.setAccountPolicy("06e2ed52-6966-44aa-a177-a0ca7434201f");
+        actual.setPasswordPolicy("986d1236-3ac5-4a19-810c-5ab21d79cba1");
         realmService.update(actual);
 
         actual = getRealm(actual.getFullPath());
@@ -127,7 +127,7 @@ public class RealmITCase extends AbstractITCase {
             realmService.create("/odd", realm);
             fail();
         } catch (SyncopeClientException e) {
-            assertEquals(ClientExceptionType.DataIntegrityViolation, e.getType());
+            assertEquals(ClientExceptionType.EntityExists, e.getType());
         }
     }
 
@@ -155,7 +155,7 @@ public class RealmITCase extends AbstractITCase {
         assertNotNull(actuals);
         assertTrue(actuals.length > 0);
         RealmTO actual = actuals[0];
-        assertEquals(policy.getKey(), actual.getAccountPolicy(), 0);
+        assertEquals(policy.getKey(), actual.getAccountPolicy());
 
         // 3. remove policy
         policyService.delete(policy.getKey());

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java
index ff32f2c..d9b299e 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java
@@ -83,7 +83,7 @@ public class ReportITCase extends AbstractITCase {
 
     @Test
     public void read() {
-        ReportTO reportTO = reportService.read(1L);
+        ReportTO reportTO = reportService.read("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
 
         assertNotNull(reportTO);
         assertNotNull(reportTO.getExecutions());
@@ -148,7 +148,7 @@ public class ReportITCase extends AbstractITCase {
         }
     }
 
-    private Long execute(final Long reportKey) {
+    private String execute(final String reportKey) {
         ExecTO execution = reportService.execute(new ExecuteQuery.Builder().key(reportKey).build());
         assertNotNull(execution);
 
@@ -177,8 +177,8 @@ public class ReportITCase extends AbstractITCase {
         return reportTO.getExecutions().get(0).getKey();
     }
 
-    private void checkExport(final Long execId, final ReportExecExportFormat fmt) throws IOException {
-        Response response = reportService.exportExecutionResult(execId, fmt);
+    private void checkExport(final String execKey, final ReportExecExportFormat fmt) throws IOException {
+        Response response = reportService.exportExecutionResult(execKey, fmt);
         assertNotNull(response);
         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusInfo().getStatusCode());
         assertNotNull(response.getHeaderString(HttpHeaders.CONTENT_DISPOSITION));
@@ -192,8 +192,8 @@ public class ReportITCase extends AbstractITCase {
 
     @Test
     public void executeAndExport() throws IOException {
-        ReportTO reportTO = reportService.read(1L);
-        reportTO.setKey(0L);
+        ReportTO reportTO = reportService.read("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
+        reportTO.setKey(null);
         reportTO.setName("executeAndExport" + getUUIDString());
         reportTO.setActive(false);
         reportTO.getExecutions().clear();
@@ -211,7 +211,7 @@ public class ReportITCase extends AbstractITCase {
         reportTO.setActive(true);
         reportService.update(reportTO);
 
-        long execKey = execute(reportTO.getKey());
+        String execKey = execute(reportTO.getKey());
 
         checkExport(execKey, ReportExecExportFormat.XML);
         checkExport(execKey, ReportExecExportFormat.HTML);
@@ -228,15 +228,15 @@ public class ReportITCase extends AbstractITCase {
         } catch (InterruptedException e) {
         }
 
-        ReportTO reportTO = reportService.read(1L);
-        reportTO.setKey(0L);
+        ReportTO reportTO = reportService.read("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
+        reportTO.setKey(null);
         reportTO.setName("deleteExecutions" + getUUIDString());
         reportTO.getExecutions().clear();
         reportTO = createReport(reportTO);
         assertNotNull(reportTO);
 
-        Long execId = execute(reportTO.getKey());
-        assertNotNull(execId);
+        String execKey = execute(reportTO.getKey());
+        assertNotNull(execKey);
 
         try {
             Thread.sleep(1000);
@@ -249,7 +249,7 @@ public class ReportITCase extends AbstractITCase {
         assertNotNull(result);
 
         assertEquals(1, result.getResults().size());
-        assertEquals(execId.toString(), result.getResults().keySet().iterator().next());
+        assertEquals(execKey, result.getResults().keySet().iterator().next());
         assertEquals(BulkActionResult.Status.SUCCESS, result.getResults().entrySet().iterator().next().getValue());
     }
 
@@ -275,7 +275,7 @@ public class ReportITCase extends AbstractITCase {
             report.setTemplate("sample");
             report = createReport(report);
 
-            long execKey = execute(report.getKey());
+            String execKey = execute(report.getKey());
             checkExport(execKey, ReportExecExportFormat.XML);
 
             report = reportService.read(report.getKey());
@@ -315,8 +315,8 @@ public class ReportITCase extends AbstractITCase {
     @Test
     public void issueSYNCOPE102() throws IOException {
         // Create
-        ReportTO reportTO = reportService.read(1L);
-        reportTO.setKey(0L);
+        ReportTO reportTO = reportService.read("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
+        reportTO.setKey(null);
         reportTO.setName("issueSYNCOPE102" + getUUIDString());
         reportTO = createReport(reportTO);
         assertNotNull(reportTO);

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
index e9923ef..91f66ca 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
@@ -66,7 +66,7 @@ public class ResourceITCase extends AbstractITCase {
         ResourceTO resourceTO = new ResourceTO();
 
         resourceTO.setKey(resourceName);
-        resourceTO.setConnector(102L);
+        resourceTO.setConnector("5ffbb4ac-a8c3-4b44-b699-11b398a1ba08");
 
         ProvisionTO provisionTO = new ProvisionTO();
         provisionTO.setAnyType(AnyTypeKind.USER.name());
@@ -159,7 +159,7 @@ public class ResourceITCase extends AbstractITCase {
         mapping.add(item);
 
         resourceTO.setKey(resourceName);
-        resourceTO.setConnector(102L);
+        resourceTO.setConnector("5ffbb4ac-a8c3-4b44-b699-11b398a1ba08");
 
         ConnConfProperty prop = new ConnConfProperty();
         ConnConfPropSchema schema = new ConnConfPropSchema();
@@ -186,7 +186,7 @@ public class ResourceITCase extends AbstractITCase {
         String resourceName = RESOURCE_NAME_CREATE_SINGLE;
         ResourceTO resourceTO = new ResourceTO();
         resourceTO.setKey(resourceName);
-        resourceTO.setConnector(102L);
+        resourceTO.setConnector("5ffbb4ac-a8c3-4b44-b699-11b398a1ba08");
 
         ProvisionTO provisionTO = new ProvisionTO();
         provisionTO.setAnyType(AnyTypeKind.USER.name());
@@ -236,7 +236,7 @@ public class ResourceITCase extends AbstractITCase {
         String resourceName = RESOURCE_NAME_CREATE_WRONG;
         ResourceTO resourceTO = new ResourceTO();
         resourceTO.setKey(resourceName);
-        resourceTO.setConnector(102L);
+        resourceTO.setConnector("5ffbb4ac-a8c3-4b44-b699-11b398a1ba08");
 
         ProvisionTO provisionTO = new ProvisionTO();
         provisionTO.setAnyType(AnyTypeKind.USER.name());
@@ -274,7 +274,7 @@ public class ResourceITCase extends AbstractITCase {
         String resourceName = RESOURCE_NAME_CREATE_WRONG;
         ResourceTO resourceTO = new ResourceTO();
         resourceTO.setKey(resourceName);
-        resourceTO.setConnector(102L);
+        resourceTO.setConnector("5ffbb4ac-a8c3-4b44-b699-11b398a1ba08");
 
         ProvisionTO provisionTO = new ProvisionTO();
         provisionTO.setAnyType(AnyTypeKind.USER.name());
@@ -304,8 +304,8 @@ public class ResourceITCase extends AbstractITCase {
         String resourceName = "res-with-password-policy";
         ResourceTO resourceTO = new ResourceTO();
         resourceTO.setKey(resourceName);
-        resourceTO.setConnector(102L);
-        resourceTO.setPasswordPolicy(4L);
+        resourceTO.setConnector("5ffbb4ac-a8c3-4b44-b699-11b398a1ba08");
+        resourceTO.setPasswordPolicy("986d1236-3ac5-4a19-810c-5ab21d79cba1");
 
         ProvisionTO provisionTO = new ProvisionTO();
         provisionTO.setAnyType(AnyTypeKind.USER.name());
@@ -331,7 +331,7 @@ public class ResourceITCase extends AbstractITCase {
         actual = resourceService.read(resourceName);
         assertNotNull(actual);
         assertNotNull(actual.getPasswordPolicy());
-        assertEquals(4L, (long) actual.getPasswordPolicy());
+        assertEquals("986d1236-3ac5-4a19-810c-5ab21d79cba1", actual.getPasswordPolicy());
     }
 
     @Test
@@ -352,7 +352,7 @@ public class ResourceITCase extends AbstractITCase {
         String resourceName = RESOURCE_NAME_UPDATE;
         ResourceTO resourceTO = new ResourceTO();
         resourceTO.setKey(resourceName);
-        resourceTO.setConnector(101L);
+        resourceTO.setConnector("5aa5b8be-7521-481a-9651-c557aea078c1");
 
         ProvisionTO provisionTO = new ProvisionTO();
         provisionTO.setAnyType(AnyTypeKind.USER.name());
@@ -364,7 +364,7 @@ public class ResourceITCase extends AbstractITCase {
 
         // Update with an existing and already assigned mapping
         MappingItemTO item = new MappingItemTO();
-        item.setKey(112L);
+        item.setKey("cc973ed6-d031-4790-adab-fc059ac0c818");
         item.setExtAttrName("test3");
         item.setIntAttrName("fullname");
         item.setIntMappingType(IntMappingType.UserPlainSchema);
@@ -533,7 +533,7 @@ public class ResourceITCase extends AbstractITCase {
 
     @Test
     public void listConnObjects() {
-        List<Long> groupKeys = new ArrayList<>();
+        List<String> groupKeys = new ArrayList<>();
         for (int i = 0; i < 10; i++) {
             GroupTO group = GroupITCase.getSampleTO("group");
             group.getResources().add(RESOURCE_NAME_LDAP);
@@ -581,7 +581,7 @@ public class ResourceITCase extends AbstractITCase {
             assertEquals(totalRead, read.size());
             assertTrue(totalRead >= 10);
         } finally {
-            for (Long key : groupKeys) {
+            for (String key : groupKeys) {
                 groupService.delete(key);
             }
         }
@@ -611,7 +611,7 @@ public class ResourceITCase extends AbstractITCase {
         ResourceTO resourceTO = new ResourceTO();
 
         resourceTO.setKey(name);
-        resourceTO.setConnector(105L);
+        resourceTO.setConnector("74141a3b-0762-4720-a4aa-fc3e374ef3ef");
 
         ProvisionTO provisionTO = new ProvisionTO();
         provisionTO.setAnyType(AnyTypeKind.GROUP.name());
@@ -656,7 +656,7 @@ public class ResourceITCase extends AbstractITCase {
         String resourceName = RESOURCE_NAME_CREATE_NONE;
         ResourceTO resourceTO = new ResourceTO();
         resourceTO.setKey(resourceName);
-        resourceTO.setConnector(102L);
+        resourceTO.setConnector("5ffbb4ac-a8c3-4b44-b699-11b398a1ba08");
 
         ProvisionTO provisionTO = new ProvisionTO();
         provisionTO.setAnyType(AnyTypeKind.USER.name());

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RoleITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RoleITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RoleITCase.java
index 19adfd3..10b301c 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RoleITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RoleITCase.java
@@ -125,7 +125,7 @@ public class RoleITCase extends AbstractITCase {
 
     @Test
     public void dynMembership() {
-        assertTrue(userService.read(4L).getDynRoles().isEmpty());
+        assertTrue(userService.read("c9b2dec2-00a7-4855-97c0-d854842b4b24").getDynRoles().isEmpty());
 
         RoleTO role = getSampleRoleTO("dynMembership");
         role.setDynMembershipCond("cool==true");
@@ -133,11 +133,12 @@ public class RoleITCase extends AbstractITCase {
         role = getObject(response.getLocation(), RoleService.class, RoleTO.class);
         assertNotNull(role);
 
-        assertTrue(userService.read(4L).getDynRoles().contains(role.getKey()));
+        assertTrue(userService.read(
+                "c9b2dec2-00a7-4855-97c0-d854842b4b24").getDynRoles().contains(role.getKey()));
 
         role.setDynMembershipCond("cool==false");
         roleService.update(role);
 
-        assertTrue(userService.read(4L).getDynGroups().isEmpty());
+        assertTrue(userService.read("c9b2dec2-00a7-4855-97c0-d854842b4b24").getDynGroups().isEmpty());
     }
 }