You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2008/06/28 21:18:57 UTC

svn commit: r672574 [11/16] - in /roller/planet/core/trunk: ./ lib/ lib/buildtime/ lib/jakarta-taglibs-standard-1.1.2/ lib/jakarta-taglibs-standard-1.1.2/lib/ lib/jakarta-taglibs-standard-1.1.2/tld/ lib/openjpa-0.9.7/ lib/rome-0.9/ lib/spring-1.2/ lib/...

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PermissionTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PermissionTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PermissionTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PermissionTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,274 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+*  contributor license agreements.  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.  For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+
+package org.apache.roller.planet.business;
+
+import java.util.List;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.planet.TestUtils;
+import org.apache.roller.planet.pojos.PlanetPermission;
+import org.apache.roller.planet.pojos.User;
+import org.apache.roller.planet.pojos.Planet;
+
+
+/**
+ * Test User/Planet Permissions related business operations.
+ */
+public class PermissionTest extends AbstractBusinessTestCase {
+    
+    public static Log log = LogFactory.getLog(PermissionTest.class);
+    
+    User testUser = null;
+    Planet testPlanet = null;
+    
+    
+    /**
+     * All tests in this suite require a user and a Planet.
+     */
+    @Override
+    public void setUp() throws Exception {
+        
+        log.info("BEGIN");
+        
+        super.setUp();
+        
+        try {
+            testUser = TestUtils.setupUser("permsTestUser");
+            testPlanet = TestUtils.setupPlanet("permsTestPlanet");
+            endSession(true);
+        } catch (Exception ex) {
+            log.error(ex);
+            throw new Exception("Test setup failed", ex);
+        }
+        
+        log.info("END");
+    }
+    
+    @Override
+    public void tearDown() throws Exception {
+        
+        log.info("BEGIN");
+        
+        try {
+            TestUtils.teardownPlanet(testPlanet.getId());
+            TestUtils.teardownUser(testUser.getId());
+            endSession(true);
+        } catch (Exception ex) {
+            log.error(ex);
+            throw new Exception("Test teardown failed", ex);
+        }
+        
+        super.tearDown();
+        
+        log.info("END");
+    }
+    
+    
+    /**
+     * Test basic persistence operations ... Create, Update, Delete.
+     */
+    public void testPermissionsCRUD() throws Exception {
+        
+        log.info("BEGIN");
+        
+        UserManager mgr = AggregatorFactory.getAggregator().getUserManager();
+        PlanetPermission perm = null;
+                
+        // make sure no perms exist yet
+        testPlanet = TestUtils.getManagedPlanet(testPlanet);
+        testUser = TestUtils.getManagedUser(testUser);
+        perm = mgr.getPermissions(testPlanet, testUser);
+        assertNull(perm);
+        
+        // create permissions
+        perm = new PlanetPermission();
+        perm.setUser(testUser);
+        perm.setPlanet(testPlanet);
+        perm.setPending(false);
+        perm.setPermissionMask(PlanetPermission.ADMIN);
+        mgr.savePermissions(perm);
+        endSession(true);
+        
+        // check that create was successful
+        testPlanet = TestUtils.getManagedPlanet(testPlanet);
+        testUser = TestUtils.getManagedUser(testUser);
+        perm = null;
+        perm = mgr.getPermissions(testPlanet, testUser);
+        assertNotNull(perm);
+        assertEquals(PlanetPermission.ADMIN, perm.getPermissionMask());
+        
+        // update permissions
+        perm.setPermissionMask(PlanetPermission.LIMITED);
+        mgr.savePermissions(perm);
+        endSession(true);
+
+        // check that update was successful
+        testPlanet = TestUtils.getManagedPlanet(testPlanet);
+        testUser = TestUtils.getManagedUser(testUser);
+        perm = null;
+        perm = mgr.getPermissions(testPlanet, testUser);
+        assertNotNull(perm);
+        assertEquals(PlanetPermission.LIMITED, perm.getPermissionMask());
+        
+        log.info("END");
+    }
+    
+    
+    /**
+     * Test lookup mechanisms.
+     */
+    public void testPermissionsLookups() throws Exception {
+        
+        log.info("BEGIN");
+        
+        try {
+            // we need a second user for this test
+            User user = TestUtils.setupUser("testPermissionsLookups");
+            PlanetPermission testPerm = TestUtils.setupPermissions(testUser, testPlanet, PlanetPermission.ADMIN);
+            endSession(true);
+            
+            UserManager mgr = AggregatorFactory.getAggregator().getUserManager();
+            PlanetPermission perm = null;
+            List perms = null;
+            
+            // get all permissions for a user
+            perms = mgr.getAllPermissions(TestUtils.getManagedUser(user));
+            assertEquals(0, perms.size());
+            perms = mgr.getAllPermissions(TestUtils.getManagedUser(testUser));
+            assertEquals(1, perms.size());
+            
+            // get all permissions for a Planet
+            perms = mgr.getAllPermissions(TestUtils.getManagedPlanet(testPlanet));
+            assertEquals(1, perms.size());
+            
+            perm = new PlanetPermission();
+            perm.setUser(TestUtils.getManagedUser(user));
+            perm.setPlanet(TestUtils.getManagedPlanet(testPlanet));
+            perm.setPending(true);
+            perm.setPermissionMask(PlanetPermission.AUTHOR);
+            mgr.savePermissions(perm);
+            endSession(true);
+            
+            // get pending permissions for a user
+            perms = mgr.getPendingPermissions(TestUtils.getManagedUser(testUser));
+            assertEquals(0, perms.size());
+            perms = mgr.getPendingPermissions(TestUtils.getManagedUser(user));
+            assertEquals(1, perms.size());
+            
+            // get pending permissions for a Planet
+            perms = mgr.getPendingPermissions(TestUtils.getManagedPlanet(testPlanet));
+            assertEquals(1, perms.size());
+            
+            // get permissions by id
+            String id = perm.getId();
+            perm = null;
+            perm = mgr.getPermissions(id);
+            assertNotNull(perm);
+            assertEquals(id, perm.getId());
+            
+            // get permissions for a specific user/Planet
+            perm = null;
+            perm = mgr.getPermissions(TestUtils.getManagedPlanet(testPlanet), TestUtils.getManagedUser(testUser));
+            assertNotNull(perm);
+            assertEquals(PlanetPermission.ADMIN, perm.getPermissionMask());
+            perm = null;
+            perm = mgr.getPermissions(TestUtils.getManagedPlanet(testPlanet), TestUtils.getManagedUser(user));
+            assertNotNull(perm);
+            assertEquals(PlanetPermission.AUTHOR, perm.getPermissionMask());
+            assertEquals(true, perm.isPending());
+            
+            // cleanup
+            TestUtils.teardownPermissions(perm.getId());
+            TestUtils.teardownPermissions(testPerm.getId());
+            TestUtils.teardownUser(user.getId());
+            endSession(true);
+        } catch(Throwable t) {
+            log.error("Error running test", t);
+            throw (Exception) t;
+        }
+        
+        log.info("END");
+    }
+
+
+    /**
+     * Tests Planet invitation process.
+     */
+    public void testInvitations() throws Exception {
+        
+        log.info("BEGIN");
+        
+        // we need a second user for this test
+        User user = TestUtils.setupUser("testInvitations");
+        endSession(true);
+
+        UserManager mgr = AggregatorFactory.getAggregator().getUserManager();
+        PlanetManager pmgr = AggregatorFactory.getAggregator().getPlanetManager();
+        PlanetPermission perm = null;
+        List perms = null;
+
+        // invite user to Planet
+        perm = mgr.inviteUser(TestUtils.getManagedPlanet(testPlanet), user, PlanetPermission.LIMITED);
+        String id = perm.getId();
+        endSession(true);
+
+        // accept invitation
+        testPlanet = TestUtils.getManagedPlanet(testPlanet);
+        user = TestUtils.getManagedUser(user);
+        perm = mgr.getPermissions(testPlanet, user);
+        perm.setPending(false);
+        mgr.savePermissions(perm);
+        endSession(true);
+
+        // re-query now that we have changed things
+        user = mgr.getUserByUserName(user.getUserName());
+        testPlanet = pmgr.getPlanet(testPlanet.getHandle());
+
+        // assert that invitation list is empty
+        testPlanet = TestUtils.getManagedPlanet(testPlanet);
+        user = TestUtils.getManagedUser(user);
+        assertTrue(mgr.getPendingPermissions(user).isEmpty());
+        assertTrue(mgr.getPendingPermissions(testPlanet).isEmpty());
+
+        // assert that user is member of Planet
+        assertFalse(mgr.getPermissions(testPlanet, user).isPending());
+        List planets = pmgr.getPlanets(TestUtils.getManagedUser(user));
+        assertEquals(1, planets.size());
+        assertEquals(testPlanet.getId(), ((Planet)planets.get(0)).getId());
+
+        // assert that Planet has user
+        List users = mgr.getUsers(testPlanet, null, null, null, 0, -1);
+        assertEquals(1, users.size());
+
+        // test user can be retired from Planet
+        mgr.retireUser(testPlanet, user);
+        endSession(true);
+
+        user = mgr.getUser(user.getId());
+        planets = pmgr.getPlanets(user);
+        assertEquals(0, planets.size());
+
+        // cleanup the extra test user
+        TestUtils.teardownUser(user.getId());
+        endSession(true);
+        
+        log.info("END");
+    }
+    
+}

Modified: roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PlanetBasicTests.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PlanetBasicTests.java?rev=672574&r1=672573&r2=672574&view=diff
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PlanetBasicTests.java (original)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PlanetBasicTests.java Sat Jun 28 12:18:17 2008
@@ -16,8 +16,6 @@
 
 package org.apache.roller.planet.business;
 
-import java.util.List;
-import junit.framework.TestCase;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.planet.TestUtils;
@@ -27,7 +25,7 @@
 /**
  * Test Planet CRUD.
  */
-public class PlanetBasicTests extends TestCase {
+public class PlanetBasicTests extends AbstractBusinessTestCase {
     
     public static Log log = LogFactory.getLog(PlanetBasicTests.class);
     
@@ -35,9 +33,9 @@
     public void testPlanetCRUD() throws Exception {
         
         // setup planet
-        TestUtils.setupPlanet();
+        TestUtils.setupAggregator();
 
-        PlanetManager mgr = PlanetFactory.getPlanet().getPlanetManager();
+        PlanetManager mgr = AggregatorFactory.getAggregator().getPlanetManager();
         
         Planet testPlanet = new Planet("testPlanet", "testPlanet", "testPlanet");
         Planet planet = null;
@@ -47,7 +45,7 @@
         
         // add
         mgr.savePlanet(testPlanet);
-        TestUtils.endSession(true);
+        endSession(true);
         
         // verify
         planet = null;
@@ -58,7 +56,7 @@
         // modify
         planet.setTitle("foo");
         mgr.savePlanet(planet);
-        TestUtils.endSession(true);
+        endSession(true);
         
         // verify
         planet = null;
@@ -68,7 +66,7 @@
         
         // remove
         mgr.deletePlanet(planet);
-        TestUtils.endSession(true);
+        endSession(true);
         
         // verify
         planet = null;

Modified: roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PlanetFunctionalTests.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PlanetFunctionalTests.java?rev=672574&r1=672573&r2=672574&view=diff
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PlanetFunctionalTests.java (original)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PlanetFunctionalTests.java Sat Jun 28 12:18:17 2008
@@ -17,7 +17,6 @@
 package org.apache.roller.planet.business;
 
 import java.util.List;
-import junit.framework.TestCase;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.planet.TestUtils;
@@ -27,23 +26,27 @@
 /**
  * Test Planet functionality.
  */
-public class PlanetFunctionalTests extends TestCase {
+public class PlanetFunctionalTests extends AbstractBusinessTestCase {
     
     public static Log log = LogFactory.getLog(PlanetFunctionalTests.class);
     
     private Planet testPlanet = null;
     
     
-    protected void setUp() throws Exception {
-        // setup planet
-        TestUtils.setupPlanet();
-
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        
+        // create test planet
         testPlanet = TestUtils.setupPlanet("planetFuncTest");
     }
     
     
-    protected void tearDown() throws Exception {
+    @Override
+    public void tearDown() throws Exception {
         TestUtils.teardownPlanet(testPlanet.getId());
+        
+        super.tearDown();
     }
     
     
@@ -52,7 +55,7 @@
      */
     public void testPlanetLookups() throws Exception {
         
-        PlanetManager mgr = PlanetFactory.getPlanet().getPlanetManager();
+        PlanetManager mgr = AggregatorFactory.getAggregator().getPlanetManager();
         
         Planet planet = null;
         

Modified: roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PlanetTestSuite.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PlanetTestSuite.java?rev=672574&r1=672573&r2=672574&view=diff
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PlanetTestSuite.java (original)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PlanetTestSuite.java Sat Jun 28 12:18:17 2008
@@ -43,10 +43,16 @@
         
         suite.addTestSuite(PropertiesTest.class);
         
+        // users and roles
+        suite.addTestSuite(UserTest.class);
+        
         // planets
         suite.addTestSuite(PlanetBasicTests.class);
         suite.addTestSuite(PlanetFunctionalTests.class);
         
+        // permissions
+        suite.addTestSuite(PermissionTest.class);
+        
         // groups
         suite.addTestSuite(GroupBasicTests.class);
         suite.addTestSuite(GroupFunctionalTests.class);

Modified: roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PropertiesTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PropertiesTest.java?rev=672574&r1=672573&r2=672574&view=diff
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PropertiesTest.java (original)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/business/PropertiesTest.java Sat Jun 28 12:18:17 2008
@@ -19,39 +19,24 @@
 package org.apache.roller.planet.business;
 
 import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.roller.planet.TestUtils;
-import org.apache.roller.planet.business.PropertiesManager;
-import org.apache.roller.planet.business.PlanetFactory;
 import org.apache.roller.planet.pojos.RuntimeConfigProperty;
 
 
 /**
  * Test Properties related business operations.
  */
-public class PropertiesTest extends TestCase {
+public class PropertiesTest extends AbstractBusinessTestCase {
     
     public static Log log = LogFactory.getLog(PropertiesTest.class);
     
     
-    public void setUp() throws Exception {
-        // setup planet
-        TestUtils.setupPlanet();
-
-    }
-    
-    public void tearDown() throws Exception {}
-    
-    
     public void testProperiesCRUD() throws Exception {
         
         // remember, the properties table is initialized during Roller startup
-        PropertiesManager mgr = PlanetFactory.getPlanet().getPropertiesManager();
-        TestUtils.endSession(true);
+        PropertiesManager mgr = AggregatorFactory.getAggregator().getPropertiesManager();
+        endSession(true);
         
         RuntimeConfigProperty prop = null;
         
@@ -62,7 +47,7 @@
         // update a property
         prop.setValue("testtest");
         mgr.saveProperty(prop);
-        TestUtils.endSession(true);
+        endSession(true);
         
         // make sure property was updated
         prop = null;
@@ -81,7 +66,7 @@
         prop = (RuntimeConfigProperty) props.get("site.description");
         prop.setValue("blahblah");
         mgr.saveProperties(props);
-        TestUtils.endSession(true);
+        endSession(true);
         
         // make sure all properties were updated
         props = mgr.getProperties();

Modified: roller/planet/core/trunk/test/java/org/apache/roller/planet/business/RomeFeedFetcherTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/business/RomeFeedFetcherTest.java?rev=672574&r1=672573&r2=672574&view=diff
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/business/RomeFeedFetcherTest.java (original)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/business/RomeFeedFetcherTest.java Sat Jun 28 12:18:17 2008
@@ -16,40 +16,25 @@
 
 package org.apache.roller.planet.business;
 
-import java.io.File;
-import junit.framework.TestCase;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.roller.planet.TestUtils;
 import org.apache.roller.planet.business.fetcher.FeedFetcher;
-import org.apache.roller.planet.pojos.Planet;
-import org.apache.roller.planet.pojos.PlanetGroup;
 import org.apache.roller.planet.pojos.Subscription;
 
 
 /**
  * Test database implementation of PlanetManager.
  */
-public class RomeFeedFetcherTest extends TestCase {
+public class RomeFeedFetcherTest extends AbstractBusinessTestCase {
     
     public static Log log = LogFactory.getLog(RomeFeedFetcherTest.class);
     
     String feed_url = "http://rollerweblogger.org/roller/feed/entries/atom";
     
     
-    protected void setUp() throws Exception {
-        // setup planet
-        TestUtils.setupPlanet();
-    }
-    
-    
-    protected void tearDown() throws Exception {
-    }
-    
-    
     public void testFetchFeed() throws Exception {
         
-        FeedFetcher feedFetcher = PlanetFactory.getPlanet().getFeedFetcher();
+        FeedFetcher feedFetcher = AggregatorFactory.getAggregator().getFeedFetcher();
 
         // fetch feed
         Subscription sub = feedFetcher.fetchSubscription(feed_url);
@@ -64,7 +49,7 @@
     
     public void testFetchFeedConditionally() throws Exception {
         
-        FeedFetcher feedFetcher = PlanetFactory.getPlanet().getFeedFetcher();
+        FeedFetcher feedFetcher = AggregatorFactory.getAggregator().getFeedFetcher();
 
         // fetch feed
         Subscription sub = feedFetcher.fetchSubscription(feed_url);

Modified: roller/planet/core/trunk/test/java/org/apache/roller/planet/business/SingleThreadedFeedUpdaterTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/business/SingleThreadedFeedUpdaterTest.java?rev=672574&r1=672573&r2=672574&view=diff
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/business/SingleThreadedFeedUpdaterTest.java (original)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/business/SingleThreadedFeedUpdaterTest.java Sat Jun 28 12:18:17 2008
@@ -16,11 +16,9 @@
 
 package org.apache.roller.planet.business;
 
-import junit.framework.TestCase;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.planet.TestUtils;
-import org.apache.roller.planet.business.fetcher.FeedFetcher;
 import org.apache.roller.planet.business.updater.FeedUpdater;
 import org.apache.roller.planet.business.updater.SingleThreadedFeedUpdater;
 import org.apache.roller.planet.pojos.Subscription;
@@ -29,7 +27,7 @@
 /**
  * Test feed updater.
  */
-public class SingleThreadedFeedUpdaterTest extends TestCase {
+public class SingleThreadedFeedUpdaterTest extends AbstractBusinessTestCase {
     
     public static Log log = LogFactory.getLog(SingleThreadedFeedUpdaterTest.class);
     
@@ -38,34 +36,32 @@
     private String feed_url = "http://rollerweblogger.org/roller/feed/entries/atom";
     
     
-    protected void setUp() throws Exception {
-        // setup planet
-        TestUtils.setupPlanet();
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
         
         // add test subscription
-        PlanetManager mgr = PlanetFactory.getPlanet().getPlanetManager();
-        testSub = new Subscription();
-        testSub.setTitle(feed_url);
-        testSub.setFeedURL(feed_url);
-        mgr.saveSubscription(testSub);
-        PlanetFactory.getPlanet().flush();
+        testSub = TestUtils.setupSubscription(feed_url);
     }
     
     
-    protected void tearDown() throws Exception {
+    @Override
+    public void tearDown() throws Exception {
         TestUtils.teardownSubscription(testSub.getId());
+        
+        super.tearDown();
     }
     
     
     public void testUpdateSubscription() throws Exception {
         
-        PlanetManager mgr = PlanetFactory.getPlanet().getPlanetManager();
+        PlanetManager mgr = AggregatorFactory.getAggregator().getPlanetManager();
         Subscription sub = mgr.getSubscriptionById(testSub.getId());
         
         // update the subscription
-        FeedUpdater updater = new SingleThreadedFeedUpdater();
+        FeedUpdater updater = new SingleThreadedFeedUpdater(AggregatorFactory.getAggregator().getConfig());
         updater.updateSubscription(sub);
-        TestUtils.endSession(true);
+        endSession(true);
         
         // verify the results
         sub = mgr.getSubscription(feed_url);

Modified: roller/planet/core/trunk/test/java/org/apache/roller/planet/business/SubscriptionBasicTests.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/business/SubscriptionBasicTests.java?rev=672574&r1=672573&r2=672574&view=diff
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/business/SubscriptionBasicTests.java (original)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/business/SubscriptionBasicTests.java Sat Jun 28 12:18:17 2008
@@ -16,7 +16,6 @@
 
 package org.apache.roller.planet.business;
 
-import junit.framework.TestCase;
 import org.apache.roller.planet.TestUtils;
 import org.apache.roller.planet.pojos.Subscription;
 
@@ -24,15 +23,15 @@
 /**
  * Test Subscription CRUD.
  */
-public class SubscriptionBasicTests extends TestCase {
+public class SubscriptionBasicTests extends AbstractBusinessTestCase {
     
     
     public void testSubscriptionCRUD() throws Exception {
         
         // setup planet
-        TestUtils.setupPlanet();
+        TestUtils.setupAggregator();
 
-        PlanetManager mgr = PlanetFactory.getPlanet().getPlanetManager();
+        PlanetManager mgr = AggregatorFactory.getAggregator().getPlanetManager();
         
         Subscription testSub = new Subscription();
         testSub.setFeedURL("test_title");
@@ -43,7 +42,7 @@
         
         // add
         mgr.saveSubscription(testSub);
-        TestUtils.endSession(true);
+        endSession(true);
         
         // verify
         sub = null;
@@ -54,7 +53,7 @@
         // modify
         sub.setTitle("foo");
         mgr.saveSubscription(sub);
-        TestUtils.endSession(true);
+        endSession(true);
         
         // verify
         sub = null;
@@ -64,7 +63,7 @@
         
         // remove
         mgr.deleteSubscription(sub);
-        TestUtils.endSession(true);
+        endSession(true);
         
         // verify
         sub = null;

Modified: roller/planet/core/trunk/test/java/org/apache/roller/planet/business/SubscriptionFunctionalTests.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/business/SubscriptionFunctionalTests.java?rev=672574&r1=672573&r2=672574&view=diff
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/business/SubscriptionFunctionalTests.java (original)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/business/SubscriptionFunctionalTests.java Sat Jun 28 12:18:17 2008
@@ -16,8 +16,6 @@
 
 package org.apache.roller.planet.business;
 
-import java.util.Set;
-import junit.framework.TestCase;
 import org.apache.roller.planet.TestUtils;
 import org.apache.roller.planet.pojos.Planet;
 import org.apache.roller.planet.pojos.PlanetGroup;
@@ -27,7 +25,7 @@
 /**
  * Test Subscription functionality.
  */
-public class SubscriptionFunctionalTests extends TestCase {
+public class SubscriptionFunctionalTests extends AbstractBusinessTestCase {
     
     private Planet testPlanet = null;
     private PlanetGroup testGroup1 = null;
@@ -36,9 +34,9 @@
     private Subscription testSub2 = null;
     
     
-    protected void setUp() throws Exception {
-        // setup planet
-        TestUtils.setupPlanet();
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
 
         testPlanet = TestUtils.setupPlanet("subFuncTest");
         testGroup1 = TestUtils.setupGroup(testPlanet, "subFuncTest1");
@@ -48,18 +46,21 @@
     }
     
     
-    protected void tearDown() throws Exception {
+    @Override
+    public void tearDown() throws Exception {
         TestUtils.teardownSubscription(testSub1.getId());
         TestUtils.teardownSubscription(testSub2.getId());
         TestUtils.teardownGroup(testGroup1.getId());
         TestUtils.teardownGroup(testGroup2.getId());
         TestUtils.teardownPlanet(testPlanet.getId());
+        
+        super.tearDown();
     }
     
     
     public void testSubscriptionLookups() throws Exception {
         
-        PlanetManager mgr = PlanetFactory.getPlanet().getPlanetManager();
+        PlanetManager mgr = AggregatorFactory.getAggregator().getPlanetManager();
         
         // by id
         Subscription sub = mgr.getSubscriptionById(testSub1.getId());
@@ -72,6 +73,9 @@
         assertNotNull(sub);
         assertEquals("subFuncTest2", sub.getFeedURL());
         
+        // all
+        assertEquals(2, mgr.getSubscriptions().size());
+        
         // count
         assertEquals(2, mgr.getSubscriptionCount());
     }
@@ -79,7 +83,7 @@
     
     public void testSubscriptionGroupCRUD() throws Exception {
         
-        PlanetManager planet = PlanetFactory.getPlanet().getPlanetManager();
+        PlanetManager planet = AggregatorFactory.getAggregator().getPlanetManager();
         
         // retrieve subscriptions and add to group
         Subscription sub1 = planet.getSubscriptionById(testSub1.getId());
@@ -97,7 +101,7 @@
         sub2.getGroups().add(group);
         
         planet.saveGroup(group);
-        TestUtils.endSession(true);
+        endSession(true);
         
         // verify
         group = null;
@@ -114,7 +118,7 @@
         sub2.getGroups().remove(group);
 
         planet.saveGroup(group);
-        TestUtils.endSession(true);
+        endSession(true);
         
         // verify
         group = null;

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/business/UserTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/business/UserTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/business/UserTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/business/UserTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,184 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+*  contributor license agreements.  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.  For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+
+package org.apache.roller.planet.business;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.planet.TestUtils;
+import org.apache.roller.planet.pojos.User;
+
+
+/**
+ * Test User related business operations.
+ */
+public class UserTest extends AbstractBusinessTestCase {
+    
+    public static Log log = LogFactory.getLog(UserTest.class);
+    
+    
+    /**
+     * Test basic persistence operations ... Create, Update, Delete.
+     */
+    public void testUserCRUD() throws Exception {
+        
+        UserManager mgr = AggregatorFactory.getAggregator().getUserManager();
+        User user = null;
+        
+        User testUser = new User();
+        testUser.setUserName("testUser");
+        testUser.setPassword("password");
+        testUser.setFullName("Test User");
+        testUser.setEmailAddress("TestUser@dev.null");
+        testUser.setDateCreated(new java.util.Date());
+        testUser.setEnabled(Boolean.TRUE);
+        
+        // make sure test user does not exist
+        user = mgr.getUserByUserName(testUser.getUserName());
+        assertNull(user);
+        
+        // add test user
+        mgr.addUser(testUser);
+        String id = testUser.getId();
+        endSession(true);
+        
+        // make sure test user exists
+        user = null;
+        user = mgr.getUser(id);
+        assertNotNull(user);
+        assertEquals(testUser, user);
+        
+        // modify user and save
+        user.setFullName("testtesttest");
+        mgr.saveUser(user);
+        endSession(true);
+        
+        // make sure changes were saved
+        user = null;
+        user = mgr.getUser(id);
+        assertNotNull(user);
+        assertEquals("testtesttest", user.getFullName());
+
+        // remove test user
+        mgr.removeUser(user);
+        endSession(true);
+        
+        // make sure user no longer exists
+        user = null;
+        user = mgr.getUser(id);
+        assertNull(user);
+    }
+    
+    
+    /**
+     * Test lookup mechanisms.
+     */
+    public void testUserLookups() throws Exception {
+        
+        UserManager mgr = AggregatorFactory.getAggregator().getUserManager();
+        User user = null;
+        
+        // add test user
+        User testUser = TestUtils.setupUser("userTestUser");
+        endSession(true);
+        
+        // lookup by username
+        user = mgr.getUserByUserName(testUser.getUserName());
+        assertNotNull(user);
+        assertEquals(testUser.getUserName(), user.getUserName());
+        
+        // lookup by id
+        String id = user.getId();
+        user = null;
+        user = mgr.getUser(id);
+        assertNotNull(user);
+        assertEquals(testUser.getUserName(), user.getUserName());
+        
+        // make sure disable users are not returned
+        user.setEnabled(Boolean.FALSE);
+        mgr.saveUser(user);
+        endSession(true);
+        user = null;
+        user = mgr.getUserByUserName(testUser.getUserName());
+        assertNull(user);
+        
+        // remove test user
+        TestUtils.teardownUser(testUser.getId());
+        endSession(true);
+    }
+    
+    
+    /**
+     * Test basic user role persistence ... Add, Remove
+     */
+    public void testRoleCRUD() throws Exception {
+        
+        UserManager mgr = AggregatorFactory.getAggregator().getUserManager();
+        User user = null;
+        
+        // add test user
+        User testUser = TestUtils.setupUser("roleTestUser");
+        endSession(true);
+        
+        // verify user has 2 roles, admin & editor
+        user = mgr.getUserByUserName(testUser.getUserName());
+        assertNotNull(user);
+        assertEquals(2, user.getRoles().size());
+        assertTrue(user.hasRole("editor"));
+        assertTrue(user.hasRole("admin"));
+        
+        // remove role
+        mgr.revokeRole("admin",user);
+        mgr.saveUser(user);
+        endSession(true);
+        
+        // check that role was removed
+        user = null;
+        user = mgr.getUserByUserName(testUser.getUserName());
+        assertNotNull(user);
+        assertEquals(1, user.getRoles().size());
+        assertTrue(user.hasRole("editor"));
+        assertFalse(user.hasRole("admin"));
+        
+        // add role
+        user.grantRole("admin");
+        mgr.saveUser(user);
+        endSession(true);
+        
+        // check that role was added
+        user = null;
+        user = mgr.getUserByUserName(testUser.getUserName());
+        assertNotNull(user);
+        assertEquals(2, user.getRoles().size());
+        assertTrue(user.hasRole("editor"));
+        assertTrue(user.hasRole("admin"));
+        
+        // remove test user
+        TestUtils.teardownUser(testUser.getId());
+        endSession(true);
+    }
+
+    
+    /**
+     * Test ability to remove a user with a full set of data.
+     */
+    public void testRemoveLoadedUser() throws Exception {
+        // TODO: implement testRemoveLoadedUser
+    }
+    
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/business/mock/MockPlanetImpl.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/business/mock/MockPlanetImpl.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/business/mock/MockPlanetImpl.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/business/mock/MockPlanetImpl.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,14 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.apache.roller.planet.business.mock;
+
+/**
+ *
+ * @author ag92114
+ */
+public class MockPlanetImpl {
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/business/mock/MockPropertiesManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/business/mock/MockPropertiesManagerImpl.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/business/mock/MockPropertiesManagerImpl.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/business/mock/MockPropertiesManagerImpl.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,50 @@
+
+package org.apache.roller.planet.business.mock;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.roller.planet.business.InitializationException;
+import org.apache.roller.planet.business.PlanetPersistenceException;
+import org.apache.roller.planet.business.PropertiesManager;
+import org.apache.roller.planet.pojos.RuntimeConfigProperty;
+
+
+/**
+ * A mock PropertiesManager used for testing.
+ *
+ * @author ag92114
+ */
+public class MockPropertiesManagerImpl implements PropertiesManager {
+    
+    private Map props = new HashMap();
+    
+    
+    public void saveProperty(RuntimeConfigProperty property) throws PlanetPersistenceException {
+        props.put(property.getName(), property);
+    }
+
+    public void saveProperties(Map properties) throws PlanetPersistenceException {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public RuntimeConfigProperty getProperty(String name) throws PlanetPersistenceException {
+        return (RuntimeConfigProperty) props.get(name);
+    }
+
+    public Map getProperties() throws PlanetPersistenceException {
+        return props;
+    }
+
+    public void initialize() throws InitializationException {
+        // nada
+    }
+
+    public void release() {
+        // nada
+    }
+
+    public void shutdown() {
+        // nada
+    }
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/config/PlanetConfigTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/config/PlanetConfigTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/config/PlanetConfigTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/config/PlanetConfigTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,110 @@
+
+package org.apache.roller.planet.config;
+
+import java.util.List;
+import java.util.Properties;
+import org.apache.roller.planet.business.PropertiesManager;
+import org.apache.roller.planet.business.mock.MockPropertiesManagerImpl;
+import org.apache.roller.planet.pojos.RuntimeConfigProperty;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Test PlanetConfig.
+ *
+ * @author ag92114
+ */
+public class PlanetConfigTest {
+    
+    private PlanetConfig config = null;
+    
+    
+    @Before
+    public void setUp() throws Exception {
+        Properties props = new Properties();
+        props.put("output.formats", "html,xml");
+        props.put("basic", "basic value");
+        props.put("int", "12");
+        props.put("nonInt", "text");
+        props.put("booleanTrue", "true");
+        props.put("booleanFalse", "etc");
+        props.put("list", "item1, item2,item3");
+        
+        config = new PlanetConfig(props, null);
+        
+        // we also want to test access to runtime props as well, so
+        // we'll need a PropertiesManager to use
+        PropertiesManager propsMgr = new MockPropertiesManagerImpl();
+        propsMgr.saveProperty(new RuntimeConfigProperty("runtime.prop", "runtime value"));
+        config.setPropertiesManager(propsMgr);
+    }
+
+    @After
+    public void tearDown() {
+        config = null;
+    }
+    
+    
+    /**
+     * Test of getConfig method, of class PlanetConfig.
+     */
+    @Test
+    public void getConfig() {
+        System.out.println("getConfig");
+        String defaultPath = "/org/apache/roller/planet/config/default.properties";
+        String custPath = "/org/apache/roller/planet/config/custom.properties";
+        PlanetConfig conf = PlanetConfig.getConfig(defaultPath, custPath, "not tested here");
+        assertNotNull(conf);
+        assertEquals("test", conf.getProperty("test"));
+        assertEquals("overridedProperty", conf.getProperty("customProp"));
+    }
+
+    /**
+     * Test of getProperty method, of class PlanetConfig.
+     */
+    @Test
+    public void getProperty() {
+        System.out.println("getProperty");
+        assertEquals("basic value", config.getProperty("basic"));
+        
+        // check that runtime props are properly returned
+        assertEquals("runtime value", config.getProperty("runtime.prop"));
+    }
+
+    /**
+     * Test of getBooleanProperty method, of class PlanetConfig.
+     */
+    @Test
+    public void getBooleanProperty() {
+        System.out.println("getBooleanProperty");
+        assertTrue(config.getBooleanProperty("booleanTrue"));
+        assertFalse(config.getBooleanProperty("booleanFalse"));
+    }
+
+    /**
+     * Test of getIntProperty method, of class PlanetConfig.
+     */
+    @Test
+    public void getIntProperty() {
+        System.out.println("getIntProperty");
+        assertEquals(12, config.getIntProperty("int"));
+    }
+
+    /**
+     * Test of getListProperty method, of class PlanetConfig.
+     */
+    @Test
+    public void getListProperty() {
+        System.out.println("getListProperty");
+        List<String> props = config.getListProperty("list");
+        int cnt = 0;
+        for(String item : props) {
+            cnt++;
+            assertEquals("item"+cnt, item);
+        }
+    }
+
+}
\ No newline at end of file

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/config/custom.properties
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/config/custom.properties?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/config/custom.properties (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/config/custom.properties Sat Jun 28 12:18:17 2008
@@ -0,0 +1,5 @@
+# To change this template, choose Tools | Templates
+# and open the template in the editor.
+
+# overriding value from default config
+customProp=overridedProperty

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/config/default.properties
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/config/default.properties?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/config/default.properties (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/config/default.properties Sat Jun 28 12:18:17 2008
@@ -0,0 +1,8 @@
+# To change this template, choose Tools | Templates
+# and open the template in the editor.
+
+# just a simple property
+test=test
+
+# this property should be overriden in the custom prop file for the test
+customProp=custom

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/tasks/PurgeUnusedSubscriptionsTaskTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/tasks/PurgeUnusedSubscriptionsTaskTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/tasks/PurgeUnusedSubscriptionsTaskTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/tasks/PurgeUnusedSubscriptionsTaskTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,60 @@
+
+package org.apache.roller.planet.tasks;
+
+import org.apache.roller.planet.TestUtils;
+import org.apache.roller.planet.business.AggregatorFactory;
+import org.apache.roller.planet.business.PlanetManager;
+import org.apache.roller.planet.business.startup.PlanetStartup;
+import org.apache.roller.planet.config.PlanetConfig;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Test the PurgeUnusedSubscriptionsTask.
+ *
+ * @author ag92114
+ */
+public class PurgeUnusedSubscriptionsTaskTest {
+    
+
+    @Before
+    public void setUp() {
+    }
+
+    @After
+    public void tearDown() {
+    }
+    
+    
+    /**
+     * Test of run method, of class PurgeUnusedSubscriptionsTask.
+     */
+    @Test
+    public void run() throws Exception {
+        System.out.println("run");
+        PurgeUnusedSubscriptionsTask instance = new PurgeUnusedSubscriptionsTask();
+        
+        // start by loading config
+        PlanetConfig config = PlanetConfig.getConfig(PlanetConfig.DEFAULT, PlanetConfig.CUSTOM, PlanetConfig.JVM_PARAM);
+        
+        // need to prepare and bootstrap Aggregator as well
+        PlanetStartup.prepare(config);
+        AggregatorFactory.bootstrap(AggregatorFactory.getDefaultProvider(config));
+        
+        // add a subscription
+        TestUtils.setupSubscription("purgeUnusedSubscriptionsTask");
+        TestUtils.endSession(true);
+        
+        // run task
+        instance.run();
+        TestUtils.endSession(true);
+        
+        // verify subscription is gone
+        PlanetManager pmgr = AggregatorFactory.getAggregator().getPlanetManager();
+        assertEquals(0, pmgr.getSubscriptions().size());
+    }
+
+}
\ No newline at end of file

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/rendering/util/PlanetGroupFeedRequestTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/rendering/util/PlanetGroupFeedRequestTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/rendering/util/PlanetGroupFeedRequestTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/rendering/util/PlanetGroupFeedRequestTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,48 @@
+
+package org.apache.roller.planet.ui.rendering.util;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Unit test of PlanetGroupFeedRequest class.
+ * 
+ * @author ag92114
+ */
+public class PlanetGroupFeedRequestTest {
+
+    /**
+     * Test of constructor, of class PlanetGroupFeedRequest.
+     */
+    @Test
+    public void constructor() throws Exception {
+        System.out.println("constructor");
+        
+        PlanetGroupFeedRequest instance;
+        
+        instance = new PlanetGroupFeedRequest("foo/bar/atom");
+        assertEquals("foo", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertEquals("atom", instance.getFormat());
+        
+        instance = new PlanetGroupFeedRequest("/foo/bar/atom");
+        assertEquals("foo", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertEquals("atom", instance.getFormat());
+        
+        instance = new PlanetGroupFeedRequest("/foo/bar/atom/");
+        assertEquals("foo", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertEquals("atom", instance.getFormat());
+        
+        instance = new PlanetGroupFeedRequest("/blah/bar/atom/");
+        instance.setAuthenticUserName("test");
+        assertEquals("blah", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertEquals("atom", instance.getFormat());
+        assertEquals("test", instance.getAuthenticUserName());
+        assertTrue(instance.isLoggedIn());
+    }
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/rendering/util/PlanetGroupPageRequestTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/rendering/util/PlanetGroupPageRequestTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/rendering/util/PlanetGroupPageRequestTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/rendering/util/PlanetGroupPageRequestTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,59 @@
+
+package org.apache.roller.planet.ui.rendering.util;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Unit test for PlanetGroupPageRequest class.
+ *
+ * @author ag92114
+ */
+public class PlanetGroupPageRequestTest {
+
+    /**
+     * Test of constructor, of class PlanetGroupPageRequest.
+     */
+    @Test
+    public void constructor() throws Exception {
+        System.out.println("constructor");
+        
+        Map params = new HashMap();
+        params.put("page", new String[]{"1"});
+        
+        PlanetGroupPageRequest instance;
+        
+        instance = new PlanetGroupPageRequest("foo/bar", Collections.EMPTY_MAP);
+        assertEquals("foo", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertEquals(0, instance.getPageNum());
+        
+        instance = new PlanetGroupPageRequest("foo/bar", params);
+        assertEquals("foo", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertEquals(1, instance.getPageNum());
+        
+        instance = new PlanetGroupPageRequest("/foo/bar", params);
+        assertEquals("foo", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertEquals(1, instance.getPageNum());
+        
+        instance = new PlanetGroupPageRequest("/foo/bar/", params);
+        assertEquals("foo", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertEquals(1, instance.getPageNum());
+        
+        instance = new PlanetGroupPageRequest("/blah/bar/", params);
+        instance.setAuthenticUserName("test");
+        assertEquals("blah", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertEquals(1, instance.getPageNum());
+        assertEquals("test", instance.getAuthenticUserName());
+        assertTrue(instance.isLoggedIn());
+    }
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/rendering/util/PlanetGroupRequestTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/rendering/util/PlanetGroupRequestTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/rendering/util/PlanetGroupRequestTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/rendering/util/PlanetGroupRequestTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,50 @@
+
+package org.apache.roller.planet.ui.rendering.util;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Unit test for PlanetGroupRequest class.
+ *
+ * @author ag92114
+ */
+public class PlanetGroupRequestTest {
+
+    /**
+     * Test of constructor, of class PlanetGroupRequest.
+     */
+    @Test
+    public void constructor() throws Exception {
+        System.out.println("constructor");
+        
+        PlanetGroupRequest instance;
+        
+        instance = new PlanetGroupRequest("foo/bar");
+        assertEquals("foo", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertNull(instance.getAuthenticUserName());
+        assertFalse(instance.isLoggedIn());
+        
+        instance = new PlanetGroupRequest("/foo/bar");
+        assertEquals("foo", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertNull(instance.getAuthenticUserName());
+        assertFalse(instance.isLoggedIn());
+        
+        instance = new PlanetGroupRequest("/foo/bar/");
+        assertEquals("foo", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertNull(instance.getAuthenticUserName());
+        assertFalse(instance.isLoggedIn());
+        
+        instance = new PlanetGroupRequest("/blah/bar/");
+        instance.setAuthenticUserName("test");
+        assertEquals("blah", instance.getPlanetHandle());
+        assertEquals("bar", instance.getGroupHandle());
+        assertEquals("test", instance.getAuthenticUserName());
+        assertTrue(instance.isLoggedIn());
+    }
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/core/CreatePlanetTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/core/CreatePlanetTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/core/CreatePlanetTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/core/CreatePlanetTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,100 @@
+
+package org.apache.roller.planet.ui.struts2.core;
+
+import org.apache.roller.planet.TestUtils;
+import org.apache.roller.planet.business.AggregatorFactory;
+import org.apache.roller.planet.pojos.Planet;
+import org.apache.roller.planet.pojos.User;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Test CreatePlanet struts2 action.
+ *
+ * @author ag92114
+ */
+public class CreatePlanetTest {
+    
+    private User testUser = null;
+    
+    
+    @Before
+    public void setUp() throws Exception {
+        TestUtils.setupAggregator();
+        testUser = TestUtils.setupUser("CreatePlanetTest");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtils.teardownUser(testUser.getId());
+        TestUtils.shutdownAggregator();
+    }
+    
+
+    /**
+     * Test of save method, of class CreatePlanet.
+     */
+    @Test
+    public void save() throws Exception {
+        System.out.println("save");
+        CreatePlanet instance = new CreatePlanet();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.getBean().setTitle("CPtitle");
+        instance.getBean().setDescription("CPdescription");
+        instance.getBean().setHandle("CPhandle");
+        
+        String result = instance.save();
+        
+        assertEquals(CreatePlanet.SUCCESS, result);
+        assertFalse(instance.hasActionErrors());
+    }
+    
+    
+    /**
+     * Test of myValidate method, of class CreatePlanet.
+     */
+    @Test
+    public void myValidateInvalidHandle() {
+        System.out.println("myValidateInvalidHandle");
+        CreatePlanet instance = new CreatePlanet();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.getBean().setTitle("myValidateInvalidHandle");
+        instance.getBean().setDescription("myValidateInvalidHandle");
+        instance.getBean().setHandle("Handle with illegal characters *#(@#");
+        
+        instance.myValidate();
+        
+        assertTrue(instance.hasActionErrors());
+    }
+    
+    
+    /**
+     * Test of myValidate method, of class CreatePlanet.
+     */
+    @Test
+    public void myValidateExistingHandle() throws Exception {
+        System.out.println("myValidateExistingHandle");
+        
+        // need an existing planet to conflict with
+        Planet testPlanet = TestUtils.setupPlanet("myValidateExistingHandle");
+        
+        CreatePlanet instance = new CreatePlanet();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.getBean().setTitle("myValidateExistingHandle");
+        instance.getBean().setDescription("myValidateExistingHandle");
+        instance.getBean().setHandle("myValidateExistingHandle");
+        
+        instance.myValidate();
+        
+        assertTrue(instance.hasActionErrors());
+        
+        TestUtils.teardownPlanet(testPlanet.getId());
+    }
+    
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/core/MainMenuTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/core/MainMenuTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/core/MainMenuTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/core/MainMenuTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,124 @@
+
+package org.apache.roller.planet.ui.struts2.core;
+
+import org.apache.roller.planet.TestUtils;
+import org.apache.roller.planet.business.AggregatorFactory;
+import org.apache.roller.planet.business.UserManager;
+import org.apache.roller.planet.pojos.Planet;
+import org.apache.roller.planet.pojos.PlanetPermission;
+import org.apache.roller.planet.pojos.User;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Test MainMenu struts2 action.
+ *
+ * @author ag92114
+ */
+public class MainMenuTest {
+
+    private User testUser = null;
+    private Planet testPlanet = null;
+    
+    
+    @Before
+    public void setUp() throws Exception {
+        TestUtils.setupAggregator();
+        testUser = TestUtils.setupUser("MainMenuTest");
+        testPlanet = TestUtils.setupPlanet("MainMenuTest");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtils.teardownPlanet(testPlanet.getId());
+        TestUtils.teardownUser(testUser.getId());
+        TestUtils.shutdownAggregator();
+    }
+    
+
+    /**
+     * Test of accept method, of class MainMenu.
+     */
+    @Test
+    public void accept() throws Exception {
+        System.out.println("accept");
+        
+        // setup invitation
+        UserManager mgr = AggregatorFactory.getAggregator().getUserManager();
+        PlanetPermission perms = mgr.inviteUser(testPlanet, testUser, PlanetPermission.AUTHOR);
+        AggregatorFactory.getAggregator().flush();
+        
+        MainMenu instance = new MainMenu();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.setInviteId(perms.getId());
+        
+        instance.accept();
+        assertFalse(instance.hasActionErrors());
+        
+        // make sure permissions are legit
+        TestUtils.endSession(false);
+        perms = mgr.getPermissions(TestUtils.getManagedPlanet(testPlanet), TestUtils.getManagedUser(testUser));
+        assertEquals(PlanetPermission.AUTHOR, perms.getPermissionMask());
+        
+        // cleanup after ourselves
+        TestUtils.teardownPermissions(perms.getId());
+    }
+
+    
+    /**
+     * Test of decline method, of class MainMenu.
+     */
+    @Test
+    public void decline() throws Exception {
+        System.out.println("decline");
+        
+        // setup invitation
+        UserManager mgr = AggregatorFactory.getAggregator().getUserManager();
+        PlanetPermission perms = mgr.inviteUser(testPlanet, testUser, PlanetPermission.AUTHOR);
+        AggregatorFactory.getAggregator().flush();
+        
+        MainMenu instance = new MainMenu();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.setInviteId(perms.getId());
+        
+        instance.decline();
+        assertFalse(instance.hasActionErrors());
+        
+        // make sure permissions are legit
+        TestUtils.endSession(false);
+        perms = mgr.getPermissions(TestUtils.getManagedPlanet(testPlanet), TestUtils.getManagedUser(testUser));
+        assertEquals(null, perms);
+    }
+
+    
+    /**
+     * Test of resign method, of class MainMenu.
+     */
+    @Test
+    public void resign() throws Exception {
+        System.out.println("resign");
+        
+        // setup permissions
+        PlanetPermission perms = TestUtils.setupPermissions(testUser, testPlanet, PlanetPermission.AUTHOR);
+        
+        MainMenu instance = new MainMenu();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.setPlanetId(testPlanet.getId());
+        
+        instance.resign();
+        assertFalse(instance.hasActionErrors());
+        
+        // make sure permissions are legit
+        TestUtils.endSession(false);
+        UserManager mgr = AggregatorFactory.getAggregator().getUserManager();
+        perms = mgr.getPermissions(TestUtils.getManagedPlanet(testPlanet), TestUtils.getManagedUser(testUser));
+        assertEquals(null, perms);
+    }
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupAddTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupAddTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupAddTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupAddTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,76 @@
+
+package org.apache.roller.planet.ui.struts2.editor;
+
+import org.apache.roller.planet.TestUtils;
+import org.apache.roller.planet.business.AggregatorFactory;
+import org.apache.roller.planet.business.PlanetManager;
+import org.apache.roller.planet.pojos.Planet;
+import org.apache.roller.planet.pojos.PlanetGroup;
+import org.apache.roller.planet.pojos.User;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Test of GroupAdd struts2 action.
+ *
+ * @author ag92114
+ */
+public class GroupAddTest {
+
+    private User testUser = null;
+    private Planet testPlanet = null;
+    
+    
+    @Before
+    public void setUp() throws Exception {
+        TestUtils.setupAggregator();
+        testUser = TestUtils.setupUser("GroupAddTest");
+        testPlanet = TestUtils.setupPlanet("GroupAddTest");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtils.teardownPlanet(testPlanet.getId());
+        TestUtils.teardownUser(testUser.getId());
+        TestUtils.shutdownAggregator();
+    }
+    
+
+    /**
+     * Test of save method, of class GroupAdd.
+     */
+    @Test
+    public void save() throws Exception {
+        System.out.println("save");
+        
+        GroupAdd instance = new GroupAdd();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.setActionPlanet(testPlanet);
+        
+        GroupBean bean = instance.getBean();
+        bean.setHandle("GroupAddTest");
+        bean.setTitle("GroupAddTest");
+        bean.setDescription("GroupAddTest");
+        bean.setPageEntries(10);
+        bean.setFeedEntries(10);
+        
+        // add it
+        String result = instance.save();
+        assertEquals(GroupAdd.SUCCESS, result);
+        assertFalse(instance.hasActionErrors());
+        
+        // make sure group was added
+        TestUtils.endSession(false);
+        PlanetManager pmgr = AggregatorFactory.getAggregator().getPlanetManager();
+        PlanetGroup group = pmgr.getGroup(TestUtils.getManagedPlanet(testPlanet), "GroupAddTest");
+        assertNotNull(group);
+        
+        // cleanup after ourselves
+        TestUtils.teardownGroup(group.getId());
+    }
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupBeanTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupBeanTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupBeanTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupBeanTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,81 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.apache.roller.planet.ui.struts2.editor;
+
+import org.apache.roller.planet.pojos.PlanetGroup;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Unit test for GroupBean utility class.
+ *
+ * @author ag92114
+ */
+public class GroupBeanTest {
+
+    @Before
+    public void setUp() {
+    }
+
+    @After
+    public void tearDown() {
+    }
+
+    
+    /**
+     * Test of copyFrom method, of class GroupBean.
+     */
+    @Test
+    public void copyFrom() {
+        System.out.println("copyFrom");
+        
+        PlanetGroup group = new PlanetGroup();
+        group.setHandle("GroupBeanTest");
+        group.setDescription("GroupBeanTest");
+        group.setTitle("GroupBeanTest");
+        group.setMaxPageEntries(10);
+        group.setMaxFeedEntries(10);
+        
+        GroupBean instance = new GroupBean();
+        instance.copyFrom(group);
+        
+        assertEquals(instance.getHandle(), group.getHandle());
+        assertEquals(instance.getDescription(), group.getDescription());
+        assertEquals(instance.getTitle(), group.getTitle());
+        assertEquals(instance.getPageEntries(), group.getMaxPageEntries());
+        assertEquals(instance.getFeedEntries(), group.getMaxFeedEntries());
+    }
+
+    
+    /**
+     * Test of copyTo method, of class GroupBean.
+     */
+    @Test
+    public void copyTo() {
+        System.out.println("copyTo");
+        
+        GroupBean instance = new GroupBean();
+        instance.setHandle("GroupBeanTest");
+        instance.setDescription("GroupBeanTest");
+        instance.setTitle("GroupBeanTest");
+        instance.setPageEntries(10);
+        instance.setFeedEntries(10);
+        
+        PlanetGroup group = new PlanetGroup();
+        instance.copyTo(group);
+        
+        // handle should not be copied
+        assertNull(group.getHandle());
+        assertEquals(group.getDescription(), instance.getDescription());
+        assertEquals(group.getTitle(), instance.getTitle());
+        assertEquals(group.getMaxPageEntries(), instance.getPageEntries());
+        assertEquals(group.getMaxFeedEntries(), instance.getFeedEntries());
+    }
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupEditTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupEditTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupEditTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupEditTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,77 @@
+
+package org.apache.roller.planet.ui.struts2.editor;
+
+import org.apache.roller.planet.TestUtils;
+import org.apache.roller.planet.business.AggregatorFactory;
+import org.apache.roller.planet.business.PlanetManager;
+import org.apache.roller.planet.pojos.Planet;
+import org.apache.roller.planet.pojos.PlanetGroup;
+import org.apache.roller.planet.pojos.User;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Unit test for GroupEdit struts2 action.
+ *
+ * @author ag92114
+ */
+public class GroupEditTest {
+
+    private User testUser = null;
+    private Planet testPlanet = null;
+    private PlanetGroup testGroup = null;
+    
+    
+    @Before
+    public void setUp() throws Exception {
+        TestUtils.setupAggregator();
+        testUser = TestUtils.setupUser("GroupEditTest");
+        testPlanet = TestUtils.setupPlanet("GroupEditTest");
+        testGroup = TestUtils.setupGroup(testPlanet, "GroupEditTest");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtils.teardownGroup(testGroup.getId());
+        TestUtils.teardownPlanet(testPlanet.getId());
+        TestUtils.teardownUser(testUser.getId());
+        TestUtils.shutdownAggregator();
+    }
+    
+
+    /**
+     * Test of save method, of class GroupEdit.
+     */
+    @Test
+    public void save() throws Exception {
+        System.out.println("save");
+        
+        GroupEdit instance = new GroupEdit();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.setActionPlanet(testPlanet);
+        instance.setActionGroup(testGroup);
+        
+        GroupBean bean = instance.getBean();
+        bean.setTitle("GroupEditTestModified");
+        bean.setDescription("GroupEditTestModified");
+        bean.setPageEntries(10);
+        bean.setFeedEntries(10);
+        
+        // save it
+        instance.save();
+        assertFalse(instance.hasActionErrors());
+        
+        // make sure group was modified
+        TestUtils.endSession(false);
+        PlanetManager pmgr = AggregatorFactory.getAggregator().getPlanetManager();
+        PlanetGroup group = pmgr.getGroup(TestUtils.getManagedPlanet(testPlanet), "GroupEditTest");
+        assertNotNull(group);
+        assertEquals("GroupEditTestModified", group.getTitle());
+        assertEquals("GroupEditTestModified", group.getDescription());
+    }
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupRemoveTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupRemoveTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupRemoveTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/GroupRemoveTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,68 @@
+
+package org.apache.roller.planet.ui.struts2.editor;
+
+import org.apache.roller.planet.TestUtils;
+import org.apache.roller.planet.business.AggregatorFactory;
+import org.apache.roller.planet.business.PlanetManager;
+import org.apache.roller.planet.pojos.Planet;
+import org.apache.roller.planet.pojos.PlanetGroup;
+import org.apache.roller.planet.pojos.User;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Unit test of GroupRemove struts2 action.
+ *
+ * @author ag92114
+ */
+public class GroupRemoveTest {
+
+    private User testUser = null;
+    private Planet testPlanet = null;
+    private PlanetGroup testGroup = null;
+    
+    
+    @Before
+    public void setUp() throws Exception {
+        TestUtils.setupAggregator();
+        testUser = TestUtils.setupUser("GroupRemoveTest");
+        testPlanet = TestUtils.setupPlanet("GroupRemoveTest");
+        testGroup = TestUtils.setupGroup(testPlanet, "GroupRemoveTest");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtils.teardownPlanet(testPlanet.getId());
+        TestUtils.teardownUser(testUser.getId());
+        TestUtils.shutdownAggregator();
+    }
+    
+
+    /**
+     * Test of remove method, of class GroupRemove.
+     */
+    @Test
+    public void remove() throws Exception {
+        System.out.println("remove");
+        
+        GroupRemove instance = new GroupRemove();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.setActionPlanet(testPlanet);
+        instance.setActionGroup(testGroup);
+        
+        String result = instance.remove();
+        assertEquals(GroupRemove.SUCCESS, result);
+        assertFalse(instance.hasActionErrors());
+        
+        // make sure group no longer exists
+        TestUtils.endSession(false);
+        PlanetManager pmgr = AggregatorFactory.getAggregator().getPlanetManager();
+        PlanetGroup group = pmgr.getGroup(TestUtils.getManagedPlanet(testPlanet), "GroupRemoveTest");
+        assertNull(group);
+    }
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/MembersTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/MembersTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/MembersTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/MembersTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,102 @@
+
+package org.apache.roller.planet.ui.struts2.editor;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.roller.planet.TestUtils;
+import org.apache.roller.planet.business.AggregatorFactory;
+import org.apache.roller.planet.business.UserManager;
+import org.apache.roller.planet.pojos.Planet;
+import org.apache.roller.planet.pojos.PlanetPermission;
+import org.apache.roller.planet.pojos.User;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Test Members struts2 action.
+ *
+ * @author ag92114
+ */
+public class MembersTest {
+
+    private User testUser = null;
+    private User inviteRevokeUser = null;
+    private Planet testPlanet = null;
+    
+    
+    @Before
+    public void setUp() throws Exception {
+        TestUtils.setupAggregator();
+        testUser = TestUtils.setupUser("MembersTest");
+        inviteRevokeUser = TestUtils.setupUser("MembersTestInviteRevokeUser");
+        testPlanet = TestUtils.setupPlanet("MembersTest");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtils.teardownPlanet(testPlanet.getId());
+        TestUtils.teardownUser(inviteRevokeUser.getId());
+        TestUtils.teardownUser(testUser.getId());
+        TestUtils.shutdownAggregator();
+    }
+    
+
+    /**
+     * Test of invite method, of class Members.
+     */
+    @Test
+    public void invite() throws Exception {
+        System.out.println("invite");
+        
+        Members instance = new Members();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.setActionPlanet(testPlanet);
+        instance.setUserName(inviteRevokeUser.getUserName());
+        
+        instance.invite();
+        assertFalse(instance.hasActionErrors());
+        
+        // make sure invite was legit
+        TestUtils.endSession(false);
+        UserManager mgr = AggregatorFactory.getAggregator().getUserManager();
+        PlanetPermission perms = mgr.getPermissions(TestUtils.getManagedPlanet(testPlanet), TestUtils.getManagedUser(inviteRevokeUser));
+        assertEquals(PlanetPermission.ADMIN, perms.getPermissionMask());
+        
+        // cleanup after ourselves
+        TestUtils.teardownPermissions(perms.getId());
+    }
+
+    
+    /**
+     * Test of revoke method, of class Members.
+     */
+    @Test
+    public void revoke() throws Exception {
+        System.out.println("revoke");
+        
+        // setup permission
+        PlanetPermission perms = TestUtils.setupPermissions(inviteRevokeUser, testPlanet, PlanetPermission.ADMIN);
+        
+        Members instance = new Members();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.setActionPlanet(testPlanet);
+        List<String> revokeIds = new ArrayList(1);
+        revokeIds.add(perms.getId());
+        instance.setRevokeIds(revokeIds);
+        
+        instance.revoke();
+        assertFalse(instance.hasActionErrors());
+        
+        // make sure revoke was legit
+        TestUtils.endSession(false);
+        UserManager mgr = AggregatorFactory.getAggregator().getUserManager();
+        perms = mgr.getPermissions(TestUtils.getManagedPlanet(testPlanet), TestUtils.getManagedUser(inviteRevokeUser));
+        assertEquals(null, perms);
+    }
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/PlanetConfigBeanTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/PlanetConfigBeanTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/PlanetConfigBeanTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/PlanetConfigBeanTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,69 @@
+
+package org.apache.roller.planet.ui.struts2.editor;
+
+import org.apache.roller.planet.pojos.Planet;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Unit test of PlanetConfigBean util class.
+ *
+ * @author ag92114
+ */
+public class PlanetConfigBeanTest {
+
+    @Before
+    public void setUp() {
+    }
+
+    @After
+    public void tearDown() {
+    }
+    
+    
+    /**
+     * Test of copyFrom method, of class PlanetConfigBean.
+     */
+    @Test
+    public void copyFrom() {
+        System.out.println("copyFrom");
+        
+        Planet planet = new Planet();
+        planet.setHandle("PlanetConfigBeanTest");
+        planet.setDescription("PlanetConfigBeanTest");
+        planet.setTitle("PlanetConfigBeanTest");
+        
+        PlanetConfigBean instance = new PlanetConfigBean();
+        instance.copyFrom(planet);
+        
+        assertEquals(instance.getHandle(), planet.getHandle());
+        assertEquals(instance.getDescription(), planet.getDescription());
+        assertEquals(instance.getTitle(), planet.getTitle());
+    }
+
+    
+    /**
+     * Test of copyTo method, of class PlanetConfigBean.
+     */
+    @Test
+    public void copyTo() {
+        System.out.println("copyTo");
+        
+        PlanetConfigBean instance = new PlanetConfigBean();
+        instance.setHandle("GroupBeanTest");
+        instance.setDescription("GroupBeanTest");
+        instance.setTitle("GroupBeanTest");
+        
+        Planet planet = new Planet();
+        instance.copyTo(planet);
+        
+        // handle should not be copied
+        assertNull(planet.getHandle());
+        assertEquals(planet.getDescription(), instance.getDescription());
+        assertEquals(planet.getTitle(), instance.getTitle());
+    }
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/PlanetConfigTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/PlanetConfigTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/PlanetConfigTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/PlanetConfigTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,68 @@
+
+package org.apache.roller.planet.ui.struts2.editor;
+
+import org.apache.roller.planet.TestUtils;
+import org.apache.roller.planet.business.AggregatorFactory;
+import org.apache.roller.planet.pojos.Planet;
+import org.apache.roller.planet.pojos.User;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Unit test of PlanetConfig struts2 action.
+ *
+ * @author ag92114
+ */
+public class PlanetConfigTest {
+
+    private User testUser = null;
+    private Planet testPlanet = null;
+    
+    
+    @Before
+    public void setUp() throws Exception {
+        TestUtils.setupAggregator();
+        testUser = TestUtils.setupUser("PlanetConfigTest");
+        testPlanet = TestUtils.setupPlanet("PlanetConfigTest");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtils.teardownPlanet(testPlanet.getId());
+        TestUtils.teardownUser(testUser.getId());
+        TestUtils.shutdownAggregator();
+    }
+
+    
+    /**
+     * Test of save method, of class PlanetConfig.
+     */
+    @Test
+    public void save() throws Exception {
+        System.out.println("save");
+        
+        PlanetConfig instance = new PlanetConfig();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.setActionPlanet(testPlanet);
+        
+        PlanetConfigBean bean = instance.getBean();
+        bean.setTitle("PlanetConfigTestModified");
+        bean.setDescription("PlanetConfigTestModified");
+        
+        // save it
+        instance.save();
+        assertFalse(instance.hasActionErrors());
+        
+        // make sure planet was modified
+        TestUtils.endSession(false);
+        Planet planet = TestUtils.getManagedPlanet(testPlanet);
+        assertNotNull(planet);
+        assertEquals("PlanetConfigTestModified", planet.getTitle());
+        assertEquals("PlanetConfigTestModified", planet.getDescription());
+    }
+
+}

Added: roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/PlanetRemoveTest.java
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/PlanetRemoveTest.java?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/PlanetRemoveTest.java (added)
+++ roller/planet/core/trunk/test/java/org/apache/roller/planet/ui/struts2/editor/PlanetRemoveTest.java Sat Jun 28 12:18:17 2008
@@ -0,0 +1,61 @@
+
+package org.apache.roller.planet.ui.struts2.editor;
+
+import org.apache.roller.planet.TestUtils;
+import org.apache.roller.planet.business.AggregatorFactory;
+import org.apache.roller.planet.pojos.Planet;
+import org.apache.roller.planet.pojos.User;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+
+/**
+ * Unit test of PlanetRemove struts2 action.
+ *
+ * @author ag92114
+ */
+public class PlanetRemoveTest {
+
+    private User testUser = null;
+    private Planet testPlanet = null;
+    
+    
+    @Before
+    public void setUp() throws Exception {
+        TestUtils.setupAggregator();
+        testUser = TestUtils.setupUser("PlanetRemoveTest");
+        testPlanet = TestUtils.setupPlanet("PlanetRemoveTest");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtils.teardownUser(testUser.getId());
+        TestUtils.shutdownAggregator();
+    }
+    
+    
+    /**
+     * Test of remove method, of class PlanetRemove.
+     */
+    @Test
+    public void remove() throws Exception {
+        System.out.println("remove");
+        
+        PlanetRemove instance = new PlanetRemove();
+        instance.setPlanetConfig(AggregatorFactory.getAggregator().getConfig());
+        instance.setAuthenticatedUser(testUser);
+        instance.setActionPlanet(testPlanet);
+        
+        String result = instance.remove();
+        assertEquals(PlanetRemove.SUCCESS, result);
+        assertFalse(instance.hasActionErrors());
+        
+        // make sure planet no longer exists
+        TestUtils.endSession(false);
+        Planet planet = TestUtils.getManagedPlanet(testPlanet);
+        assertNull(planet);
+    }
+
+}