You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2018/01/12 14:31:04 UTC

svn commit: r1820996 [2/2] - in /turbine/fulcrum/trunk/security: api/src/java/org/apache/fulcrum/security/ api/src/java/org/apache/fulcrum/security/model/turbine/ api/src/java/org/apache/fulcrum/security/model/turbine/entity/ api/src/java/org/apache/fu...

Added: turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/AbstractTurbineUserManagerTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/AbstractTurbineUserManagerTest.java?rev=1820996&view=auto
==============================================================================
--- turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/AbstractTurbineUserManagerTest.java (added)
+++ turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/AbstractTurbineUserManagerTest.java Fri Jan 12 14:31:04 2018
@@ -0,0 +1,364 @@
+package org.apache.fulcrum.security.torque.turbine;
+
+/*
+ * 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.
+ */
+
+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 org.apache.fulcrum.security.SecurityService;
+import org.apache.fulcrum.security.UserManager;
+import org.apache.fulcrum.security.acl.AccessControlList;
+import org.apache.fulcrum.security.entity.Group;
+import org.apache.fulcrum.security.entity.Role;
+import org.apache.fulcrum.security.entity.User;
+import org.apache.fulcrum.security.model.test.AbstractUserManagerTest;
+import org.apache.fulcrum.security.model.turbine.TurbineAccessControlList;
+import org.apache.fulcrum.security.model.turbine.TurbineModelManager;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineUser;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
+import org.apache.fulcrum.security.util.EntityExistsException;
+import org.apache.fulcrum.security.util.PasswordMismatchException;
+import org.apache.fulcrum.security.util.UnknownEntityException;
+import org.apache.fulcrum.security.util.UserSet;
+import org.apache.fulcrum.testcontainer.BaseUnit4Test;
+import org.junit.Test;
+
+/**
+ * @author Eric Pugh
+ * @author Georg Kallidis
+ * 
+ * Same as {@link AbstractUserManagerTest} in Fulcrum API module, but with user-group-role-sets added and checked
+ * 
+ */
+public abstract class AbstractTurbineUserManagerTest extends BaseUnit4Test
+{
+    protected User user;
+    protected UserManager userManager;
+    protected SecurityService securityService;
+
+    protected static final String TEST_GROUP = "TEST_GROUP";
+    protected static final String TEST_ROLE = "TEST_Role";
+    protected Group group;
+    protected Role role;
+
+    // requires default user in setup
+    @Test
+    public void testCheckExists() throws Exception
+    {
+        user = userManager.getUserInstance("Philip");
+        userManager.addUser(user, "bobo");
+        addDefaultGrantUserGroupRole(user) ;
+        
+        assertTrue(userManager.checkExists("philip"));
+        assertTrue(userManager.checkExists(user));
+        assertFalse(userManager.checkExists("ImaginaryFriend"));
+        user = userManager.getUserInstance("ImaginaryFriend");
+        assertFalse(userManager.checkExists(user));
+    }
+    @Test
+    public void testCheckExistsWithString() throws Exception
+    {
+        user = userManager.getUserInstance("Philip2");
+        userManager.addUser(user, "bobo");
+        addDefaultGrantUserGroupRole(user) ;
+        
+        assertTrue(userManager.checkExists("philip2"));
+        assertTrue(userManager.checkExists(user.getName()));
+        assertFalse(userManager.checkExists("ImaginaryFriend2"));
+        user = userManager.getUserInstance("ImaginaryFriend2");
+        assertFalse(userManager.checkExists(user.getName()));
+    }
+
+    /*
+     * Class to test for User retrieve(String)
+     */
+    @Test
+    public void testGetUserString() throws Exception
+    {
+        user = userManager.getUserInstance("QuietMike");
+        userManager.addUser(user, "bobo");
+        addDefaultGrantUserGroupRole(user) ;
+        
+        user = userManager.getUser("QuietMike");
+        assertNotNull(user);
+    }
+    @Test
+    public void testGetUserById() throws Exception
+    {
+        user = userManager.getUserInstance("QuietMike2");
+        userManager.addUser(user, "bobo");
+        User user2 = userManager.getUserById(user.getId());
+        assertEquals(user.getName(), user2.getName());
+        assertEquals(user.getId(), user2.getId());
+    }
+
+    /*
+     * Class to test for User retrieve(String, String)
+     */
+    @Test
+    public void testGetUserStringString() throws Exception
+    {
+        user = userManager.getUserInstance("Richard");
+        userManager.addUser(user, "va");
+        
+        addDefaultGrantUserGroupRole(user) ;
+        
+        user = userManager.getUser("Richard", "va");
+        assertNotNull(user);
+        user = userManager.getUser("richard", "va");
+        assertNotNull(user);
+        try
+        {
+            user = userManager.getUser("richard", "VA");
+            fail("should have thrown PasswordMismatchException");
+        }
+        catch (PasswordMismatchException pme)
+        {
+            // good
+        }
+    }
+    @Test
+    public void testGetAllUsers() throws Exception
+    {
+        int size = userManager.getAllUsers().size();
+        user = userManager.getUserInstance("Bob");
+        userManager.addUser(user, "");
+        addDefaultGrantUserGroupRole(user) ;
+        
+        UserSet<User> userSet = userManager.getAllUsers();
+        assertEquals(size + 1, userSet.size());
+    }
+    @Test
+    public void testAuthenticate() throws Exception
+    {
+        user = userManager.getUserInstance("Kay");
+        userManager.addUser(user, "jc");
+        addDefaultGrantUserGroupRole(user) ;
+        userManager.authenticate(user, "jc");
+        try
+        {
+            userManager.authenticate(user, "JC");
+            fail("should have thrown PasswordMismatchException");
+        }
+        catch (PasswordMismatchException pme)
+        {
+            // good
+        }
+    }
+    @Test
+    public void testChangePassword() throws Exception
+    {
+        user = userManager.getUserInstance("Jonathan");
+        userManager.addUser(user, "jc");
+        addDefaultGrantUserGroupRole(user) ;
+        try
+        {
+            userManager.changePassword(user, "WrongPWD", "JC");
+            fail("should have thrown PasswordMismatchException");
+        }
+        catch (PasswordMismatchException pme)
+        {
+            // good
+        }
+        userManager.changePassword(user, "jc", "JC");
+        userManager.authenticate(user, "JC");
+    }
+    @Test
+    public void testForcePassword() throws Exception
+    {
+        user = userManager.getUserInstance("Connor");
+        userManager.addUser(user, "jc_subset");
+        addDefaultGrantUserGroupRole(user) ;
+        
+        userManager.forcePassword(user, "JC_SUBSET");
+        userManager.authenticate(user, "JC_SUBSET");
+    }
+
+    /*
+     * Class to test for User getUserInstance()
+     */
+    @Test
+    public void testGetUserInstance() throws Exception
+    {
+        user = userManager.getUserInstance();
+        assertNotNull(user);
+        assertTrue(user.getName() == null);
+    }
+
+    /*
+     * Class to test for User getUserInstance(String)
+     */
+    @Test
+    public void testGetUserInstanceString() throws Exception
+    {
+        user = userManager.getUserInstance("Philip");
+        assertEquals("philip", user.getName());
+    }
+
+    /**
+     * Need to figure out if save is something we want.. right now it just bloes
+     * up if you actually cahnge anything.
+     * 
+     * @todo figur out what to do here...
+     * @throws Exception
+     */
+    @Test
+    public void testSaveUser() throws Exception
+    {
+        user = userManager.getUserInstance("Kate");
+        userManager.addUser(user, "katiedid");
+        
+        addDefaultGrantUserGroupRole(user) ;
+        
+        user = userManager.getUser(user.getName());
+        // user.setName("Katherine");
+        userManager.saveUser(user);
+        assertEquals("kate", userManager.getUser(user.getName()).getName());
+    }
+    @Test
+    public void testGetACL() throws Exception
+    {
+        user = userManager.getUserInstance("Tony");
+        userManager.addUser(user, "california");
+        addDefaultGrantUserGroupRole(user) ;        
+        
+        AccessControlList acl = userManager.getACL(user);
+        
+        assertNotNull(acl);
+        
+        Role testRole = securityService.getRoleManager().getRoleByName(TEST_ROLE );
+        Group testGroup = securityService.getGroupManager().getGroupByName(TEST_GROUP );
+        assertTrue(((TurbineAccessControlList)acl).hasRole( testRole, testGroup ));
+        
+        Group globalGroup = securityService.<TurbineModelManager>getModelManager().getGlobalGroup();
+        securityService.<TurbineModelManager>getModelManager().grant( user, globalGroup, testRole );
+        // immutable
+        acl = userManager.getACL(user);
+        
+        assertTrue(((TurbineAccessControlList)acl).hasRole( testRole ));
+    }
+    @Test
+    public void testRemoveUser() throws Exception
+    {
+        user = userManager.getUserInstance("Rick");
+        userManager.addUser(user, "nb");
+        addDefaultGrantUserGroupRole(user) ;
+        // required
+        revokeDefaultGrantUserGroupRole( user );
+        userManager.removeUser(user);
+        try
+        {
+            User user2 = userManager.getUser(user.getName());
+            fail("Should have thrown UEE");
+        }
+        catch (UnknownEntityException uee)
+        {
+            // good
+        }
+    }
+    @Test
+    public void testAddUser() throws Exception
+    {
+        user = userManager.getUserInstance("Joe1");
+        assertNull(user.getId());
+        userManager.addUser(user, "mc");
+        addDefaultGrantUserGroupRole(user) ;
+        user = userManager.getUserInstance("Joe2");
+        assertNull(user.getId());
+        userManager.addUser(user, "mc");
+        assertNotNull(user.getId());
+        assertNotNull(userManager.getUser(user.getName()));
+    }
+
+    /*
+     * Class to test for boolean checkExists(string)
+     */
+    public void testAddUserTwiceFails() throws Exception
+    {
+        user = userManager.getUserInstance("EATLUNCH");
+        userManager.addUser(user, "bob");
+        addDefaultGrantUserGroupRole(user) ;
+        assertTrue(userManager.checkExists(user.getName()));
+        User user2 = userManager.getUserInstance("EATLUNCH");
+        try
+        {
+            userManager.addUser(user2, "bob");
+        }
+        catch (EntityExistsException uee)
+        {
+            // good
+        }
+        try
+        {
+            userManager.addUser(user2, "differentpassword");
+        }
+        catch (EntityExistsException uee)
+        {
+            // good
+        }
+    }
+    @Test
+    public void testCheckUserCaseSensitiveExists() throws Exception
+    {
+        user = userManager.getUserInstance("borrisJohnson");
+        userManager.addUser(user, "bob");
+
+        assertTrue(userManager.checkExists("borrisJohnson"));
+    }
+    
+    private void addDefaultGrantUserGroupRole(User user) throws Exception
+    {
+        securityService.<TurbineModelManager>getModelManager().grant(user, group, role);
+        boolean ugrFound = false;
+        TurbineUserGroupRole ugrTest = null;
+        for (TurbineUserGroupRole ugr : ((TurbineUser) user).getUserGroupRoleSet())
+        {
+            if (ugr.getUser().equals(user) && ugr.getGroup().equals(group) && ugr.getRole().equals(role))
+            {
+                ugrFound = true;
+                ugrTest = ugr;
+                break;
+            }
+        }
+        assertTrue(ugrFound);
+        assertTrue(ugrTest.getGroup().equals(group));
+        assertTrue(ugrTest.getUser().equals(user));
+    }
+    
+    private void revokeDefaultGrantUserGroupRole(User user) throws Exception
+    {
+        securityService.<TurbineModelManager>getModelManager().revoke(user, group, role);
+        boolean ugrFound = false;
+        for (TurbineUserGroupRole ugr : ((TurbineUser) user).getUserGroupRoleSet())
+        {
+            if (ugr.getUser().equals(user) && ugr.getGroup().equals(group) && ugr.getRole().equals(role))
+            {
+                ugrFound = true;
+                break;
+            }
+        };
+        assertFalse(ugrFound);
+    }
+
+}

Propchange: turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/AbstractTurbineUserManagerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineDefaultModelManagerLazyTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineDefaultModelManagerLazyTest.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineDefaultModelManagerLazyTest.java (original)
+++ turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineDefaultModelManagerLazyTest.java Fri Jan 12 14:31:04 2018
@@ -41,7 +41,7 @@ import org.junit.Before;
 /**
  * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
  * @author <a href="jh@byteaction.de">J&#252;rgen Hoffmann</a>
- * @version $Id:$
+ * @version $Id$
  */
 public class TurbineDefaultModelManagerLazyTest
     extends AbstractTurbineModelManagerTest

Modified: turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineDefaultModelManagerTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineDefaultModelManagerTest.java?rev=1820996&r1=1820995&r2=1820996&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineDefaultModelManagerTest.java (original)
+++ turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineDefaultModelManagerTest.java Fri Jan 12 14:31:04 2018
@@ -41,7 +41,7 @@ import org.junit.Before;
 /**
  * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
  * @author <a href="jh@byteaction.de">J&#252;rgen Hoffmann</a>
- * @version $Id:$
+ * @version $Id$
  */
 public class TurbineDefaultModelManagerTest
     extends AbstractTurbineModelManagerTest

Added: turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerDefaultPeerLazyTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerDefaultPeerLazyTest.java?rev=1820996&view=auto
==============================================================================
--- turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerDefaultPeerLazyTest.java (added)
+++ turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerDefaultPeerLazyTest.java Fri Jan 12 14:31:04 2018
@@ -0,0 +1,153 @@
+package org.apache.fulcrum.security.torque.turbine;
+/*
+ * 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.
+ */
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.apache.fulcrum.security.SecurityService;
+import org.apache.fulcrum.security.model.turbine.TurbineModelManager;
+import org.apache.fulcrum.security.torque.HsqlDB;
+import org.apache.fulcrum.security.torque.om.TurbineGroupPeer;
+import org.apache.fulcrum.security.torque.om.TurbinePermissionPeer;
+import org.apache.fulcrum.security.torque.om.TurbineRolePeer;
+import org.apache.fulcrum.security.torque.om.TurbineRolePermissionPeer;
+import org.apache.fulcrum.security.torque.om.TurbineUserGroupRolePeer;
+import org.apache.fulcrum.security.torque.om.TurbineUserPeer;
+import org.apache.fulcrum.security.util.DataBackendException;
+import org.apache.fulcrum.security.util.UnknownEntityException;
+import org.apache.torque.TorqueException;
+import org.apache.torque.criteria.Criteria;
+import org.apache.torque.util.Transaction;
+import org.junit.Before;
+
+/**
+ * Test user with attached object (user-role-goup relationship)
+ * 
+ * @author <a href="mailto:gk@apache.org">Georg Kallidis</a>
+ *
+ * @version $Id$
+ */
+public class TurbineUserManagerDefaultPeerLazyTest extends AbstractTurbineUserManagerTest
+{
+    protected static HsqlDB hsqlDB = null;
+
+    @Before
+    public void setUp()
+    {
+        try
+        {
+            hsqlDB = new HsqlDB("jdbc:hsqldb:.", "src/test/fulcrum-turbine-default-schema.sql");
+            
+            this.setRoleFileName("src/test/TurbineTorqueRoleConfig.xml");
+            // we have to use declared peers 
+            this.setConfigurationFileName("src/test/TurbineDefaultLazyWithPeersComponentConfig.xml");
+            securityService = (SecurityService) lookup(SecurityService.ROLE);
+            userManager = securityService.getUserManager();
+            
+            group = securityService.getGroupManager().getGroupInstance();
+            group.setName("TEST_GROUP");
+            securityService.getGroupManager().addGroup(group);
+            role = securityService.getRoleManager().getRoleInstance();
+            role.setName("TEST_Role");
+            securityService.getRoleManager().addRole(role);
+            
+        }
+        catch (Exception e)
+        {
+            fail(e.toString());
+        }
+    }
+    
+   
+
+    @Override
+	public void tearDown()
+    {
+        
+        // cleanup tables
+        Connection con = null;
+        try
+        {
+            con = Transaction.begin();// "default"
+
+            Criteria criteria = new Criteria();
+//            criteria.where(TurbineUserGroupRolePeer.USER_ID, -1, Criteria.GREATER_THAN);
+//            int deletedRows = TurbineUserGroupRolePeer.doDelete(criteria,con);
+            
+            if (user != null) {
+                try
+                {
+                    securityService.<TurbineModelManager>getModelManager().revokeAll( user );
+                }
+                catch ( DataBackendException e )
+                {
+                    e.printStackTrace();
+                    fail();
+                }
+                catch ( UnknownEntityException e )
+                {
+                 // may be thrown, if user not exists if instance was not added to manager
+                }
+            }
+
+            criteria = new Criteria();
+            criteria.where(TurbineRolePermissionPeer.ROLE_ID, 0, Criteria.GREATER_THAN);
+            TurbineRolePermissionPeer.doDelete(criteria,con);
+
+            criteria = new Criteria();
+            criteria.where(TurbineUserPeer.USER_ID, 0, Criteria.GREATER_THAN);
+            TurbineUserPeer.doDelete(criteria,con);
+ 
+            criteria = new Criteria();
+            criteria.where(TurbineGroupPeer.GROUP_ID, 0, Criteria.GREATER_THAN);
+            TurbineGroupPeer.doDelete(criteria,con);
+
+            criteria = new Criteria();
+            criteria.where(TurbineRolePeer.ROLE_ID, 0, Criteria.GREATER_THAN);
+            TurbineRolePeer.doDelete(criteria,con);
+
+            criteria = new Criteria();
+            criteria.where(TurbinePermissionPeer.PERMISSION_ID, 0, Criteria.GREATER_THAN);
+            TurbinePermissionPeer.doDelete(criteria,con);
+            
+            con.commit();
+            con = null;
+        }
+        catch (TorqueException e)
+        {
+            fail(e.toString());
+        } catch (SQLException e) {
+             if (con != null)
+             {
+                 Transaction.safeRollback(con);
+             }
+             fail(e.toString());
+        }
+        
+        user = null;
+        userManager = null;
+        securityService = null;
+    }
+
+
+}

Propchange: turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerDefaultPeerLazyTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerTest.java?rev=1820996&view=auto
==============================================================================
--- turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerTest.java (added)
+++ turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerTest.java Fri Jan 12 14:31:04 2018
@@ -0,0 +1,136 @@
+package org.apache.fulcrum.security.torque.turbine;
+/*
+ * 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.
+ */
+
+import static org.junit.Assert.fail;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.apache.fulcrum.security.SecurityService;
+import org.apache.fulcrum.security.torque.HsqlDB;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineGroupPeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbinePermissionPeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermissionPeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRolePeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserPeer;
+import org.apache.torque.TorqueException;
+import org.apache.torque.criteria.Criteria;
+import org.apache.torque.util.Transaction;
+import org.junit.Before;
+
+/**
+ * Test user with attached object (user-role-goup relationship)
+ * 
+ * @author <a href="mailto:gk@apache.org">Georg Kallidis</a>
+ *
+ * @version $Id$
+ */
+public class TurbineUserManagerTest extends AbstractTurbineUserManagerTest
+{
+    protected static HsqlDB hsqlDB = null;
+
+    @Before
+    public void setUp()
+    {
+        try
+        {
+            hsqlDB = new HsqlDB("jdbc:hsqldb:.", "src/test/fulcrum-turbine-schema.sql");
+            hsqlDB.addSQL("src/test/id-table-schema.sql");
+            hsqlDB.addSQL("src/test/fulcrum-turbine-schema-idtable-init.sql");
+            
+            this.setRoleFileName("src/test/TurbineTorqueRoleConfig.xml");
+            // we have to use declared peers 
+            this.setConfigurationFileName("src/test/TurbineTorqueComponentConfig.xml");
+            securityService = (SecurityService) lookup(SecurityService.ROLE);
+            userManager = securityService.getUserManager();
+            
+            group = securityService.getGroupManager().getGroupInstance();
+            group.setName(TEST_GROUP);
+            securityService.getGroupManager().addGroup(group);
+            role = securityService.getRoleManager().getRoleInstance();
+            role.setName(TEST_ROLE);
+            securityService.getRoleManager().addRole(role);
+            
+        }
+        catch (Exception e)
+        {
+            fail(e.toString());
+        }
+    }
+    
+   
+
+    @Override
+	public void tearDown()
+    {
+        
+        // cleanup tables
+        Connection con = null;
+        try
+        {
+            con = Transaction.begin();// "default"
+
+            Criteria criteria = new Criteria();
+            criteria.where(TorqueTurbineUserGroupRolePeer.USER_ID, 0, Criteria.GREATER_THAN);
+            
+            TorqueTurbineUserGroupRolePeer.doDelete(criteria,con);
+
+            criteria = new Criteria();
+            criteria.where(TorqueTurbineRolePermissionPeer.ROLE_ID, 0, Criteria.GREATER_THAN);
+            TorqueTurbineRolePermissionPeer.doDelete(criteria,con);
+
+            criteria = new Criteria();
+            criteria.where(TorqueTurbineUserPeer.USER_ID, 0, Criteria.GREATER_THAN);
+            TorqueTurbineUserPeer.doDelete(criteria,con);
+ 
+            criteria = new Criteria();
+            criteria.where(TorqueTurbineGroupPeer.GROUP_ID, 0, Criteria.GREATER_THAN);
+            TorqueTurbineGroupPeer.doDelete(criteria,con);
+
+            criteria = new Criteria();
+            criteria.where(TorqueTurbineRolePeer.ROLE_ID, 0, Criteria.GREATER_THAN);
+            TorqueTurbineRolePeer.doDelete(criteria,con);
+
+            criteria = new Criteria();
+            criteria.where(TorqueTurbinePermissionPeer.PERMISSION_ID, 0, Criteria.GREATER_THAN);
+            TorqueTurbinePermissionPeer.doDelete(criteria,con);
+            
+            con.commit();
+            con = null;
+        }
+        catch (TorqueException e)
+        {
+            fail(e.toString());
+        } catch (SQLException e) {
+             if (con != null)
+             {
+                 Transaction.safeRollback(con);
+             }
+             fail(e.toString());
+        }
+        
+        user = null;
+        userManager = null;
+        securityService = null;
+    }
+
+
+}

Propchange: turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native