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 2015/06/11 16:04:43 UTC
[5/7] syncope git commit: [SYNCOPE-666] All done now
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/ResourceTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/ResourceTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/ResourceTest.java
deleted file mode 100644
index c058db7..0000000
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/ResourceTest.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.persistence.jpa.entity;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.syncope.common.lib.types.AnyTypeKind;
-import org.apache.syncope.common.lib.types.EntityViolationType;
-import org.apache.syncope.common.lib.types.IntMappingType;
-import org.apache.syncope.common.lib.types.MappingPurpose;
-import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
-import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
-import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
-import org.apache.syncope.core.persistence.api.entity.ConnInstance;
-import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
-import org.apache.syncope.core.persistence.api.entity.resource.Mapping;
-import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
-import org.apache.syncope.core.persistence.api.entity.resource.Provision;
-import org.apache.syncope.core.persistence.jpa.AbstractTest;
-import org.identityconnectors.framework.common.objects.ObjectClass;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
-@Transactional
-public class ResourceTest extends AbstractTest {
-
- @Autowired
- private ExternalResourceDAO resourceDAO;
-
- @Autowired
- private AnyTypeDAO anyTypeDAO;
-
- @Test
- public void findById() {
- ExternalResource resource = resourceDAO.find("ws-target-resource-1");
- assertNotNull("findById did not work", resource);
-
- ConnInstance connector = resource.getConnector();
- assertNotNull("connector not found", connector);
- assertEquals("invalid connector name",
- "net.tirasa.connid.bundles.soap.WebServiceConnector", connector.getConnectorName());
- assertEquals("invalid bundle name", "net.tirasa.connid.bundles.soap", connector.getBundleName());
-
- Mapping mapping = resource.getProvision(anyTypeDAO.findUser()).getMapping();
- assertFalse("no mapping specified", mapping.getItems().isEmpty());
-
- assertTrue(CollectionUtils.exists(mapping.getItems(), new Predicate<MappingItem>() {
-
- @Override
- public boolean evaluate(final MappingItem item) {
- return 100 == item.getKey();
- }
- }));
- }
-
- @Test
- public void findAll() {
- List<ExternalResource> resources = resourceDAO.findAll();
- assertNotNull(resources);
- assertEquals(19, resources.size());
- }
-
- @Test
- public void findAllByPriority() {
- List<ExternalResource> resources = resourceDAO.findAllByPriority();
- assertNotNull(resources);
- assertFalse(resources.isEmpty());
- }
-
- @Test
- public void getConnObjectKey() {
- ExternalResource resource = resourceDAO.find("ws-target-resource-2");
- assertNotNull(resource);
- assertEquals("fullname",
- resource.getProvision(anyTypeDAO.findUser()).getMapping().getConnObjectKeyItem().getIntAttrName());
- }
-
- @Test
- public void save() {
- ExternalResource resource = entityFactory.newEntity(ExternalResource.class);
- resource.setKey("ws-target-resource-basic-save");
- resource.setPropagationPriority(2);
- resource.setPropagationPrimary(true);
-
- Provision provision = entityFactory.newEntity(Provision.class);
- provision.setAnyType(anyTypeDAO.findUser());
- provision.setObjectClass(ObjectClass.ACCOUNT);
- provision.setResource(resource);
- resource.add(provision);
-
- Mapping mapping = entityFactory.newEntity(Mapping.class);
- mapping.setProvision(provision);
- provision.setMapping(mapping);
-
- MappingItem connObjectKey = entityFactory.newEntity(MappingItem.class);
- connObjectKey.setExtAttrName("username");
- connObjectKey.setIntAttrName("fullname");
- connObjectKey.setIntMappingType(IntMappingType.UserKey);
- connObjectKey.setPurpose(MappingPurpose.BOTH);
- mapping.setConnObjectKeyItem(connObjectKey);
-
- ConnInstance connector = resourceDAO.find("ws-target-resource-1").getConnector();
- resource.setConnector(connector);
-
- // save the resource
- ExternalResource actual = resourceDAO.save(resource);
-
- assertNotNull(actual);
- assertNotNull(actual.getConnector());
- assertNotNull(actual.getProvision(anyTypeDAO.findUser()).getMapping());
- assertFalse(actual.getProvision(anyTypeDAO.findUser()).getMapping().getItems().isEmpty());
- assertEquals(Integer.valueOf(2), actual.getPropagationPriority());
- assertTrue(actual.isPropagationPrimary());
- }
-
- @Test(expected = InvalidEntityException.class)
- public void saveInvalidMappingIntAttr() {
- ExternalResource resource = entityFactory.newEntity(ExternalResource.class);
- resource.setKey("ws-target-resource-basic-save-invalid");
-
- ConnInstance connector = resourceDAO.find("ws-target-resource-1").getConnector();
- resource.setConnector(connector);
-
- Provision provision = entityFactory.newEntity(Provision.class);
- provision.setAnyType(anyTypeDAO.findUser());
- provision.setObjectClass(ObjectClass.ACCOUNT);
- provision.setResource(resource);
- resource.add(provision);
-
- Mapping mapping = entityFactory.newEntity(Mapping.class);
- mapping.setProvision(provision);
- provision.setMapping(mapping);
-
- MappingItem connObjectKey = entityFactory.newEntity(MappingItem.class);
- connObjectKey.setConnObjectKey(true);
- connObjectKey.setIntMappingType(IntMappingType.UserPlainSchema);
- mapping.add(connObjectKey);
-
- // save the resource
- resourceDAO.save(resource);
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void saveInvalidConnObjectKeyMapping() {
- ExternalResource resource = entityFactory.newEntity(ExternalResource.class);
- resource.setKey("ws-target-resource-basic-save-invalid");
-
- ConnInstance connector = resourceDAO.find("ws-target-resource-1").getConnector();
- resource.setConnector(connector);
-
- Provision provision = entityFactory.newEntity(Provision.class);
- provision.setAnyType(anyTypeDAO.findUser());
- provision.setObjectClass(ObjectClass.ACCOUNT);
- provision.setResource(resource);
- resource.add(provision);
-
- Mapping mapping = entityFactory.newEntity(Mapping.class);
- mapping.setProvision(provision);
- provision.setMapping(mapping);
-
- MappingItem connObjectKey = entityFactory.newEntity(MappingItem.class);
- connObjectKey.setConnObjectKey(true);
- connObjectKey.setIntMappingType(IntMappingType.UserVirtualSchema);
- mapping.setConnObjectKeyItem(connObjectKey);
-
- // save the resource
- resourceDAO.save(resource);
- }
-
- @Test(expected = InvalidEntityException.class)
- public void saveInvalidMappingExtAttr() {
- ExternalResource resource = entityFactory.newEntity(ExternalResource.class);
- resource.setKey("ws-target-resource-basic-save-invalid");
-
- ConnInstance connector = resourceDAO.find("ws-target-resource-1").getConnector();
- resource.setConnector(connector);
-
- Provision provision = entityFactory.newEntity(Provision.class);
- provision.setAnyType(anyTypeDAO.findUser());
- provision.setObjectClass(ObjectClass.ACCOUNT);
- provision.setResource(resource);
- resource.add(provision);
-
- Mapping mapping = entityFactory.newEntity(Mapping.class);
- mapping.setProvision(provision);
- provision.setMapping(mapping);
-
- MappingItem item = entityFactory.newEntity(MappingItem.class);
- item.setConnObjectKey(true);
- item.setIntAttrName("fullname");
- item.setIntMappingType(IntMappingType.UserPlainSchema);
- mapping.add(item);
-
- item = entityFactory.newEntity(MappingItem.class);
- item.setIntAttrName("userId");
- item.setIntMappingType(IntMappingType.UserPlainSchema);
- mapping.add(item);
-
- resourceDAO.save(resource);
- }
-
- @Test(expected = InvalidEntityException.class)
- public void saveInvalidProvision() {
- ExternalResource resource = entityFactory.newEntity(ExternalResource.class);
- resource.setKey("invalidProvision");
-
- Provision provision = entityFactory.newEntity(Provision.class);
- provision.setAnyType(anyTypeDAO.findUser());
- provision.setObjectClass(ObjectClass.ACCOUNT);
- provision.setResource(resource);
- resource.add(provision);
-
- Mapping mapping = entityFactory.newEntity(Mapping.class);
- mapping.setProvision(provision);
- provision.setMapping(mapping);
-
- MappingItem connObjectKey = entityFactory.newEntity(MappingItem.class);
- connObjectKey.setExtAttrName("username");
- connObjectKey.setIntAttrName("fullname");
- connObjectKey.setIntMappingType(IntMappingType.UserKey);
- connObjectKey.setPurpose(MappingPurpose.BOTH);
- mapping.setConnObjectKeyItem(connObjectKey);
-
- provision = entityFactory.newEntity(Provision.class);
- provision.setAnyType(anyTypeDAO.findGroup());
- provision.setObjectClass(ObjectClass.ACCOUNT);
- provision.setResource(resource);
- resource.add(provision);
-
- ConnInstance connector = resourceDAO.find("ws-target-resource-1").getConnector();
- resource.setConnector(connector);
-
- // save the resource
- resourceDAO.save(resource);
- }
-
- @Test
- public void saveWithGroupMappingType() {
- ExternalResource resource = entityFactory.newEntity(ExternalResource.class);
- resource.setKey("ws-target-resource-basic-save-invalid");
-
- ConnInstance connector = resourceDAO.find("ws-target-resource-1").getConnector();
- resource.setConnector(connector);
-
- Provision provision = entityFactory.newEntity(Provision.class);
- provision.setAnyType(anyTypeDAO.findUser());
- provision.setObjectClass(ObjectClass.ACCOUNT);
- provision.setResource(resource);
- resource.add(provision);
-
- Mapping mapping = entityFactory.newEntity(Mapping.class);
- mapping.setProvision(provision);
- provision.setMapping(mapping);
-
- MappingItem item = entityFactory.newEntity(MappingItem.class);
- item.setIntAttrName("fullname");
- item.setExtAttrName("fullname");
- item.setIntMappingType(IntMappingType.UserPlainSchema);
- item.setPurpose(MappingPurpose.BOTH);
- mapping.setConnObjectKeyItem(item);
-
- item = entityFactory.newEntity(MappingItem.class);
- item.setIntAttrName("icon");
- item.setExtAttrName("icon");
- item.setIntMappingType(IntMappingType.GroupPlainSchema);
- item.setPurpose(MappingPurpose.BOTH);
- mapping.add(item);
-
- item = entityFactory.newEntity(MappingItem.class);
- item.setIntAttrName("mderiveddata");
- item.setExtAttrName("mderiveddata");
- item.setIntMappingType(IntMappingType.AnyObjectDerivedSchema);
- item.setPurpose(MappingPurpose.BOTH);
- mapping.add(item);
-
- // save the resource
- ExternalResource actual = resourceDAO.save(resource);
- assertNotNull(actual);
-
- int items = 0;
- for (MappingItem mapItem : actual.getProvision(anyTypeDAO.findUser()).getMapping().getItems()) {
- items++;
-
- if ("icon".equals(mapItem.getIntAttrName())) {
- assertTrue(IntMappingType.contains(AnyTypeKind.GROUP, mapItem.getIntMappingType().toString()));
- }
- if ("mderiveddata".equals(mapItem.getIntAttrName())) {
- assertTrue(IntMappingType.contains(AnyTypeKind.ANY_OBJECT, mapItem.getIntMappingType().toString()));
- }
- }
- assertEquals(3, items);
- }
-
- @Test
- public void delete() {
- ExternalResource resource = resourceDAO.find("ws-target-resource-2");
- assertNotNull(resource);
-
- resourceDAO.delete(resource.getKey());
-
- ExternalResource actual = resourceDAO.find("ws-target-resource-2");
- assertNull(actual);
- }
-
- @Test
- public void issueSYNCOPE418() {
- ExternalResource resource = entityFactory.newEntity(ExternalResource.class);
- resource.setKey("http://schemas.examples.org/security/authorization/organizationUnit");
-
- try {
- resourceDAO.save(resource);
- fail();
- } catch (InvalidEntityException e) {
- assertTrue(e.hasViolation(EntityViolationType.InvalidName));
- }
- }
-
- @Test(expected = InvalidEntityException.class)
- public void issueSYNCOPE645() {
- ExternalResource resource = entityFactory.newEntity(ExternalResource.class);
- resource.setKey("ws-target-resource-basic-save-invalid");
-
- ConnInstance connector = resourceDAO.find("ws-target-resource-1").getConnector();
- resource.setConnector(connector);
-
- Provision provision = entityFactory.newEntity(Provision.class);
- provision.setAnyType(anyTypeDAO.findUser());
- provision.setObjectClass(ObjectClass.ACCOUNT);
- provision.setResource(resource);
- resource.add(provision);
-
- Mapping mapping = entityFactory.newEntity(Mapping.class);
- mapping.setProvision(provision);
- provision.setMapping(mapping);
-
- final MappingItem item = entityFactory.newEntity(MappingItem.class);
- item.setIntAttrName("icon");
- item.setExtAttrName("icon");
- item.setIntMappingType(IntMappingType.GroupPlainSchema);
- item.setPurpose(MappingPurpose.BOTH);
- mapping.setConnObjectKeyItem(item);
-
- // save the resource
- ExternalResource actual = resourceDAO.save(resource);
- assertNotNull(actual);
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/RoleTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/RoleTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/RoleTest.java
deleted file mode 100644
index 7a20e89..0000000
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/RoleTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.persistence.jpa.entity;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.List;
-import org.apache.syncope.common.lib.types.Entitlement;
-import org.apache.syncope.core.persistence.api.dao.RealmDAO;
-import org.apache.syncope.core.persistence.api.dao.RoleDAO;
-import org.apache.syncope.core.persistence.api.entity.Role;
-import org.apache.syncope.core.persistence.jpa.AbstractTest;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
-@Transactional
-public class RoleTest extends AbstractTest {
-
- @Autowired
- private RoleDAO roleDAO;
-
- @Autowired
- private RealmDAO realmDAO;
-
- @Test
- public void find() {
- Role role1 = roleDAO.find(2L);
- assertNotNull(role1);
- assertNotNull(role1.getName());
- assertFalse(role1.getRealms().isEmpty());
- assertFalse(role1.getEntitlements().isEmpty());
- assertTrue(role1.getEntitlements().contains(Entitlement.USER_LIST));
-
- Role role2 = roleDAO.find(role1.getName());
- assertEquals(role1, role2);
- }
-
- @Test
- public void findAll() {
- List<Role> list = roleDAO.findAll();
- assertNotNull(list);
- assertFalse(list.isEmpty());
- for (Role role : list) {
- assertNotNull(role);
- }
- }
-
- @Test
- public void save() {
- Role role = entityFactory.newEntity(Role.class);
- role.setName("new");
- role.addRealm(realmDAO.getRoot());
- role.addRealm(realmDAO.find("/even/two"));
- role.getEntitlements().add(Entitlement.LOG_LIST);
- role.getEntitlements().add(Entitlement.LOG_SET_LEVEL);
-
- Role actual = roleDAO.save(role);
- assertNotNull(actual);
- }
-
- @Test
- public void delete() {
- assertNotNull(roleDAO.find(3L));
-
- roleDAO.delete(3L);
- assertNull(roleDAO.find(3L));
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/SecurityQuestionTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/SecurityQuestionTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/SecurityQuestionTest.java
deleted file mode 100644
index 950bccc..0000000
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/SecurityQuestionTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.persistence.jpa.entity;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import java.util.List;
-import org.apache.syncope.core.persistence.api.dao.SecurityQuestionDAO;
-import org.apache.syncope.core.persistence.api.entity.user.SecurityQuestion;
-import org.apache.syncope.core.persistence.jpa.AbstractTest;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
-@Transactional
-public class SecurityQuestionTest extends AbstractTest {
-
- @Autowired
- private SecurityQuestionDAO securityQuestionDAO;
-
- @Test
- public void find() {
- SecurityQuestion securityQuestion = securityQuestionDAO.find(1L);
- assertNotNull(securityQuestion);
- assertNotNull(securityQuestion.getContent());
- }
-
- @Test
- public void findAll() {
- List<SecurityQuestion> securityQuestions = securityQuestionDAO.findAll();
- assertNotNull(securityQuestions);
- assertFalse(securityQuestions.isEmpty());
- }
-
- @Test
- public void save() {
- SecurityQuestion securityQuestion = entityFactory.newEntity(SecurityQuestion.class);
- securityQuestion.setContent("What is your favorite pet's name?");
-
- SecurityQuestion actual = securityQuestionDAO.save(securityQuestion);
- assertNotNull(actual);
- assertNotNull(actual.getKey());
- }
-
- @Test
- public void delete() {
- securityQuestionDAO.delete(1L);
- assertNull(securityQuestionDAO.find(1L));
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/TaskExecTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/TaskExecTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/TaskExecTest.java
deleted file mode 100644
index 99f44ae..0000000
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/TaskExecTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.persistence.jpa.entity;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Date;
-import java.util.List;
-import org.apache.syncope.common.lib.types.PropagationTaskExecStatus;
-import org.apache.syncope.common.lib.types.TaskType;
-import org.apache.syncope.core.persistence.api.dao.TaskDAO;
-import org.apache.syncope.core.persistence.api.dao.TaskExecDAO;
-import org.apache.syncope.core.persistence.api.entity.task.PropagationTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
-import org.apache.syncope.core.persistence.jpa.AbstractTest;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
-@Transactional
-public class TaskExecTest extends AbstractTest {
-
- @Autowired
- private TaskExecDAO taskExecDAO;
-
- @Autowired
- private TaskDAO taskDAO;
-
- @Test
- public void findAll() {
- List<TaskExec> list = taskExecDAO.findAll(TaskType.PROPAGATION);
- assertEquals(2, list.size());
-
- list = taskExecDAO.findAll(TaskType.SCHEDULED);
- assertTrue(list.isEmpty());
-
- list = taskExecDAO.findAll(TaskType.SYNCHRONIZATION);
- assertTrue(list.isEmpty());
-
- list = taskExecDAO.findAll(TaskType.NOTIFICATION);
- assertTrue(list.isEmpty());
- }
-
- @Test
- public void findLatestStarted() {
- PropagationTask task = taskDAO.find(1L);
- assertNotNull(task);
-
- TaskExec latestStarted = taskExecDAO.findLatestStarted(task);
- assertNotNull(latestStarted);
- assertEquals(Long.valueOf(1L), latestStarted.getKey());
- }
-
- @Test
- public void issueSYNCOPE214() {
- PropagationTask task = taskDAO.find(1L);
- assertNotNull(task);
-
- String faultyMessage = "A faulty message";
- faultyMessage = faultyMessage.replace('a', '\0');
-
- TaskExec exec = entityFactory.newEntity(TaskExec.class);
- exec.setStartDate(new Date());
- exec.setEndDate(new Date());
- exec.setStatus(PropagationTaskExecStatus.SUCCESS.name());
- exec.setMessage(faultyMessage);
-
- task.addExec(exec);
- exec.setTask(task);
-
- exec = taskExecDAO.save(exec);
- assertNotNull(exec);
-
- assertEquals(faultyMessage.replace('\0', '\n'), exec.getMessage());
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/TaskTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/TaskTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/TaskTest.java
deleted file mode 100644
index a4aed30..0000000
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/TaskTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.persistence.jpa.entity;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import org.apache.syncope.common.lib.types.AnyTypeKind;
-import org.apache.syncope.common.lib.types.PropagationMode;
-import org.apache.syncope.common.lib.types.ResourceOperation;
-import org.apache.syncope.common.lib.types.TaskType;
-import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
-import org.apache.syncope.core.persistence.api.dao.TaskDAO;
-import org.apache.syncope.core.persistence.api.dao.UserDAO;
-import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
-import org.apache.syncope.core.persistence.api.entity.task.PropagationTask;
-import org.apache.syncope.core.persistence.api.entity.user.User;
-import org.apache.syncope.core.persistence.jpa.AbstractTest;
-import org.identityconnectors.framework.common.objects.Attribute;
-import org.identityconnectors.framework.common.objects.AttributeBuilder;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
-@Transactional
-public class TaskTest extends AbstractTest {
-
- @Autowired
- private TaskDAO taskDAO;
-
- @Autowired
- private ExternalResourceDAO resourceDAO;
-
- @Autowired
- private UserDAO userDAO;
-
- @Test
- public void findWithoutExecs() {
- List<PropagationTask> tasks = taskDAO.findToExec(TaskType.PROPAGATION);
- assertNotNull(tasks);
- assertEquals(3, tasks.size());
- }
-
- @Test
- public void findAll() {
- assertEquals(5, taskDAO.findAll(TaskType.PROPAGATION).size());
- assertEquals(1, taskDAO.findAll(TaskType.NOTIFICATION).size());
- assertEquals(1, taskDAO.findAll(TaskType.SCHEDULED).size());
- assertEquals(10, taskDAO.findAll(TaskType.SYNCHRONIZATION).size());
- assertEquals(11, taskDAO.findAll(TaskType.PUSH).size());
- }
-
- @Test
- public void savePropagationTask() {
- ExternalResource resource = resourceDAO.find("ws-target-resource-1");
- assertNotNull(resource);
-
- User user = userDAO.find(2L);
- assertNotNull(user);
-
- PropagationTask task = entityFactory.newEntity(PropagationTask.class);
- task.setResource(resource);
- task.setAnyTypeKind(AnyTypeKind.USER);
- task.setPropagationMode(PropagationMode.TWO_PHASES);
- task.setPropagationOperation(ResourceOperation.CREATE);
- task.setConnObjectKey("one@two.com");
-
- Set<Attribute> attributes = new HashSet<>();
- attributes.add(AttributeBuilder.build("testAttribute", "testValue1", "testValue2"));
- attributes.add(AttributeBuilder.buildPassword("password".toCharArray()));
- task.setAttributes(attributes);
-
- task = taskDAO.save(task);
- assertNotNull(task);
-
- PropagationTask actual = taskDAO.find(task.getKey());
- assertEquals(task, actual);
- }
-
- @Test
- public void delete() {
- PropagationTask task = taskDAO.find(1L);
- assertNotNull(task);
-
- ExternalResource resource = task.getResource();
- assertNotNull(resource);
-
- taskDAO.delete(task);
- task = taskDAO.find(1L);
- assertNull(task);
-
- resource = resourceDAO.find(resource.getKey());
- assertNotNull(resource);
- assertFalse(taskDAO.findAll(resource, TaskType.PROPAGATION).contains(task));
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/UserTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/UserTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/UserTest.java
deleted file mode 100644
index d606dac..0000000
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/UserTest.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.persistence.jpa.entity;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
-
-import java.util.Date;
-import java.util.List;
-import org.apache.syncope.common.lib.SyncopeConstants;
-import org.apache.syncope.common.lib.types.CipherAlgorithm;
-import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
-import org.apache.syncope.core.persistence.api.dao.UserDAO;
-import org.apache.syncope.core.persistence.api.entity.user.UPlainAttrValue;
-import org.apache.syncope.core.persistence.api.entity.user.User;
-import org.apache.syncope.core.persistence.jpa.AbstractTest;
-import org.apache.syncope.core.misc.policy.InvalidPasswordPolicySpecException;
-import org.apache.syncope.core.misc.security.PasswordGenerator;
-import org.apache.syncope.core.persistence.api.dao.RealmDAO;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
-@Transactional
-public class UserTest extends AbstractTest {
-
- @Autowired
- private PasswordGenerator passwordGenerator;
-
- @Autowired
- private UserDAO userDAO;
-
- @Autowired
- private RealmDAO realmDAO;
-
- @Test
- public void findAll() {
- List<User> list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 1, 100);
- assertEquals("did not get expected number of users ", 5, list.size());
- }
-
- @Test
- public void count() {
- Integer count = userDAO.count(SyncopeConstants.FULL_ADMIN_REALMS);
- assertNotNull(count);
- assertEquals(5, count, 0);
- }
-
- @Test
- public void findAllByPageAndSize() {
- // get first page
- List<User> list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 1, 2);
- assertEquals("did not get expected number of users ", 2, list.size());
-
- // get second page
- list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 2, 2);
- assertEquals("did not get expected number of users ", 2, list.size());
-
- // get second page with uncomplete set
- list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 2, 3);
- assertEquals("did not get expected number of users ", 2, list.size());
-
- // get unexistent page
- list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 3, 2);
- assertEquals("did not get expected number of users ", 1, list.size());
- }
-
- @Test
- public void findByDerAttributeValue() {
- final List<User> list = userDAO.findByDerAttrValue("cn", "Vivaldi, Antonio");
- assertEquals("did not get expected number of users ", 1, list.size());
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void findByInvalidDerAttrValue() {
- userDAO.findByDerAttrValue("cn", "Antonio, Maria, Rossi");
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void findByInvalidDerAttrExpression() {
- userDAO.findByDerAttrValue("noschema", "Antonio, Maria");
- }
-
- @Test
- public void findByAttributeValue() {
- final UPlainAttrValue fullnameValue = entityFactory.newEntity(UPlainAttrValue.class);
- fullnameValue.setStringValue("Gioacchino Rossini");
-
- final List<User> list = userDAO.findByAttrValue("fullname", fullnameValue);
- assertEquals("did not get expected number of users ", 1, list.size());
- }
-
- @Test
- public void findByAttributeBooleanValue() {
- final UPlainAttrValue coolValue = entityFactory.newEntity(UPlainAttrValue.class);
- coolValue.setBooleanValue(true);
-
- final List<User> list = userDAO.findByAttrValue("cool", coolValue);
- assertEquals("did not get expected number of users ", 1, list.size());
- }
-
- @Test
- public void findById() {
- User user = userDAO.find(1L);
- assertNotNull("did not find expected user", user);
- user = userDAO.find(3L);
- assertNotNull("did not find expected user", user);
- user = userDAO.find(6L);
- assertNull("found user but did not expect it", user);
- }
-
- @Test
- public void findByUsername() {
- User user = userDAO.find("rossini");
- assertNotNull("did not find expected user", user);
- user = userDAO.find("vivaldi");
- assertNotNull("did not find expected user", user);
- user = userDAO.find("user6");
- assertNull("found user but did not expect it", user);
- }
-
- @Test
- public void save() {
- User user = entityFactory.newEntity(User.class);
- user.setUsername("username");
- user.setRealm(realmDAO.find("/even/two"));
- user.setCreationDate(new Date());
-
- user.setPassword("pass", CipherAlgorithm.SHA256);
-
- try {
- userDAO.save(user);
- fail();
- } catch (InvalidEntityException e) {
- assertNotNull(e);
- }
-
- user.setPassword("password", CipherAlgorithm.SHA256);
-
- user.setUsername("username!");
-
- try {
- userDAO.save(user);
- fail();
- } catch (InvalidEntityException e) {
- assertNotNull(e);
- }
-
- user.setUsername("username");
-
- User actual = userDAO.save(user);
- assertNotNull("expected save to work", actual);
- assertEquals(1, actual.getPasswordHistory().size());
- }
-
- @Test
- public void delete() {
- User user = userDAO.find(3L);
-
- userDAO.delete(user.getKey());
-
- User actual = userDAO.find(3L);
- assertNull("delete did not work", actual);
- }
-
- @Test
- public void issue237() {
- User user = entityFactory.newEntity(User.class);
- user.setUsername("username");
- user.setRealm(realmDAO.find("/even/two"));
- user.setCreationDate(new Date());
-
- user.setPassword("password123", CipherAlgorithm.AES);
-
- User actual = userDAO.save(user);
- assertNotNull(actual);
- }
-
- @Test
- public void issueSYNCOPE391() {
- User user = entityFactory.newEntity(User.class);
- user.setUsername("username");
- user.setPassword(null, CipherAlgorithm.AES);
- user.setRealm(realmDAO.find("/even/two"));
-
- User actual = userDAO.save(user);
- assertNull(user.getPassword());
- assertNotNull(actual);
- }
-
- @Test
- public void issueSYNCOPE226() {
- User user = userDAO.find(5L);
- String password = "";
- try {
- password = passwordGenerator.generate(user);
- } catch (InvalidPasswordPolicySpecException ex) {
- fail(ex.getMessage());
- }
- assertNotNull(password);
-
- user.setPassword(password, CipherAlgorithm.AES);
-
- User actual = userDAO.save(user);
- assertNotNull(actual);
- }
-
- @Test
- public void testPasswordGenerator() {
- User user = userDAO.find(5L);
-
- String password = "";
- try {
- password = passwordGenerator.generate(user);
-
- } catch (InvalidPasswordPolicySpecException ex) {
- fail(ex.getMessage());
- }
- assertNotNull(password);
- user.setPassword(password, CipherAlgorithm.SHA);
- userDAO.save(user);
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/VirAttrTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/VirAttrTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/VirAttrTest.java
deleted file mode 100644
index 02815b8..0000000
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/VirAttrTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.persistence.jpa.entity;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import java.util.List;
-import org.apache.syncope.core.persistence.api.dao.GroupDAO;
-import org.apache.syncope.core.persistence.api.dao.UserDAO;
-import org.apache.syncope.core.persistence.api.dao.VirAttrDAO;
-import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
-import org.apache.syncope.core.persistence.api.entity.VirSchema;
-import org.apache.syncope.core.persistence.api.entity.group.GVirAttr;
-import org.apache.syncope.core.persistence.api.entity.group.Group;
-import org.apache.syncope.core.persistence.api.entity.user.UVirAttr;
-import org.apache.syncope.core.persistence.api.entity.user.User;
-import org.apache.syncope.core.persistence.jpa.AbstractTest;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
-@Transactional
-public class VirAttrTest extends AbstractTest {
-
- @Autowired
- private VirAttrDAO virAttrDAO;
-
- @Autowired
- private UserDAO userDAO;
-
- @Autowired
- private GroupDAO groupDAO;
-
- @Autowired
- private VirSchemaDAO virSchemaDAO;
-
- @Test
- public void findAll() {
- List<UVirAttr> list = virAttrDAO.findAll(UVirAttr.class);
- assertEquals("did not get expected number of derived attributes ", 1, list.size());
- }
-
- @Test
- public void findById() {
- UVirAttr attribute = virAttrDAO.find(100L, UVirAttr.class);
- assertNotNull("did not find expected attribute schema", attribute);
- }
-
- @Test
- public void saveUVirAttribute() {
- VirSchema virSchema = virSchemaDAO.find("virtualdata");
- assertNotNull(virSchema);
-
- User owner = userDAO.find(3L);
- assertNotNull("did not get expected user", owner);
-
- UVirAttr virAttr = entityFactory.newEntity(UVirAttr.class);
- virAttr.setOwner(owner);
- virAttr.setSchema(virSchema);
-
- virAttr = virAttrDAO.save(virAttr);
-
- UVirAttr actual = virAttrDAO.find(virAttr.getKey(), UVirAttr.class);
- assertNotNull("expected save to work", actual);
- assertEquals(virAttr, actual);
- }
-
- @Test
- public void saveGVirAttribute() {
- VirSchema virSchema = virSchemaDAO.find("rvirtualdata");
- assertNotNull(virSchema);
-
- Group owner = groupDAO.find(3L);
- assertNotNull("did not get expected membership", owner);
-
- GVirAttr virAttr = entityFactory.newEntity(GVirAttr.class);
- virAttr.setOwner(owner);
- virAttr.setSchema(virSchema);
-
- virAttr = virAttrDAO.save(virAttr);
-
- GVirAttr actual = virAttrDAO.find(virAttr.getKey(), GVirAttr.class);
- assertNotNull("expected save to work", actual);
- assertEquals(virAttr, actual);
- }
-
- @Test
- public void delete() {
- UVirAttr attribute = virAttrDAO.find(100L, UVirAttr.class);
- String attributeSchemaName = attribute.getSchema().getKey();
-
- virAttrDAO.delete(attribute.getKey(), UVirAttr.class);
-
- UVirAttr actual = virAttrDAO.find(1000L, UVirAttr.class);
- assertNull("delete did not work", actual);
-
- VirSchema attributeSchema = virSchemaDAO.find(attributeSchemaName);
- assertNotNull("user virtual attribute schema deleted " + "when deleting values", attributeSchema);
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/VirSchemaTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/VirSchemaTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/VirSchemaTest.java
deleted file mode 100644
index 3706f5f..0000000
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/VirSchemaTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.persistence.jpa.entity;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.util.List;
-import org.apache.syncope.common.lib.types.EntityViolationType;
-import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
-import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
-import org.apache.syncope.core.persistence.api.entity.VirSchema;
-import org.apache.syncope.core.persistence.jpa.AbstractTest;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
-@Transactional
-public class VirSchemaTest extends AbstractTest {
-
- @Autowired
- private VirSchemaDAO virSchemaDAO;
-
- @Test
- public void findAll() {
- List<VirSchema> list = virSchemaDAO.findAll();
- assertEquals(4, list.size());
- }
-
- @Test
- public void findByName() {
- VirSchema attributeSchema = virSchemaDAO.find("virtualdata");
- assertNotNull("did not find expected virtual attribute schema", attributeSchema);
- }
-
- @Test
- public void save() {
- VirSchema virtualAttributeSchema = entityFactory.newEntity(VirSchema.class);
- virtualAttributeSchema.setKey("virtual");
- virtualAttributeSchema.setReadonly(true);
-
- virSchemaDAO.save(virtualAttributeSchema);
-
- VirSchema actual = virSchemaDAO.find("virtual");
- assertNotNull("expected save to work", actual);
- assertTrue(actual.isReadonly());
- }
-
- @Test
- public void delete() {
- VirSchema virtualdata = virSchemaDAO.find("virtualdata");
-
- virSchemaDAO.delete(virtualdata.getKey());
-
- VirSchema actual = virSchemaDAO.find("virtualdata");
- assertNull("delete did not work", actual);
-
- // ------------- //
- VirSchema rvirtualdata = virSchemaDAO.find("rvirtualdata");
- assertNotNull(rvirtualdata);
-
- virSchemaDAO.delete(rvirtualdata.getKey());
-
- actual = virSchemaDAO.find("rvirtualdata");
- assertNull("delete did not work", actual);
- }
-
- @Test
- public void issueSYNCOPE418() {
- VirSchema schema = entityFactory.newEntity(VirSchema.class);
- schema.setKey("http://schemas.examples.org/security/authorization/organizationUnit");
-
- try {
- virSchemaDAO.save(schema);
- fail();
- } catch (InvalidEntityException e) {
- assertTrue(e.hasViolation(EntityViolationType.InvalidName));
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java
new file mode 100644
index 0000000..5130c28
--- /dev/null
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.inner;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+import org.apache.syncope.common.lib.SyncopeConstants;
+import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
+import org.apache.syncope.core.persistence.api.dao.RealmDAO;
+import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
+import org.apache.syncope.core.persistence.jpa.AbstractTest;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class AnyObjectTest extends AbstractTest {
+
+ @Autowired
+ private AnyObjectDAO anyObjectDAO;
+
+ @Autowired
+ private RealmDAO realmDAO;
+
+ @Test
+ public void findAll() {
+ List<AnyObject> list = anyObjectDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 1, 100);
+ assertFalse(list.isEmpty());
+ }
+
+ @Test
+ public void findAllByType() {
+ List<AnyObject> list = anyObjectDAO.findAll("PRINTER", SyncopeConstants.FULL_ADMIN_REALMS, 1, 100);
+ assertFalse(list.isEmpty());
+
+ list = anyObjectDAO.findAll("UNEXISTING", SyncopeConstants.FULL_ADMIN_REALMS, 1, 100);
+ assertTrue(list.isEmpty());
+ }
+
+ @Test
+ public void find() {
+ AnyObject anyObject = anyObjectDAO.find(2L);
+ assertNotNull(anyObject);
+ assertNotNull(anyObject.getType());
+ assertFalse(anyObject.getType().getClasses().isEmpty());
+ }
+
+ @Test
+ public void save() {
+ AnyObject anyObject = entityFactory.newEntity(AnyObject.class);
+ anyObject.setRealm(realmDAO.find(SyncopeConstants.ROOT_REALM));
+
+ anyObject = anyObjectDAO.save(anyObject);
+ assertNotNull(anyObject);
+ }
+
+ @Test
+ public void delete() {
+ AnyObject anyObject = anyObjectDAO.find(2L);
+ anyObjectDAO.delete(anyObject.getKey());
+
+ AnyObject actual = anyObjectDAO.find(2L);
+ assertNull(actual);
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java
new file mode 100644
index 0000000..37aef3c
--- /dev/null
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java
@@ -0,0 +1,520 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.inner;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Predicate;
+import org.apache.syncope.common.lib.SyncopeConstants;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
+import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
+import org.apache.syncope.core.persistence.api.dao.GroupDAO;
+import org.apache.syncope.core.persistence.api.dao.AnySearchDAO;
+import org.apache.syncope.core.persistence.api.dao.UserDAO;
+import org.apache.syncope.core.persistence.api.dao.search.AttributeCond;
+import org.apache.syncope.core.persistence.api.dao.search.MembershipCond;
+import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
+import org.apache.syncope.core.persistence.api.dao.search.ResourceCond;
+import org.apache.syncope.core.persistence.api.dao.search.RoleCond;
+import org.apache.syncope.core.persistence.api.dao.search.SearchCond;
+import org.apache.syncope.core.persistence.api.dao.search.AnyCond;
+import org.apache.syncope.core.persistence.api.dao.search.AnyTypeCond;
+import org.apache.syncope.core.persistence.api.dao.search.RelationshipCond;
+import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
+import org.apache.syncope.core.persistence.api.entity.group.Group;
+import org.apache.syncope.core.persistence.api.entity.user.User;
+import org.apache.syncope.core.persistence.jpa.AbstractTest;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class AnySearchTest extends AbstractTest {
+
+ @Autowired
+ private AnyObjectDAO anyObjectDAO;
+
+ @Autowired
+ private UserDAO userDAO;
+
+ @Autowired
+ private GroupDAO groupDAO;
+
+ @Autowired
+ private AnySearchDAO searchDAO;
+
+ @Test
+ public void anyObjectMatch() {
+ AnyObject anyObject = anyObjectDAO.find(1L);
+ assertNotNull(anyObject);
+
+ RelationshipCond cond = new RelationshipCond();
+ cond.setAnyObjectKey(2L);
+ assertTrue(searchDAO.matches(anyObject, SearchCond.getLeafCond(cond), AnyTypeKind.ANY_OBJECT));
+ }
+
+ @Test
+ public void userMatch() {
+ User user = userDAO.find(1L);
+ assertNotNull(user);
+
+ MembershipCond groupCond = new MembershipCond();
+ groupCond.setGroupKey(5L);
+ assertFalse(searchDAO.matches(user, SearchCond.getLeafCond(groupCond), AnyTypeKind.USER));
+
+ groupCond.setGroupKey(1L);
+ assertTrue(searchDAO.matches(user, SearchCond.getLeafCond(groupCond), AnyTypeKind.USER));
+
+ RoleCond roleCond = new RoleCond();
+ roleCond.setRoleKey(3L);
+ assertTrue(searchDAO.matches(user, SearchCond.getLeafCond(roleCond), AnyTypeKind.USER));
+ }
+
+ @Test
+ public void groupMatch() {
+ Group group = groupDAO.find(1L);
+ assertNotNull(group);
+
+ AttributeCond attrCond = new AttributeCond();
+ attrCond.setSchema("show");
+ attrCond.setType(AttributeCond.Type.ISNOTNULL);
+
+ assertTrue(searchDAO.matches(group, SearchCond.getLeafCond(attrCond), AnyTypeKind.GROUP));
+ }
+
+ @Test
+ public void searchWithLikeCondition() {
+ AttributeCond fullnameLeafCond = new AttributeCond(AttributeCond.Type.LIKE);
+ fullnameLeafCond.setSchema("fullname");
+ fullnameLeafCond.setExpression("%o%");
+
+ MembershipCond groupCond = new MembershipCond();
+ groupCond.setGroupKey(1L);
+
+ AttributeCond loginDateCond = new AttributeCond(AttributeCond.Type.EQ);
+ loginDateCond.setSchema("loginDate");
+ loginDateCond.setExpression("2009-05-26");
+
+ SearchCond subCond = SearchCond.getAndCond(
+ SearchCond.getLeafCond(fullnameLeafCond), SearchCond.getLeafCond(groupCond));
+
+ assertTrue(subCond.isValid());
+
+ SearchCond cond = SearchCond.getAndCond(subCond, SearchCond.getLeafCond(loginDateCond));
+
+ assertTrue(cond.isValid());
+
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, cond, AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(1, users.size());
+ }
+
+ @Test
+ public void searchWithNotCondition() {
+ AttributeCond fullnameLeafCond = new AttributeCond(AttributeCond.Type.EQ);
+ fullnameLeafCond.setSchema("fullname");
+ fullnameLeafCond.setExpression("Giuseppe Verdi");
+
+ SearchCond cond = SearchCond.getNotLeafCond(fullnameLeafCond);
+ assertTrue(cond.isValid());
+
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, cond, AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(4, users.size());
+
+ Set<Long> ids = new HashSet<>(users.size());
+ for (User user : users) {
+ ids.add(user.getKey());
+ }
+ assertTrue(ids.contains(1L));
+ assertTrue(ids.contains(3L));
+ }
+
+ @Test
+ public void searchByBoolean() {
+ AttributeCond coolLeafCond = new AttributeCond(AttributeCond.Type.EQ);
+ coolLeafCond.setSchema("cool");
+ coolLeafCond.setExpression("true");
+
+ SearchCond cond = SearchCond.getLeafCond(coolLeafCond);
+ assertTrue(cond.isValid());
+
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, cond, AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(1, users.size());
+
+ assertEquals(Long.valueOf(4L), users.get(0).getKey());
+ }
+
+ @Test
+ public void searchByPageAndSize() {
+ AttributeCond fullnameLeafCond = new AttributeCond(AttributeCond.Type.LIKE);
+ fullnameLeafCond.setSchema("fullname");
+ fullnameLeafCond.setExpression("%o%");
+
+ MembershipCond groupCond = new MembershipCond();
+ groupCond.setGroupKey(1L);
+
+ AttributeCond loginDateCond = new AttributeCond(AttributeCond.Type.EQ);
+ loginDateCond.setSchema("loginDate");
+ loginDateCond.setExpression("2009-05-26");
+
+ SearchCond subCond = SearchCond.getAndCond(
+ SearchCond.getLeafCond(fullnameLeafCond), SearchCond.getLeafCond(groupCond));
+
+ assertTrue(subCond.isValid());
+
+ SearchCond cond = SearchCond.getAndCond(subCond, SearchCond.getLeafCond(loginDateCond));
+
+ assertTrue(cond.isValid());
+
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ cond, 1, 2, Collections.<OrderByClause>emptyList(),
+ AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(1, users.size());
+
+ users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ cond, 2, 2, Collections.<OrderByClause>emptyList(),
+ AnyTypeKind.USER);
+ assertNotNull(users);
+ assertTrue(users.isEmpty());
+ }
+
+ @Test
+ public void searchByGroup() {
+ MembershipCond groupCond = new MembershipCond();
+ groupCond.setGroupKey(1L);
+
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ SearchCond.getLeafCond(groupCond), AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(2, users.size());
+
+ groupCond = new MembershipCond();
+ groupCond.setGroupKey(5L);
+
+ users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ SearchCond.getNotLeafCond(groupCond), AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(5, users.size());
+ }
+
+ @Test
+ public void searchByRole() {
+ RoleCond roleCond = new RoleCond();
+ roleCond.setRoleKey(3L);
+
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ SearchCond.getLeafCond(roleCond), AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(1, users.size());
+ }
+
+ @Test
+ public void searchByIsNull() {
+ AttributeCond coolLeafCond = new AttributeCond(AttributeCond.Type.ISNULL);
+ coolLeafCond.setSchema("cool");
+
+ List<User> users = searchDAO.search(
+ SyncopeConstants.FULL_ADMIN_REALMS, SearchCond.getLeafCond(coolLeafCond), AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(4, users.size());
+
+ coolLeafCond = new AttributeCond(AttributeCond.Type.ISNOTNULL);
+ coolLeafCond.setSchema("cool");
+
+ users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ SearchCond.getLeafCond(coolLeafCond), AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(1, users.size());
+ }
+
+ @Test
+ public void searchByResource() {
+ ResourceCond ws2 = new ResourceCond();
+ ws2.setResourceName("ws-target-resource-2");
+
+ ResourceCond ws1 = new ResourceCond();
+ ws1.setResourceName("ws-target-resource-list-mappings-2");
+
+ SearchCond searchCondition = SearchCond.getAndCond(SearchCond.getNotLeafCond(ws2), SearchCond.getLeafCond(ws1));
+ assertTrue(searchCondition.isValid());
+
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(1, users.size());
+ }
+
+ @Test
+ public void searchByBooleanAnyCond() {
+ AttributeCond booleanCond = new AttributeCond(AnyCond.Type.EQ);
+ booleanCond.setSchema("show");
+ booleanCond.setExpression("true");
+
+ List<Group> matchingGroups = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ SearchCond.getLeafCond(booleanCond), AnyTypeKind.GROUP);
+ assertNotNull(matchingGroups);
+ assertFalse(matchingGroups.isEmpty());
+ }
+
+ @Test
+ public void searchByUsernameAndKey() {
+ AnyCond usernameLeafCond = new AnyCond(AnyCond.Type.LIKE);
+ usernameLeafCond.setSchema("username");
+ usernameLeafCond.setExpression("%ini");
+
+ AnyCond idRightCond = new AnyCond(AnyCond.Type.LT);
+ idRightCond.setSchema("key");
+ idRightCond.setExpression("2");
+
+ SearchCond searchCondition = SearchCond.getAndCond(
+ SearchCond.getLeafCond(usernameLeafCond),
+ SearchCond.getLeafCond(idRightCond));
+
+ List<User> matchingUsers = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ searchCondition, AnyTypeKind.USER);
+
+ assertNotNull(matchingUsers);
+ assertEquals(1, matchingUsers.size());
+ assertEquals("rossini", matchingUsers.iterator().next().getUsername());
+ assertEquals(1L, matchingUsers.iterator().next().getKey(), 0);
+ }
+
+ @Test
+ public void searchByGroupNameAndKey() {
+ AnyCond groupNameLeafCond = new AnyCond(AnyCond.Type.EQ);
+ groupNameLeafCond.setSchema("name");
+ groupNameLeafCond.setExpression("root");
+
+ AnyCond idRightCond = new AnyCond(AnyCond.Type.LT);
+ idRightCond.setSchema("key");
+ idRightCond.setExpression("2");
+
+ SearchCond searchCondition = SearchCond.getAndCond(
+ SearchCond.getLeafCond(groupNameLeafCond),
+ SearchCond.getLeafCond(idRightCond));
+
+ assertTrue(searchCondition.isValid());
+
+ List<Group> matchingGroups = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ searchCondition, AnyTypeKind.GROUP);
+
+ assertNotNull(matchingGroups);
+ assertEquals(1, matchingGroups.size());
+ assertEquals("root", matchingGroups.iterator().next().getName());
+ assertEquals(1L, matchingGroups.iterator().next().getKey(), 0);
+ }
+
+ @Test
+ public void searchByUsernameAndFullname() {
+ AnyCond usernameLeafCond = new AnyCond(AnyCond.Type.EQ);
+ usernameLeafCond.setSchema("username");
+ usernameLeafCond.setExpression("rossini");
+
+ AttributeCond idRightCond = new AttributeCond(AttributeCond.Type.LIKE);
+ idRightCond.setSchema("fullname");
+ idRightCond.setExpression("Giuseppe V%");
+
+ SearchCond searchCondition = SearchCond.getOrCond(
+ SearchCond.getLeafCond(usernameLeafCond),
+ SearchCond.getLeafCond(idRightCond));
+
+ List<User> matchingUsers = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ searchCondition, AnyTypeKind.USER);
+ assertNotNull(matchingUsers);
+ assertEquals(2, matchingUsers.size());
+ }
+
+ @Test
+ public void searchById() {
+ AnyCond idLeafCond = new AnyCond(AnyCond.Type.LT);
+ idLeafCond.setSchema("id");
+ idLeafCond.setExpression("2");
+
+ SearchCond searchCondition = SearchCond.getLeafCond(idLeafCond);
+ assertTrue(searchCondition.isValid());
+
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(1, users.size());
+ assertEquals(1L, users.iterator().next().getKey(), 0);
+
+ idLeafCond = new AnyCond(AnyCond.Type.LT);
+ idLeafCond.setSchema("id");
+ idLeafCond.setExpression("4");
+
+ searchCondition = SearchCond.getNotLeafCond(idLeafCond);
+ assertTrue(searchCondition.isValid());
+
+ users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(2, users.size());
+ assertTrue(CollectionUtils.exists(users, new Predicate<User>() {
+
+ @Override
+ public boolean evaluate(User user) {
+ return user.getKey() == 4;
+ }
+ }));
+ }
+
+ @Test
+ public void searchByType() {
+ AnyTypeCond tcond = new AnyTypeCond();
+ tcond.setAnyTypeName("PRINTER");
+
+ SearchCond searchCondition = SearchCond.getLeafCond(tcond);
+ assertTrue(searchCondition.isValid());
+
+ List<AnyObject> printers = searchDAO.search(
+ SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.ANY_OBJECT);
+ assertNotNull(printers);
+ assertEquals(2, printers.size());
+
+ tcond.setAnyTypeName("UNEXISTING");
+ printers = searchDAO.search(
+ SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.ANY_OBJECT);
+ assertNotNull(printers);
+ assertTrue(printers.isEmpty());
+ }
+
+ @Test
+ public void userOrderBy() {
+ AnyCond usernameLeafCond = new AnyCond(AnyCond.Type.EQ);
+ usernameLeafCond.setSchema("username");
+ usernameLeafCond.setExpression("rossini");
+ AttributeCond idRightCond = new AttributeCond(AttributeCond.Type.LIKE);
+ idRightCond.setSchema("fullname");
+ idRightCond.setExpression("Giuseppe V%");
+ SearchCond searchCondition = SearchCond.getOrCond(
+ SearchCond.getLeafCond(usernameLeafCond), SearchCond.getLeafCond(idRightCond));
+
+ List<OrderByClause> orderByClauses = new ArrayList<>();
+ OrderByClause orderByClause = new OrderByClause();
+ orderByClause.setField("username");
+ orderByClause.setDirection(OrderByClause.Direction.DESC);
+ orderByClauses.add(orderByClause);
+ orderByClause = new OrderByClause();
+ orderByClause.setField("fullname");
+ orderByClause.setDirection(OrderByClause.Direction.ASC);
+ orderByClauses.add(orderByClause);
+
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ searchCondition, orderByClauses, AnyTypeKind.USER);
+ assertEquals(searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER),
+ users.size());
+ }
+
+ @Test
+ public void groupOrderBy() {
+ AnyCond idLeafCond = new AnyCond(AnyCond.Type.LIKE);
+ idLeafCond.setSchema("name");
+ idLeafCond.setExpression("%r");
+ SearchCond searchCondition = SearchCond.getLeafCond(idLeafCond);
+ assertTrue(searchCondition.isValid());
+
+ OrderByClause orderByClause = new OrderByClause();
+ orderByClause.setField("name");
+
+ List<Group> groups = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ searchCondition, Collections.singletonList(orderByClause), AnyTypeKind.GROUP);
+ assertEquals(searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS,
+ searchCondition, AnyTypeKind.GROUP),
+ groups.size());
+ }
+
+ @Test
+ public void issue202() {
+ ResourceCond ws2 = new ResourceCond();
+ ws2.setResourceName("ws-target-resource-2");
+
+ ResourceCond ws1 = new ResourceCond();
+ ws1.setResourceName("ws-target-resource-list-mappings-1");
+
+ SearchCond searchCondition =
+ SearchCond.getAndCond(SearchCond.getNotLeafCond(ws2), SearchCond.getNotLeafCond(ws1));
+ assertTrue(searchCondition.isValid());
+
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(2, users.size());
+ assertTrue(CollectionUtils.exists(users, new Predicate<User>() {
+
+ @Override
+ public boolean evaluate(User user) {
+ return user.getKey() == 4;
+ }
+ }));
+ }
+
+ @Test
+ public void issue242() {
+ AnyCond cond = new AnyCond(AttributeCond.Type.LIKE);
+ cond.setSchema("id");
+ cond.setExpression("test%");
+
+ SearchCond searchCondition = SearchCond.getLeafCond(cond);
+ assertTrue(searchCondition.isValid());
+
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER);
+ assertNotNull(users);
+ assertTrue(users.isEmpty());
+ }
+
+ @Test
+ public void issueSYNCOPE46() {
+ AnyCond cond = new AnyCond(AttributeCond.Type.LIKE);
+ cond.setSchema("username");
+ cond.setExpression("%ossin%");
+
+ SearchCond searchCondition = SearchCond.getLeafCond(cond);
+ assertTrue(searchCondition.isValid());
+
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(1, users.size());
+ }
+
+ @Test
+ public void issueSYNCOPE433() {
+ AttributeCond isNullCond = new AttributeCond(AttributeCond.Type.ISNULL);
+ isNullCond.setSchema("loginDate");
+
+ AnyCond likeCond = new AnyCond(AttributeCond.Type.LIKE);
+ likeCond.setSchema("username");
+ likeCond.setExpression("%ossin%");
+
+ SearchCond searchCond = SearchCond.getOrCond(
+ SearchCond.getLeafCond(isNullCond), SearchCond.getLeafCond(likeCond));
+
+ Integer count = searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS, searchCond, AnyTypeKind.USER);
+ assertNotNull(count);
+ assertTrue(count > 0);
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyTypeClassTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyTypeClassTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyTypeClassTest.java
new file mode 100644
index 0000000..ed83f65
--- /dev/null
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyTypeClassTest.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.inner;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+import org.apache.syncope.core.persistence.api.dao.AnyTypeClassDAO;
+import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO;
+import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
+import org.apache.syncope.core.persistence.jpa.AbstractTest;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class AnyTypeClassTest extends AbstractTest {
+
+ @Autowired
+ private PlainSchemaDAO plainSchemaDAO;
+
+ @Autowired
+ private AnyTypeClassDAO anyTypeClassDAO;
+
+ @Test
+ public void find() {
+ AnyTypeClass minimalGroup = anyTypeClassDAO.find("minimal group");
+ assertNotNull(minimalGroup);
+
+ assertFalse(minimalGroup.getPlainSchemas().isEmpty());
+ assertFalse(minimalGroup.getDerSchemas().isEmpty());
+ assertFalse(minimalGroup.getVirSchemas().isEmpty());
+ }
+
+ @Test
+ public void findAll() {
+ List<AnyTypeClass> list = anyTypeClassDAO.findAll();
+ assertFalse(list.isEmpty());
+ }
+
+ @Test
+ public void save() {
+ AnyTypeClass newClass = entityFactory.newEntity(AnyTypeClass.class);
+ newClass.setKey("new class");
+ newClass.add(plainSchemaDAO.find("firstname"));
+
+ newClass = anyTypeClassDAO.save(newClass);
+ assertNotNull(newClass);
+ assertFalse(newClass.getPlainSchemas().isEmpty());
+ assertTrue(newClass.getDerSchemas().isEmpty());
+ assertTrue(newClass.getVirSchemas().isEmpty());
+ }
+
+ @Test
+ public void delete() {
+ AnyTypeClass minimalUser = anyTypeClassDAO.find("minimal user");
+ assertNotNull(minimalUser);
+
+ anyTypeClassDAO.delete(minimalUser.getKey());
+ assertNull(anyTypeClassDAO.find("minimal user"));
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyTypeTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyTypeTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyTypeTest.java
new file mode 100644
index 0000000..be60f46
--- /dev/null
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyTypeTest.java
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.inner;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.util.List;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
+import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
+import org.apache.syncope.core.persistence.api.dao.AnyTypeClassDAO;
+import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
+import org.apache.syncope.core.persistence.api.entity.AnyType;
+import org.apache.syncope.core.persistence.jpa.AbstractTest;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class AnyTypeTest extends AbstractTest {
+
+ @Autowired
+ private AnyTypeDAO anyTypeDAO;
+
+ @Autowired
+ private AnyTypeClassDAO anyTypeClassDAO;
+
+ @Test
+ public void find() {
+ AnyType userType = anyTypeDAO.findUser();
+ assertNotNull(userType);
+ assertEquals(AnyTypeKind.USER, userType.getKind());
+ assertEquals(AnyTypeKind.USER.name(), userType.getKey());
+ assertFalse(userType.getClasses().isEmpty());
+
+ AnyType groupType = anyTypeDAO.findGroup();
+ assertNotNull(groupType);
+ assertEquals(AnyTypeKind.GROUP, groupType.getKind());
+ assertEquals(AnyTypeKind.GROUP.name(), groupType.getKey());
+ assertFalse(groupType.getClasses().isEmpty());
+
+ AnyType otherType = anyTypeDAO.find("PRINTER");
+ assertNotNull(otherType);
+ assertEquals(AnyTypeKind.ANY_OBJECT, otherType.getKind());
+ assertEquals("PRINTER", otherType.getKey());
+ }
+
+ @Test
+ public void findAll() {
+ List<AnyType> list = anyTypeDAO.findAll();
+ assertFalse(list.isEmpty());
+ }
+
+ @Test
+ public void save() {
+ AnyType newType = entityFactory.newEntity(AnyType.class);
+ newType.setKey("new type");
+ newType.setKind(AnyTypeKind.ANY_OBJECT);
+ newType.add(anyTypeClassDAO.find("generic membership"));
+ newType.add(anyTypeClassDAO.find("csv"));
+
+ newType = anyTypeDAO.save(newType);
+ assertNotNull(newType);
+ assertFalse(newType.getClasses().isEmpty());
+ }
+
+ @Test(expected = InvalidEntityException.class)
+ public void saveInvalidKind() {
+ AnyType newType = entityFactory.newEntity(AnyType.class);
+ newType.setKey("new type");
+ newType.setKind(AnyTypeKind.USER);
+ anyTypeDAO.save(newType);
+ }
+
+ @Test(expected = InvalidEntityException.class)
+ public void saveInvalidName() {
+ AnyType newType = entityFactory.newEntity(AnyType.class);
+ newType.setKey("group");
+ newType.setKind(AnyTypeKind.ANY_OBJECT);
+ anyTypeDAO.save(newType);
+ }
+
+ @Test
+ public void delete() {
+ AnyType otherType = anyTypeDAO.find("PRINTER");
+ assertNotNull(otherType);
+
+ anyTypeDAO.delete(otherType.getKey());
+ assertNull(anyTypeDAO.find("PRINTER"));
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void deleteInvalid() {
+ anyTypeDAO.delete(anyTypeDAO.findUser().getKey());
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8927ef4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConfTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConfTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConfTest.java
new file mode 100644
index 0000000..1e90e5c
--- /dev/null
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConfTest.java
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.inner;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.syncope.common.lib.types.AttrSchemaType;
+import org.apache.syncope.common.lib.types.EntityViolationType;
+import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
+import org.apache.syncope.core.persistence.api.dao.ConfDAO;
+import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO;
+import org.apache.syncope.core.persistence.api.entity.PlainAttrUniqueValue;
+import org.apache.syncope.core.persistence.api.entity.PlainSchema;
+import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttr;
+import org.apache.syncope.core.persistence.jpa.AbstractTest;
+import org.apache.syncope.core.persistence.jpa.entity.conf.JPACPlainAttrValue;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class ConfTest extends AbstractTest {
+
+ @Autowired
+ private ConfDAO confDAO;
+
+ @Autowired
+ private PlainSchemaDAO plainSchemaDAO;
+
+ @Test
+ public void read() {
+ CPlainAttr conf = confDAO.find("selfRegistration.allowed");
+ assertNotNull(conf);
+ assertTrue(conf.getValues().get(0).getBooleanValue());
+
+ conf = confDAO.find("authentication.statuses");
+ assertNotNull(conf);
+ assertEquals(2, conf.getValues().size());
+
+ conf = confDAO.find("non.existing");
+ assertNull(conf);
+ }
+
+ private void add(final CPlainAttr newAttr, final String value) {
+ JPACPlainAttrValue attrValue;
+ if (newAttr.getSchema().isUniqueConstraint()) {
+ attrValue = new JPACPlainAttrValue();
+ ((PlainAttrUniqueValue) attrValue).setSchema(newAttr.getSchema());
+ } else {
+ attrValue = new JPACPlainAttrValue();
+ }
+ newAttr.add(value, attrValue);
+ }
+
+ @Test
+ public void setAndDelete() {
+ // 1. create CSChema
+ PlainSchema useless = entityFactory.newEntity(PlainSchema.class);
+ useless.setKey("useless");
+ useless.setType(AttrSchemaType.Date);
+ useless.setConversionPattern("yyyy-MM-dd");
+ useless = plainSchemaDAO.save(useless);
+
+ // 2. create conf
+ CPlainAttr newConf = entityFactory.newEntity(CPlainAttr.class);
+ newConf.setSchema(useless);
+ add(newConf, "2014-06-20");
+ confDAO.save(newConf);
+
+ CPlainAttr actual = confDAO.find("useless");
+ assertEquals(actual.getValuesAsStrings(), newConf.getValuesAsStrings());
+
+ // 3. update conf
+ newConf.getValues().clear();
+ add(newConf, "2014-06-20");
+ confDAO.save(newConf);
+
+ actual = confDAO.find("useless");
+ assertEquals(actual.getValuesAsStrings(), newConf.getValuesAsStrings());
+
+ // 4. delete conf
+ confDAO.delete("useless");
+ assertNull(confDAO.find("useless"));
+ }
+
+ @Test
+ public void issueSYNCOPE418() {
+ try {
+ PlainSchema failing = entityFactory.newEntity(PlainSchema.class);
+ failing.setKey("http://schemas.examples.org/security/authorization/organizationUnit");
+ failing.setType(AttrSchemaType.String);
+ plainSchemaDAO.save(failing);
+
+ fail();
+ } catch (InvalidEntityException e) {
+ assertTrue(e.hasViolation(EntityViolationType.InvalidName));
+ }
+ }
+}