Modified: syncope/branches/1_1_X/console/src/main/resources/org/apache/syncope/console/pages/panels/SyncTasks.html URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/console/src/main/resources/org/apache/syncope/console/pages/panels/SyncTasks.html?rev=1556805&r1=1556804&r2=1556805&view=diff ============================================================================== --- syncope/branches/1_1_X/console/src/main/resources/org/apache/syncope/console/pages/panels/SyncTasks.html (original) +++ syncope/branches/1_1_X/console/src/main/resources/org/apache/syncope/console/pages/panels/SyncTasks.html Thu Jan 9 13:45:14 2014 @@ -16,7 +16,7 @@ KIND, either express or implied. See th specific language governing permissions and limitations under the License. --> -<html> +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org"> <wicket:panel> <div id="users-contain" class="ui-widget" style="width:auto"> <span wicket:id="container"> @@ -39,4 +39,4 @@ under the License. <wicket:message key="create_task"/> </a> </wicket:panel> -</html> +</html> \ No newline at end of file
Modified: syncope/branches/1_1_X/console/src/main/resources/org/apache/syncope/console/pages/panels/VirtualAttributesPanel.html URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/console/src/main/resources/org/apache/syncope/console/pages/panels/VirtualAttributesPanel.html?rev=1556805&r1=1556804&r2=1556805&view=diff ============================================================================== --- syncope/branches/1_1_X/console/src/main/resources/org/apache/syncope/console/pages/panels/VirtualAttributesPanel.html (original) +++ syncope/branches/1_1_X/console/src/main/resources/org/apache/syncope/console/pages/panels/VirtualAttributesPanel.html Thu Jan 9 13:45:14 2014 @@ -16,43 +16,45 @@ KIND, either express or implied. See th specific language governing permissions and limitations under the License. --> -<wicket:panel> - <table class="ui-widget ui-widget-content ui-corner-all" - style="font-size: 1em;margin-top:2px;" - width="100%" cellpadding="2px" cellspacing="1px"> - <thead> - <tr class="ui-widget-header"> - <th><wicket:message key="virtualAttributeToBeRemoved"/></th> - <th><wicket:message key="virtualAttributeName"/></th> - <th><wicket:message key="virtualAttributeValue"/></th> - </tr> - </thead> +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org"> + <wicket:panel> + <table class="ui-widget ui-widget-content ui-corner-all" + style="font-size: 1em;margin-top:2px;" + width="100%" cellpadding="2px" cellspacing="1px"> + <thead> + <tr class="ui-widget-header"> + <th><wicket:message key="virtualAttributeToBeRemoved"/></th> + <th><wicket:message key="virtualAttributeName"/></th> + <th><wicket:message key="virtualAttributeValue"/></th> + </tr> + </thead> - <tfoot> - <tr> - <td> - <input type="submit" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" - wicket:id="addAttributeBtn" /> - </td> - </tr> - </tfoot> + <tfoot> + <tr> + <td> + <input type="submit" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" + wicket:id="addAttributeBtn" /> + </td> + </tr> + </tfoot> - <tbody wicket:id="virAttrContainer"> - <tr wicket:id="attributes"> - <td align="center" valign="top"> - <input type="checkbox" class="text ui-widget-content ui-corner-all" wicket:id="toRemove"/> - </td> + <tbody wicket:id="virAttrContainer"> + <tr wicket:id="attributes"> + <td align="center" valign="top"> + <input type="checkbox" class="text ui-widget-content ui-corner-all" wicket:id="toRemove"/> + </td> - <td align="center" valign="top"> - <select class="text ui-widget-content ui-corner-all" - style="width:100%" wicket:id="schema"/> - </td> + <td align="center" valign="top"> + <select class="text ui-widget-content ui-corner-all" + style="width:100%" wicket:id="schema"/> + </td> - <td align="center " valign="top"> - <span wicket:id="values" style="text-align:left;display:block;width:95%">[values]</span> - </td> + <td align="center " valign="top"> + <span wicket:id="values" style="text-align:left;display:block;width:95%">[values]</span> + </td> - </tr> - </tbody> - </table> -</wicket:panel> + </tr> + </tbody> + </table> + </wicket:panel> +</html> \ No newline at end of file Modified: syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java?rev=1556805&r1=1556804&r2=1556805&view=diff ============================================================================== --- syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java (original) +++ syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java Thu Jan 9 13:45:14 2014 @@ -72,7 +72,7 @@ public class ExternalResource extends Ab /** * The resource type is identified by the associated connector. */ - @ManyToOne(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE}) + @ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.MERGE }) @NotNull private ConnInstance connector; Modified: syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/beans/role/SyncopeRole.java URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/beans/role/SyncopeRole.java?rev=1556805&r1=1556804&r2=1556805&view=diff ============================================================================== --- syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/beans/role/SyncopeRole.java (original) +++ syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/beans/role/SyncopeRole.java Thu Jan 9 13:45:14 2014 @@ -58,7 +58,7 @@ import org.apache.syncope.core.persisten @Entity @Table(uniqueConstraints = -@UniqueConstraint(columnNames = {"name", "parent_id"})) + @UniqueConstraint(columnNames = { "name", "parent_id" })) @Cacheable @SyncopeRoleCheck public class SyncopeRole extends AbstractAttributable { @@ -82,9 +82,9 @@ public class SyncopeRole extends Abstrac @ManyToMany(fetch = FetchType.EAGER) @JoinTable(joinColumns = - @JoinColumn(name = "role_id"), - inverseJoinColumns = - @JoinColumn(name = "entitlement_name")) + @JoinColumn(name = "role_id"), + inverseJoinColumns = + @JoinColumn(name = "entitlement_name")) private Set<Entitlement> entitlements; @OneToMany(cascade = CascadeType.ALL, mappedBy = "owner") @@ -140,9 +140,9 @@ public class SyncopeRole extends Abstrac */ @ManyToMany(fetch = FetchType.EAGER) @JoinTable(joinColumns = - @JoinColumn(name = "role_id"), - inverseJoinColumns = - @JoinColumn(name = "resource_name")) + @JoinColumn(name = "role_id"), + inverseJoinColumns = + @JoinColumn(name = "resource_name")) @Valid private Set<ExternalResource> resources; Modified: syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/ResourceDAO.java URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/ResourceDAO.java?rev=1556805&r1=1556804&r2=1556805&view=diff ============================================================================== --- syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/ResourceDAO.java (original) +++ syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/ResourceDAO.java Thu Jan 9 13:45:14 2014 @@ -21,14 +21,20 @@ package org.apache.syncope.core.persiste import java.util.List; import org.apache.syncope.common.types.IntMappingType; +import org.apache.syncope.common.types.PolicyType; import org.apache.syncope.core.persistence.beans.AbstractMappingItem; import org.apache.syncope.core.persistence.beans.ExternalResource; +import org.apache.syncope.core.persistence.beans.Policy; import org.apache.syncope.core.persistence.validation.entity.InvalidEntityException; public interface ResourceDAO extends DAO { ExternalResource find(String name); + List<ExternalResource> findByPolicy(Policy policy); + + List<ExternalResource> findWithoutPolicy(PolicyType type); + List<ExternalResource> findAll(); List<ExternalResource> findAllByPriority(); Modified: syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/RoleDAO.java URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/RoleDAO.java?rev=1556805&r1=1556804&r2=1556805&view=diff ============================================================================== --- syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/RoleDAO.java (original) +++ syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/RoleDAO.java Thu Jan 9 13:45:14 2014 @@ -21,8 +21,10 @@ package org.apache.syncope.core.persiste import java.util.List; import org.apache.syncope.common.services.InvalidSearchConditionException; +import org.apache.syncope.common.types.PolicyType; import org.apache.syncope.core.persistence.beans.Entitlement; import org.apache.syncope.core.persistence.beans.ExternalResource; +import org.apache.syncope.core.persistence.beans.Policy; import org.apache.syncope.core.persistence.beans.membership.Membership; import org.apache.syncope.core.persistence.beans.role.RAttrValue; import org.apache.syncope.core.persistence.beans.role.SyncopeRole; @@ -39,7 +41,11 @@ public interface RoleDAO extends Attribu List<SyncopeRole> findOwned(SyncopeUser owner); - List<SyncopeRole> findByEntitlement(final Entitlement entitlement); + List<SyncopeRole> findByEntitlement(Entitlement entitlement); + + List<SyncopeRole> findByPolicy(Policy policy); + + List<SyncopeRole> findWithoutPolicy(PolicyType type); List<SyncopeRole> findAncestors(SyncopeRole role); Modified: syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ResourceDAOImpl.java URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ResourceDAOImpl.java?rev=1556805&r1=1556804&r2=1556805&view=diff ============================================================================== --- syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ResourceDAOImpl.java (original) +++ syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ResourceDAOImpl.java Thu Jan 9 13:45:14 2014 @@ -24,9 +24,11 @@ import java.util.Set; import javax.persistence.NoResultException; import javax.persistence.TypedQuery; import org.apache.syncope.common.types.IntMappingType; +import org.apache.syncope.common.types.PolicyType; import org.apache.syncope.core.persistence.beans.AbstractMapping; import org.apache.syncope.core.persistence.beans.AbstractMappingItem; import org.apache.syncope.core.persistence.beans.ExternalResource; +import org.apache.syncope.core.persistence.beans.Policy; import org.apache.syncope.core.persistence.beans.PropagationTask; import org.apache.syncope.core.persistence.beans.SyncTask; import org.apache.syncope.core.persistence.beans.role.SyncopeRole; @@ -58,7 +60,7 @@ public class ResourceDAOImpl extends Abs @Override public ExternalResource find(final String name) { - TypedQuery<ExternalResource> query = entityManager.createQuery("SELECT e " + "FROM " + TypedQuery<ExternalResource> query = entityManager.createQuery("SELECT e FROM " + ExternalResource.class.getSimpleName() + " e " + "WHERE e.name = :name", ExternalResource.class); query.setParameter("name", name); @@ -72,19 +74,58 @@ public class ResourceDAOImpl extends Abs return result; } + private StringBuilder getByPolicyQuery(final PolicyType type) { + StringBuilder query = new StringBuilder("SELECT e FROM ").append(ExternalResource.class.getSimpleName()). + append(" e WHERE e."); + switch (type) { + case ACCOUNT: + case GLOBAL_ACCOUNT: + query.append("accountPolicy"); + break; + + case PASSWORD: + case GLOBAL_PASSWORD: + query.append("passwordPolicy"); + break; + + case SYNC: + case GLOBAL_SYNC: + query.append("syncPolicy"); + break; + + default: + break; + } + return query; + } + + @Override + public List<ExternalResource> findByPolicy(final Policy policy) { + TypedQuery<ExternalResource> query = entityManager.createQuery( + getByPolicyQuery(policy.getType()).append(" = :policy").toString(), ExternalResource.class); + query.setParameter("policy", policy); + return query.getResultList(); + } + + @Override + public List<ExternalResource> findWithoutPolicy(final PolicyType type) { + TypedQuery<ExternalResource> query = entityManager.createQuery( + getByPolicyQuery(type).append(" IS NULL").toString(), ExternalResource.class); + return query.getResultList(); + } + @Override public List<ExternalResource> findAll() { - TypedQuery<ExternalResource> query = - entityManager.createQuery("SELECT e " + "FROM " + ExternalResource.class.getSimpleName() + " e", - ExternalResource.class); + TypedQuery<ExternalResource> query = entityManager.createQuery( + "SELECT e FROM " + ExternalResource.class.getSimpleName() + " e", ExternalResource.class); return query.getResultList(); } @Override public List<ExternalResource> findAllByPriority() { - TypedQuery<ExternalResource> query = - entityManager.createQuery("SELECT e " + "FROM " + ExternalResource.class.getSimpleName() + " e " - + "ORDER BY e.propagationPriority", ExternalResource.class); + TypedQuery<ExternalResource> query = entityManager.createQuery( + "SELECT e FROM " + ExternalResource.class.getSimpleName() + " e ORDER BY e.propagationPriority", + ExternalResource.class); return query.getResultList(); } @@ -97,7 +138,7 @@ public class ResourceDAOImpl extends Abs * @return the same entity, updated */ @Override - @Transactional(rollbackFor = {Throwable.class}) + @Transactional(rollbackFor = { Throwable.class }) public ExternalResource save(final ExternalResource resource) { ExternalResource merged = entityManager.merge(resource); try { Modified: syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RoleDAOImpl.java URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RoleDAOImpl.java?rev=1556805&r1=1556804&r2=1556805&view=diff ============================================================================== --- syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RoleDAOImpl.java (original) +++ syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RoleDAOImpl.java Thu Jan 9 13:45:14 2014 @@ -18,17 +18,22 @@ */ package org.apache.syncope.core.persistence.dao.impl; +import java.util.AbstractMap; import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import java.util.Map; import javax.persistence.NoResultException; import javax.persistence.TypedQuery; import org.apache.syncope.common.services.InvalidSearchConditionException; import org.apache.syncope.common.types.AttributableType; +import org.apache.syncope.common.types.PolicyType; import org.apache.syncope.core.persistence.beans.AbstractAttributable; import org.apache.syncope.core.persistence.beans.AbstractVirAttr; import org.apache.syncope.core.persistence.beans.Entitlement; import org.apache.syncope.core.persistence.beans.ExternalResource; +import org.apache.syncope.core.persistence.beans.Policy; import org.apache.syncope.core.persistence.beans.membership.Membership; import org.apache.syncope.core.persistence.beans.role.RAttrValue; import org.apache.syncope.core.persistence.beans.role.SyncopeRole; @@ -138,12 +143,83 @@ public class RoleDAOImpl extends Abstrac public List<SyncopeRole> findByEntitlement(final Entitlement entitlement) { TypedQuery<SyncopeRole> query = entityManager.createQuery("SELECT e FROM " + SyncopeRole.class.getSimpleName() + " e " - + "WHERE :entitlement MEMBER OF e.entitlements", SyncopeRole.class); + + "WHERE :entitlement MEMBER OF e.entitlements", SyncopeRole.class); query.setParameter("entitlement", entitlement); return query.getResultList(); } + private Map.Entry<String, String> getPolicyFields(final PolicyType type) { + String policyField; + String inheritPolicyField; + if (type == PolicyType.GLOBAL_ACCOUNT || type == PolicyType.ACCOUNT) { + policyField = "accountPolicy"; + inheritPolicyField = "inheritAccountPolicy"; + } else { + policyField = "passwordPolicy"; + inheritPolicyField = "inheritPasswordPolicy"; + } + + return new AbstractMap.SimpleEntry<String, String>(policyField, inheritPolicyField); + } + + private List<SyncopeRole> findSamePolicyChildren(final SyncopeRole role, final PolicyType type) { + List<SyncopeRole> result = new ArrayList<SyncopeRole>(); + + for (SyncopeRole child : findChildren(role)) { + boolean inherit = type == PolicyType.GLOBAL_ACCOUNT || type == PolicyType.ACCOUNT + ? child.isInheritAccountPolicy() + : child.isInheritPasswordPolicy(); + if (inherit) { + result.add(child); + result.addAll(findSamePolicyChildren(child, type)); + } + } + + return result; + } + + @Override + public List<SyncopeRole> findByPolicy(final Policy policy) { + if (policy.getType() == PolicyType.GLOBAL_SYNC || policy.getType() == PolicyType.SYNC) { + return Collections.<SyncopeRole>emptyList(); + } + + Map.Entry<String, String> policyFields = getPolicyFields(policy.getType()); + StringBuilder queryString = new StringBuilder("SELECT e FROM "). + append(SyncopeRole.class.getSimpleName()).append(" e WHERE e."). + append(policyFields.getKey()).append(" = :policy AND (e."). + append(policyFields.getValue()).append(" IS NULL OR e."). + append(policyFields.getValue()).append(" = 0)"); + + TypedQuery<SyncopeRole> query = entityManager.createQuery(queryString.toString(), SyncopeRole.class); + query.setParameter("policy", policy); + + List<SyncopeRole> result = new ArrayList<SyncopeRole>(); + for (SyncopeRole role : query.getResultList()) { + result.add(role); + result.addAll(findSamePolicyChildren(role, policy.getType())); + } + return result; + } + + @Override + public List<SyncopeRole> findWithoutPolicy(final PolicyType type) { + if (type == PolicyType.GLOBAL_SYNC || type == PolicyType.SYNC) { + return Collections.<SyncopeRole>emptyList(); + } + + Map.Entry<String, String> policyFields = getPolicyFields(type); + StringBuilder queryString = new StringBuilder("SELECT e FROM "). + append(SyncopeRole.class.getSimpleName()).append(" e WHERE e."). + append(policyFields.getKey()).append(" IS NULL AND (e."). + append(policyFields.getValue()).append(" IS NULL OR e."). + append(policyFields.getValue()).append(" = 0)"); + + TypedQuery<SyncopeRole> query = entityManager.createQuery(queryString.toString(), SyncopeRole.class); + return query.getResultList(); + } + private void findAncestors(final List<SyncopeRole> result, final SyncopeRole role) { if (role.getParent() != null && !result.contains(role.getParent())) { result.add(role.getParent()); @@ -161,7 +237,7 @@ public class RoleDAOImpl extends Abstrac @Override public List<SyncopeRole> findChildren(final SyncopeRole role) { TypedQuery<SyncopeRole> query = - entityManager.createQuery("SELECT r FROM SyncopeRole r WHERE " + "r.parent=:role", SyncopeRole.class); + entityManager.createQuery("SELECT r FROM SyncopeRole r WHERE r.parent=:role", SyncopeRole.class); query.setParameter("role", role); return query.getResultList(); @@ -217,7 +293,7 @@ public class RoleDAOImpl extends Abstrac public List<Membership> findMemberships(final SyncopeRole role) { TypedQuery<Membership> query = entityManager.createQuery("SELECT e FROM " + Membership.class.getSimpleName() + " e" - + " WHERE e.syncopeRole=:role", Membership.class); + + " WHERE e.syncopeRole=:role", Membership.class); query.setParameter("role", role); return query.getResultList(); Modified: syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/controller/UnresolvedReferenceException.java URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/controller/UnresolvedReferenceException.java?rev=1556805&r1=1556804&r2=1556805&view=diff ============================================================================== --- syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/controller/UnresolvedReferenceException.java (original) +++ syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/controller/UnresolvedReferenceException.java Thu Jan 9 13:45:14 2014 @@ -29,7 +29,7 @@ public class UnresolvedReferenceExceptio super(); } - public UnresolvedReferenceException(Throwable cause) { + public UnresolvedReferenceException(final Throwable cause) { super(cause); } } Modified: syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java?rev=1556805&r1=1556804&r2=1556805&view=diff ============================================================================== --- syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java (original) +++ syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java Thu Jan 9 13:45:14 2014 @@ -30,15 +30,26 @@ import org.apache.syncope.common.types.S import org.apache.syncope.common.validation.SyncopeClientCompositeErrorException; import org.apache.syncope.common.validation.SyncopeClientException; import org.apache.syncope.core.persistence.beans.AccountPolicy; +import org.apache.syncope.core.persistence.beans.ExternalResource; import org.apache.syncope.core.persistence.beans.PasswordPolicy; import org.apache.syncope.core.persistence.beans.Policy; import org.apache.syncope.core.persistence.beans.SyncPolicy; +import org.apache.syncope.core.persistence.beans.role.SyncopeRole; +import org.apache.syncope.core.persistence.dao.ResourceDAO; +import org.apache.syncope.core.persistence.dao.RoleDAO; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; @Component public class PolicyDataBinder { + @Autowired + private ResourceDAO resourceDAO; + + @Autowired + private RoleDAO roleDAO; + private boolean isGlobalPolicy(final PolicyType policyType) { boolean isGlobal; switch (policyType) { @@ -103,6 +114,23 @@ public class PolicyDataBinder { policyTO.setId(policy.getId()); policyTO.setDescription(policy.getDescription()); + for (ExternalResource resource : resourceDAO.findByPolicy(policy)) { + policyTO.getUsedByResources().add(resource.getName()); + } + if (isGlobal) { + for (ExternalResource resource : resourceDAO.findWithoutPolicy(policy.getType())) { + policyTO.getUsedByResources().add(resource.getName()); + } + } + for (SyncopeRole role : roleDAO.findByPolicy(policy)) { + policyTO.getUsedByRoles().add(role.getId()); + } + if (isGlobal) { + for (SyncopeRole role : roleDAO.findWithoutPolicy(policy.getType())) { + policyTO.getUsedByRoles().add(role.getId()); + } + } + return (T) policyTO; } Modified: syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java?rev=1556805&r1=1556804&r2=1556805&view=diff ============================================================================== --- syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java (original) +++ syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java Thu Jan 9 13:45:14 2014 @@ -21,8 +21,10 @@ package org.apache.syncope.core.rest; 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 static org.junit.Assert.fail; +import java.util.Arrays; import java.util.List; import org.apache.syncope.common.to.AccountPolicyTO; import org.apache.syncope.common.to.PasswordPolicyTO; @@ -49,10 +51,37 @@ public class PolicyTestITCase extends Ab } @Test - public void read() { + public void getAccountPolicy() { + AccountPolicyTO policyTO = policyService.read(PolicyType.ACCOUNT, 6L); + + assertNotNull(policyTO); + assertTrue(policyTO.getUsedByResources().isEmpty()); + assertEquals(Arrays.asList(6L, 7L, 10L, 14L), policyTO.getUsedByRoles()); + } + + @Test + public void getPasswordPolicy() { + PasswordPolicyTO policyTO = policyService.read(PolicyType.PASSWORD, 4L); + + assertNotNull(policyTO); + assertTrue(policyTO.getUsedByResources().contains(RESOURCE_NAME_NOPROPAGATION)); + assertEquals(Arrays.asList(6L, 7L, 10L, 8L), policyTO.getUsedByRoles()); + } + + @Test + public void getSyncPolicy() { SyncPolicyTO policyTO = policyService.read(PolicyType.SYNC, 1L); assertNotNull(policyTO); + assertTrue(policyTO.getUsedByRoles().isEmpty()); + } + + @Test + public void getGlobalAccountPolicy() { + AccountPolicyTO policyTO = policyService.readGlobal(PolicyType.ACCOUNT); + + assertNotNull(policyTO); + assertEquals(PolicyType.GLOBAL_ACCOUNT, policyTO.getType()); } @Test @@ -62,14 +91,18 @@ public class PolicyTestITCase extends Ab assertNotNull(policyTO); assertEquals(PolicyType.GLOBAL_PASSWORD, policyTO.getType()); assertEquals(8, policyTO.getSpecification().getMinLength()); + assertFalse(policyTO.getUsedByResources().contains(RESOURCE_NAME_NOPROPAGATION)); } @Test - public void getGlobalAccountPolicy() { - AccountPolicyTO policyTO = policyService.readGlobal(PolicyType.ACCOUNT); + public void getGlobalSyncPolicy() { + SyncPolicyTO policyTO = policyService.readGlobal(PolicyType.SYNC); assertNotNull(policyTO); - assertEquals(PolicyType.GLOBAL_ACCOUNT, policyTO.getType()); + assertEquals(PolicyType.GLOBAL_SYNC, policyTO.getType()); + assertFalse(policyTO.getUsedByResources().contains(RESOURCE_NAME_CSV)); + assertFalse(policyTO.getUsedByResources().contains(RESOURCE_NAME_WS2)); + assertTrue(policyTO.getUsedByRoles().isEmpty()); } @Test Modified: syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java?rev=1556805&r1=1556804&r2=1556805&view=diff ============================================================================== --- syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java (original) +++ syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java Thu Jan 9 13:45:14 2014 @@ -26,6 +26,7 @@ import static org.junit.Assert.assertTru import static org.junit.Assert.fail; import java.util.List; +import org.apache.commons.lang3.SerializationUtils; import org.apache.syncope.common.mod.UserMod; import org.apache.syncope.common.to.MembershipTO; @@ -212,7 +213,7 @@ public class SchemaTestITCase extends Ab userTO = createUser(userTO); assertNotNull(userTO); - UserTO newUserTO = AttributableOperations.clone(userTO); + UserTO newUserTO = SerializationUtils.clone(userTO); MembershipTO membership = new MembershipTO(); membership.setRoleId(2L); newUserTO.addMembership(membership);
