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("[email protected]"); - - 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)); + } + } +}
