/* * Copyright 2015-Present Entando Inc. (http://www.entando.com) All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.agiletec.aps.system.services.role; import java.util.Iterator; import java.util.List; import java.util.Set; import com.agiletec.aps.BaseTestCase; import com.agiletec.aps.system.SystemConstants; /** * @version 1.0 * @author M.Casari */ public class TestRoleManager extends BaseTestCase { protected void setUp() throws Exception { super.setUp(); this.init(); } public void testAddUpdateDeletePermission() throws Throwable { Role role = new Role(); role.setName("temp"); try { _roleManager.removeRole(role); _roleManager.removePermission("temp"); } catch (Throwable t) { throw t; } Permission permission = new Permission(); permission.setName("temp"); permission.setDescription("Permesso temporaneo"); _roleManager.addPermission(permission); role = new Role(); role.setName("temp"); role.setDescription("Ruolo temporaneo"); role.addPermission("temp"); _roleManager.addRole(role); this.getRolesAndPermissions(); this.updateRoleAndPermission(); this.getNewRolesAndPermissions(); this.deleteRoleAndPermission(); this.deletedRoleAndPermission(); } private void getRolesAndPermissions() throws Throwable { Role role = this._roleManager.getRole("temp"); assertNotNull(role); assertEquals(role.getDescription(), "Ruolo temporaneo"); Iterator<Permission> iter = this._roleManager.getPermissions().iterator(); boolean contains = false; while (iter.hasNext()) { Permission permission = (Permission) iter.next(); if (permission.getName().equals("temp")) { contains = true; } } assertTrue(contains); Set<String> permissionSet = role.getPermissions(); contains = permissionSet.contains("temp"); assertTrue(contains); } private void updateRoleAndPermission() throws Throwable { Role role = new Role(); role.setName("temp"); role.setDescription("Ruolo temporaneo 1"); role.addPermission("temp"); this._roleManager.updateRole(role); Permission permission = new Permission(); permission.setName("temp"); permission.setDescription("Permesso temporaneo 1"); this._roleManager.updatePermission(permission); } private void getNewRolesAndPermissions() throws Throwable { Role role = this._roleManager.getRole("temp"); assertEquals(role.getDescription(), "Ruolo temporaneo 1"); Iterator<Permission> iter = this._roleManager.getPermissions().iterator(); boolean contains = false; while (iter.hasNext()) { Permission permission = (Permission) iter.next(); if (permission.getDescription().equals("Permesso temporaneo 1")) { contains = true; } } assertTrue(contains); } private void deleteRoleAndPermission() throws Throwable { Role role = new Role(); role.setName("temp"); role.setDescription("temp description"); this._roleManager.updateRole(role); this._roleManager.removeRole(role); this._roleManager.removePermission("temp"); } private void deletedRoleAndPermission() throws Throwable { Role role = this._roleManager.getRole("temp"); assertNull(role); Iterator<Permission> iter = this._roleManager.getPermissions().iterator(); boolean contains = false; while (iter.hasNext()) { Permission permission = iter.next(); if (permission.getName().equals("temp")) { contains = true; } } assertFalse(contains); } public void testGetRolesWithPemission() throws Throwable { String permission = Permission.SUPERVISOR; List<Role> roles = this._roleManager.getRolesWithPermission(permission); assertEquals(1, roles.size()); for (int i=0; i<roles.size(); i++) { Role role = roles.get(i); assertEquals("supervisor", role.getName()); } } private void init() throws Exception { try { _roleManager = (IRoleManager) this.getService(SystemConstants.ROLE_MANAGER); } catch (Throwable t) { throw new Exception(t); } } private IRoleManager _roleManager = null; }