Author: gk
Date: Tue May 23 06:39:57 2017
New Revision: 1795880

URL: http://svn.apache.org/viewvc?rev=1795880&view=rev
Log:
- Update to security 1.1.1
- Added tests for security service using Fulcrum turbine model defaults, 
comparing Fulcrum and turbine security service.

Added:
    turbine/core/trunk/src/test/org/apache/turbine/services/security/
    
turbine/core/trunk/src/test/org/apache/turbine/services/security/SecurityServiceTest.java
   (with props)
    
turbine/core/trunk/src/test/org/apache/turbine/services/security/TurbineDefaultModelManagerTest.java
   (with props)
Modified:
    turbine/core/trunk/conf/test/TestFulcrumComponents.properties
    turbine/core/trunk/pom.xml

Modified: turbine/core/trunk/conf/test/TestFulcrumComponents.properties
URL: 
http://svn.apache.org/viewvc/turbine/core/trunk/conf/test/TestFulcrumComponents.properties?rev=1795880&r1=1795879&r2=1795880&view=diff
==============================================================================
--- turbine/core/trunk/conf/test/TestFulcrumComponents.properties (original)
+++ turbine/core/trunk/conf/test/TestFulcrumComponents.properties Tue May 23 
06:39:57 2017
@@ -68,6 +68,7 @@ services.ServletService.classname=org.ap
 
services.AssemblerBrokerService.classname=org.apache.turbine.services.assemblerbroker.TurbineAssemblerBrokerService
 
services.PullService.classname=org.apache.turbine.services.pull.TurbinePullService
 
services.TemplateService.classname=org.apache.turbine.services.template.TurbineTemplateService
+services.SecurityService.classname=org.apache.turbine.services.security.DefaultSecurityService
 
services.SchedulerService.classname=org.apache.turbine.services.schedule.QuartzSchedulerService
 
 

Modified: turbine/core/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/turbine/core/trunk/pom.xml?rev=1795880&r1=1795879&r2=1795880&view=diff
==============================================================================
--- turbine/core/trunk/pom.xml (original)
+++ turbine/core/trunk/pom.xml Tue May 23 06:39:57 2017
@@ -919,16 +919,25 @@
             <artifactId>avalon-logkit</artifactId>
         </exclusion>
       </exclusions>
-    </dependency>
+    </dependency> 
+    <!-- using snapshot, until released -->
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-security-api</artifactId>
-      <version>1.1.0</version>
+      <version>1.1.1</version>
     </dependency>
+     <!-- using snapshot, until released -->
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-security-memory</artifactId>
-      <version>1.1.0</version>
+      <version>1.1.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.fulcrum</groupId>
+      <artifactId>fulcrum-security-api</artifactId>
+      <version>1.1.1</version>
+      <classifier>tests</classifier>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -1021,6 +1030,12 @@
       <version>2.0.2-beta</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+                       <groupId>org.apache.fulcrum</groupId>
+                       <artifactId>fulcrum-testcontainer</artifactId>
+      <version>1.0.7</version>
+                       <scope>test</scope>
+               </dependency>
   </dependencies>
   
   <profiles>

Added: 
turbine/core/trunk/src/test/org/apache/turbine/services/security/SecurityServiceTest.java
URL: 
http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/services/security/SecurityServiceTest.java?rev=1795880&view=auto
==============================================================================
--- 
turbine/core/trunk/src/test/org/apache/turbine/services/security/SecurityServiceTest.java
 (added)
+++ 
turbine/core/trunk/src/test/org/apache/turbine/services/security/SecurityServiceTest.java
 Tue May 23 06:39:57 2017
@@ -0,0 +1,183 @@
+package org.apache.turbine.services.security;
+/*
+ * 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.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.fulcrum.security.SecurityService;
+import org.apache.fulcrum.security.entity.Group;
+import org.apache.fulcrum.security.entity.Role;
+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.model.turbine.entity.impl.TurbineUserImpl;
+import 
org.apache.fulcrum.security.model.turbine.test.AbstractTurbineModelManagerTest;
+import org.apache.fulcrum.security.util.DataBackendException;
+import org.apache.fulcrum.security.util.EntityExistsException;
+import org.apache.fulcrum.security.util.UnknownEntityException;
+import org.apache.fulcrum.testcontainer.BaseUnit4Test;
+import org.apache.turbine.om.security.User;
+import org.apache.turbine.services.ServiceManager;
+import org.apache.turbine.services.TurbineServices;
+import org.apache.turbine.util.TurbineConfig;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Test that the SecurityService works properly by comparing behaviour of 
Turbine and Fulcrum security services using memory user manager.
+ * 
+ * Code adapted from SecurityServiceAdapter in Fulcrum Security Adapter
+ *
+ * @author gkallidis
+ * @version $Id$
+ */
+
+public class SecurityServiceTest extends BaseUnit4Test
+{
+     
+    SecurityService fulcrumSecurityService;
+    org.apache.turbine.services.security.SecurityService securityService;
+    static TurbineConfig tc;
+
+    
+    @BeforeClass
+    public static void init() throws Exception
+    {
+       tc = new TurbineConfig(".", 
"/conf/test/CompleteTurbineResources.properties");
+        tc.initialize();
+
+    }
+    
+    @Before
+    public void setUpBefore() throws Exception
+    {
+        
+        ServiceManager serviceManager = TurbineServices.getInstance();
+        // 
+        fulcrumSecurityService = (SecurityService) 
serviceManager.getService(SecurityService.ROLE);
+        
+        securityService = 
(org.apache.turbine.services.security.SecurityService)
+                       
TurbineServices.getInstance().getService(org.apache.turbine.services.security.SecurityService.SERVICE_NAME);
+    }
+    
+    @Test
+    public void testAccountExists() throws Exception
+    {
+
+        User user = new org.apache.turbine.om.security.DefaultUserImpl(new 
TurbineUserImpl());
+        user.setAccessCounter(5);
+
+        assertFalse(securityService.accountExists(user));
+        assertFalse(fulcrumSecurityService.getUserManager().checkExists(user));
+
+    }
+    @Test
+       public void testCreateUser() throws Exception
+       {
+
+               User user = new 
org.apache.turbine.om.security.DefaultUserImpl(new TurbineUserImpl());
+               user.setAccessCounter(5);
+               user.setName("ringo");
+               securityService.addUser(user,"fakepasswrod");
+               assertTrue(securityService.accountExists(user));
+               
assertTrue(fulcrumSecurityService.getUserManager().checkExists(user));
+
+       }
+    
+    /**
+     * Tests Turbine and Fulcrum. 
+     * 
+     * Fulcrum part is similar/duplicated from {@link 
AbstractTurbineModelManagerTest#testGrantUserGroupRole()}
+     * 
+     * 
+     * @throws Exception
+     */
+    @Test
+    public void testGrantUserGroupRole() throws Exception
+    {
+        Group group = 
fulcrumSecurityService.getGroupManager().getGroupInstance();
+        group.setName("TEST_GROUP");
+        fulcrumSecurityService.getGroupManager().addGroup(group);
+        Role role = fulcrumSecurityService.getRoleManager().getRoleInstance();
+        role.setName("TEST_Role");
+        fulcrumSecurityService.getRoleManager().addRole(role);
+        
+        //  Turbine security service returns a wrapped instance: 
org.apache.turbine.om.security.DefaultUserImpl
+        // which implements org.apache.turbine.om.security.User and contains
+        User user = securityService.getUserInstance("Clint");   
+               // memory
+        securityService.addUser(user, "clint");
+        securityService.grant(user, group, role);
+        
+               addUserAndCheck(group, role, user);
+        
+        // Fulcrum security service returns a raw 
org.apache.fulcrum.security.model.turbine.entity.impl.TurbineUserImpl,
+               org.apache.fulcrum.security.UserManager  userManager = 
fulcrumSecurityService.getUserManager();
+        org.apache.fulcrum.security.entity.User fulcrumUser = 
userManager.getUserInstance("Clint2");    
+        userManager.addUser(fulcrumUser, "clint2");         // memory
+        
((TurbineModelManager)fulcrumSecurityService.getModelManager()).grant(fulcrumUser,
 group, role);
+        
+        addUserAndCheck(group, role, fulcrumUser);
+
+    }
+
+    /**
+     * Fulcrum contract check  
+     * 
+     * @param group Fulcrum interface
+     * @param role Fulcrum interface
+     * @param user Fulcrum interface 
+     * @throws EntityExistsException
+     * @throws DataBackendException
+     * @throws UnknownEntityException
+     */
+       private void addUserAndCheck(Group group, Role role, 
org.apache.fulcrum.security.entity.User user)
+                       throws EntityExistsException, DataBackendException,
+                       UnknownEntityException
+       {
+
+        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));
+       }
+    
+    
+       @AfterClass
+       public static void setupAfter()
+    {
+        ServiceManager serviceManager = TurbineServices.getInstance();
+        
serviceManager.shutdownService(org.apache.turbine.services.security.SecurityService.SERVICE_NAME);
+        serviceManager.shutdownServices();
+    }
+
+
+}

Propchange: 
turbine/core/trunk/src/test/org/apache/turbine/services/security/SecurityServiceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
turbine/core/trunk/src/test/org/apache/turbine/services/security/TurbineDefaultModelManagerTest.java
URL: 
http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/services/security/TurbineDefaultModelManagerTest.java?rev=1795880&view=auto
==============================================================================
--- 
turbine/core/trunk/src/test/org/apache/turbine/services/security/TurbineDefaultModelManagerTest.java
 (added)
+++ 
turbine/core/trunk/src/test/org/apache/turbine/services/security/TurbineDefaultModelManagerTest.java
 Tue May 23 06:39:57 2017
@@ -0,0 +1,74 @@
+package org.apache.turbine.services.security;
+/*
+ * 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 
org.apache.fulcrum.security.model.turbine.test.AbstractTurbineModelManagerTest;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test Fulcrum Integration. 
+ * 
+ * Stub for further tests, relying on Fulcrum. 
+ * 
+ * @author gkallidis
+ * @version $Id:$
+ */
+public class TurbineDefaultModelManagerTest
+    extends AbstractTurbineModelManagerTest
+{
+
+    @Override
+       @Before
+       public void setUp() throws Exception
+    {
+        try
+        {
+               // just Fulcrum
+            
setConfigurationFileName("conf/test/fulcrumComponentConfiguration.xml");
+            setRoleFileName("conf/test/fulcrumRoleConfiguration.xml");
+            super.setUp();
+
+        }
+        catch (Exception e)
+        {
+            fail(e.toString());
+        }
+
+    }
+    
+    @Test
+    public void testDummy() {
+       // all tests in abstract
+    }
+    
+   
+
+    @Override
+    @After
+       public void tearDown()
+    {
+        modelManager = null;
+        securityService = null;
+    }
+
+}

Propchange: 
turbine/core/trunk/src/test/org/apache/turbine/services/security/TurbineDefaultModelManagerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to