Hi Dave,

Thanks for the checkin. It seems that the patch was not applied correctly. After updating with these changes I noticed that the checkin contains some additional changes and does not contain some of the the changes I sent you. Attached is the patch that corrects it. Please review.

Thanks,
Mitesh

[EMAIL PROTECTED] wrote:
Author: snoopdave
Date: Sat Jan 20 04:39:29 2007
New Revision: 498108

URL: http://svn.apache.org/viewvc?view=rev&rev=498108
Log:
Fixes to JDO impl and fixes to tests that were saving detached objects

Modified:
    
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperBookmarkManagerImpl.java
    
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperUserManagerImpl.java
    
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperWeblogManagerImpl.java
    
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAPersistenceStrategy.java
    
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARefererManager.java
    
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/CommentData.orm.xml
    
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/RollerPropertyData.orm.xml
    incubator/roller/trunk/src/org/apache/roller/pojos/RollerPropertyData.java
    incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java
    incubator/roller/trunk/tests/org/apache/roller/TestUtils.java
    incubator/roller/trunk/tests/org/apache/roller/business/BookmarkTest.java
    incubator/roller/trunk/tests/org/apache/roller/business/CommentTest.java
    incubator/roller/trunk/tests/org/apache/roller/business/PermissionTest.java
    incubator/roller/trunk/tests/org/apache/roller/business/PingsTest.java
    
incubator/roller/trunk/tests/org/apache/roller/business/WeblogCategoryTest.java
    incubator/roller/trunk/tests/org/apache/roller/business/WeblogPageTest.java

Modified: 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperBookmarkManagerImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperBookmarkManagerImpl.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperBookmarkManagerImpl.java
 (original)
+++ 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperBookmarkManagerImpl.java
 Sat Jan 20 04:39:29 2007
@@ -103,7 +103,7 @@
             // maintain relationship from both sides
             FolderData parent = folder.getParent();
             if(parent != null) {
-                //parent.getFolders().add(folder);
+                parent.getFolders().add(folder);
             }
         }
Modified: 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperUserManagerImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperUserManagerImpl.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperUserManagerImpl.java
 (original)
+++ 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperUserManagerImpl.java
 Sat Jan 20 04:39:29 2007
@@ -192,14 +192,6 @@
         FolderData rootFolder = bmgr.getRootFolder(website);
         if (null != rootFolder) {
             this.strategy.remove(rootFolder);
-
-            // Still cannot get all Bookmarks cleared!
-//            Iterator allFolders = bmgr.getAllFolders(website).iterator();
-//            while (allFolders.hasNext()) {
-//                FolderData aFolder = (FolderData)allFolders.next();
-//                bmgr.removeFolderContents(aFolder);
-//                this.strategy.remove(aFolder);
-//            }
         }
// remove categories

Modified: 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperWeblogManagerImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperWeblogManagerImpl.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperWeblogManagerImpl.java
 (original)
+++ 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperWeblogManagerImpl.java
 Sat Jan 20 04:39:29 2007
@@ -29,6 +29,7 @@
 import java.util.Map;
 import java.text.SimpleDateFormat;
 import java.util.TreeMap;
+import java.sql.Timestamp;
import org.apache.commons.collections.comparators.ReverseComparator;
 import org.apache.commons.logging.Log;
@@ -37,6 +38,7 @@
 import org.apache.roller.RollerException;
 import org.apache.roller.business.RollerFactory;
 import org.apache.roller.business.WeblogManager;
+import org.apache.roller.business.WeblogManagerImpl;
 import org.apache.roller.pojos.CommentData;
 import org.apache.roller.pojos.HitCountData;
 import org.apache.roller.pojos.RefererData;
@@ -57,7 +59,7 @@
  * Created on May 31, 2006, 4:08 PM
  *
  */
-public abstract class DatamapperWeblogManagerImpl implements WeblogManager {
+public abstract class DatamapperWeblogManagerImpl extends WeblogManagerImpl {
protected static Log log = LogFactory.getLog(
         DatamapperWeblogManagerImpl.class);

Modified: 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAPersistenceStrategy.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAPersistenceStrategy.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAPersistenceStrategy.java
 (original)
+++ 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAPersistenceStrategy.java
 Sat Jan 20 04:39:29 2007
@@ -249,7 +249,7 @@
      */
     public DatamapperRemoveQuery newRemoveQuery(Class clazz, String queryName)
             throws RollerException {
-        EntityManager em = getEntityManager(false);
+        EntityManager em = getEntityManager(true);
         return new JPARemoveQueryImpl(em, clazz, queryName);
     }
Modified: 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARefererManager.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARefererManager.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARefererManager.java
 (original)
+++ 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARefererManager.java
 Sat Jan 20 04:39:29 2007
@@ -67,7 +67,6 @@
      * Generates a JPQL query of form
      * SELECT r FROM RefererData r WHERE
      *     ( refererUrl like %blacklist[1] ..... OR refererUrl like 
%blacklist[n])
-     * AND (r.excerpt IS NULL OR r.excerpt LIKE '')
      * @param blacklist
      * @return
      */
@@ -87,7 +86,6 @@
         // Get rid of last OR
         queryString.delete(queryString.length() - OR.length(), 
queryString.length());
         queryString.append(" ) ");
-        queryString.append(" AND (r.excerpt IS NULL OR r.excerpt LIKE '')");
         return queryString;
     }
Modified: 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/CommentData.orm.xml
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/CommentData.orm.xml?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/CommentData.orm.xml
 (original)
+++ 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/CommentData.orm.xml
 Sat Jan 20 04:39:29 2007
@@ -119,6 +119,9 @@
                 <join-column name="entryid" insertable="true" updatable="true" 
nullable="false"/>
             </many-to-one>
             <transient name="timestamp"/>
+            <transient name="spam"/>
+            <transient name="pending"/>
+            <transient name="approved"/>
         </attributes>
     </entity>
 </entity-mappings>

Modified: 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/RollerPropertyData.orm.xml
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/RollerPropertyData.orm.xml?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/RollerPropertyData.orm.xml
 (original)
+++ 
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/RollerPropertyData.orm.xml
 Sat Jan 20 04:39:29 2007
@@ -23,7 +23,6 @@
             <basic name="value">
                 <column name="value" insertable="true" updatable="true" 
unique="false"/>
             </basic>
-            <transient name="id"/>
         </attributes>
     </entity>
 </entity-mappings>

Modified: 
incubator/roller/trunk/src/org/apache/roller/pojos/RollerPropertyData.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/pojos/RollerPropertyData.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/pojos/RollerPropertyData.java 
(original)
+++ incubator/roller/trunk/src/org/apache/roller/pojos/RollerPropertyData.java 
Sat Jan 20 04:39:29 2007
@@ -75,7 +75,14 @@
     }
-
+    public void setId(String id) {
+        setName(id);
+    }
+ + public String getId() {
+        return getName();
+    }
+ /**
      * Getter for property name.
      *

Modified: 
incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java 
(original)
+++ incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java Sat 
Jan 20 04:39:29 2007
@@ -422,7 +422,7 @@
         }
     }
     public void onRemoveEntryAttribute(EntryAttributeData att) throws 
RollerException {
-        attMap.remove(att);
+        attMap.remove(att.getName());
     }
     //-------------------------------------------------------------------------
Modified: incubator/roller/trunk/tests/org/apache/roller/TestUtils.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/tests/org/apache/roller/TestUtils.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- incubator/roller/trunk/tests/org/apache/roller/TestUtils.java (original)
+++ incubator/roller/trunk/tests/org/apache/roller/TestUtils.java Sat Jan 20 
04:39:29 2007
@@ -181,8 +181,8 @@
         testEntry.setPubTime(new java.sql.Timestamp(new 
java.util.Date().getTime()));
         testEntry.setUpdateTime(new java.sql.Timestamp(new 
java.util.Date().getTime()));
         testEntry.setStatus(WeblogEntryData.PUBLISHED);
-        testEntry.setWebsite(weblog);
-        testEntry.setCreator(user);
+        testEntry.setWebsite(getManagedWebsite(weblog));
+        testEntry.setCreator(getManagedUser(user));
         testEntry.setCategory(cat);
// store entry
@@ -232,7 +232,7 @@
         testComment.setRemoteHost("foofoo");
         testComment.setContent("this is a test comment");
         testComment.setPostTime(new java.sql.Timestamp(new 
java.util.Date().getTime()));
-        testComment.setWeblogEntry(entry);
+        testComment.setWeblogEntry(getManagedWeblogEntry(entry));
         testComment.setStatus(CommentData.APPROVED);
// store testComment
@@ -322,7 +322,7 @@
         AutoPingManager mgr = RollerFactory.getRoller().getAutopingManager();
// store auto ping
-        AutoPingData autoPing = new AutoPingData(null, ping, weblog);
+        AutoPingData autoPing = new AutoPingData(null, ping, 
getManagedWebsite(weblog) );
         mgr.saveAutoPing(autoPing);
// flush to db
@@ -365,7 +365,7 @@
// store
         HitCountData testCount = new HitCountData();
-        testCount.setWeblog(weblog);
+        testCount.setWeblog(getManagedWebsite(weblog));
         testCount.setDailyHits(amount);
         mgr.saveHitCount(testCount);
@@ -396,6 +396,30 @@ // flush to db
         RollerFactory.getRoller().flush();
+    }
+ + /**
+     * Convenience method that returns managed copy of given user.
+     */
+    public static UserData getManagedUser(UserData user) throws 
RollerException {
+        UserManager mgr = RollerFactory.getRoller().getUserManager();
+        return mgr.getUser(user.getId());
+    }
+ + /**
+     * Convenience method that returns managed copy of given website.
+     */
+    public static WebsiteData getManagedWebsite(WebsiteData website) throws 
RollerException {
+        UserManager mgr = RollerFactory.getRoller().getUserManager();
+        return mgr.getWebsite(website.getId());
+    }
+ + /**
+     * Convenience method that returns managed copy of given WeblogEntry.
+     */
+    public static WeblogEntryData getManagedWeblogEntry(WeblogEntryData 
weblogEntry) throws RollerException {
+        WeblogManager mgr = RollerFactory.getRoller().getWeblogManager();
+        return mgr.getWeblogEntry(weblogEntry.getId());
     }
}

Modified: 
incubator/roller/trunk/tests/org/apache/roller/business/BookmarkTest.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/tests/org/apache/roller/business/BookmarkTest.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- incubator/roller/trunk/tests/org/apache/roller/business/BookmarkTest.java 
(original)
+++ incubator/roller/trunk/tests/org/apache/roller/business/BookmarkTest.java 
Sat Jan 20 04:39:29 2007
@@ -106,7 +106,7 @@
         assertEquals(0, root.getBookmarks().size());
// add a folder
-        FolderData folder = new FolderData(root, "TestFolder1", null, 
testWeblog);
+        FolderData folder = new FolderData(root, "TestFolder1", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(folder);
         TestUtils.endSession(true);
@@ -126,7 +126,7 @@
         assertEquals("folderTest1", folder.getName());
// add a subfolder
-        FolderData subfolder = new FolderData(folder, "subfolderTest1", null, 
testWeblog);
+        FolderData subfolder = new FolderData(folder, "subfolderTest1", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(subfolder);
         TestUtils.endSession(true);
@@ -183,7 +183,7 @@
         boolean exception = false;
         try {
             // child folder with same name as first
-            FolderData f3 = new FolderData(f1, "f2", null, testWeblog);
+            FolderData f3 = new FolderData(f1, "f2", null, 
TestUtils.getManagedWebsite(testWeblog));
             bmgr.saveFolder(f3);
             TestUtils.endSession(true);
         } catch (RollerException e) {
@@ -365,11 +365,11 @@
         FolderData root = bmgr.getRootFolder(testWeblog);
// add some folders
-        FolderData f1 = new FolderData(root, "f1", null, testWeblog);
+        FolderData f1 = new FolderData(root, "f1", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f1);
-        FolderData f2 = new FolderData(f1, "f2", null, testWeblog);
+        FolderData f2 = new FolderData(f1, "f2", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f2);
-        FolderData f3 = new FolderData(root, "f3", null, testWeblog);
+        FolderData f3 = new FolderData(root, "f3", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f3);
// add some bookmarks
@@ -449,7 +449,7 @@
         f1.addBookmark(b1);
// create folder f2 inside f1
-        FolderData f2 = new FolderData(f1, "f2", null, testWeblog);
+        FolderData f2 = new FolderData(f1, "f2", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f2);
// create bookmark b2 inside folder f2
@@ -460,7 +460,7 @@
         f2.addBookmark(b2);
// create folder f3 inside folder f2
-        FolderData f3 = new FolderData(f2, "f3", null, testWeblog);
+        FolderData f3 = new FolderData(f2, "f3", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f3);
// crete bookmark b3 inside folder f3
@@ -496,6 +496,8 @@
         assertTrue(safe);
// move f1 to dest
+        f1   = bmgr.getFolder( f1.getId());   //Get managed copy
+        dest = bmgr.getFolder( dest.getId()); //Get managed copy
         bmgr.moveFolder(f1, dest);
         TestUtils.endSession(true);
@@ -518,7 +520,7 @@ InputStream fis = this.getClass().getResourceAsStream("/bookmarks.opml");
         getRoller().getBookmarkManager().importBookmarks(
-                testWeblog, "ZZZ_imports_ZZZ", fileToString(fis));
+                TestUtils.getManagedWebsite(testWeblog), "ZZZ_imports_ZZZ", 
fileToString(fis));
         TestUtils.endSession(true);
FolderData fd = null;

Modified: 
incubator/roller/trunk/tests/org/apache/roller/business/CommentTest.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/tests/org/apache/roller/business/CommentTest.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- incubator/roller/trunk/tests/org/apache/roller/business/CommentTest.java 
(original)
+++ incubator/roller/trunk/tests/org/apache/roller/business/CommentTest.java 
Sat Jan 20 04:39:29 2007
@@ -101,7 +101,7 @@
         comment.setRemoteHost("foofoo");
         comment.setContent("this is a test comment");
         comment.setPostTime(new java.sql.Timestamp(new 
java.util.Date().getTime()));
-        comment.setWeblogEntry(testEntry);
+        comment.setWeblogEntry(TestUtils.getManagedWeblogEntry(testEntry));
         comment.setStatus(CommentData.APPROVED);
// create a comment

Modified: 
incubator/roller/trunk/tests/org/apache/roller/business/PermissionTest.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/tests/org/apache/roller/business/PermissionTest.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- incubator/roller/trunk/tests/org/apache/roller/business/PermissionTest.java 
(original)
+++ incubator/roller/trunk/tests/org/apache/roller/business/PermissionTest.java 
Sat Jan 20 04:39:29 2007
@@ -101,8 +101,8 @@
// create permissions
         perm = new PermissionsData();
-        perm.setUser(testUser);
-        perm.setWebsite(testWeblog);
+        perm.setUser(TestUtils.getManagedUser(testUser) );
+        perm.setWebsite(TestUtils.getManagedWebsite(testWeblog));
         perm.setPending(false);
         perm.setPermissionMask(PermissionsData.ADMIN);
         mgr.savePermissions(perm);
@@ -114,138 +114,138 @@
         assertNotNull(perm);
         assertEquals(PermissionsData.ADMIN, perm.getPermissionMask());
- // update permissions
-        perm.setPermissionMask(PermissionsData.LIMITED);
-        mgr.savePermissions(perm);
-        TestUtils.endSession(true);
- - // check that update was successful
-        perm = null;
-        perm = mgr.getPermissions(testWeblog, testUser);
-        assertNotNull(perm);
-        assertEquals(PermissionsData.LIMITED, perm.getPermissionMask());
+//        // update permissions
+//        perm.setPermissionMask(PermissionsData.LIMITED);
+//        mgr.savePermissions(perm);
+//        TestUtils.endSession(true);
+// +// // check that update was successful
+//        perm = null;
+//        perm = mgr.getPermissions(testWeblog, testUser);
+//        assertNotNull(perm);
+//        assertEquals(PermissionsData.LIMITED, perm.getPermissionMask());
     }
- /**
-     * Test lookup mechanisms.
-     */
-    public void testPermissionsLookups() throws Exception {
- - // we need a second user for this test
-        UserData user = TestUtils.setupUser("foofoo");
-        TestUtils.endSession(true);
- - UserManager mgr = RollerFactory.getRoller().getUserManager();
-        PermissionsData perm = null;
-        List perms = null;
- - // get all permissions for a user
-        perms = mgr.getAllPermissions(user);
-        assertEquals(0, perms.size());
-        perms = mgr.getAllPermissions(testUser);
-        assertEquals(1, perms.size());
- - // get all permissions for a weblog
-        perms = mgr.getAllPermissions(testWeblog);
-        assertEquals(1, perms.size());
- - perm = new PermissionsData();
-        perm.setUser(user);
-        perm.setWebsite(testWeblog);
-        perm.setPending(true);
-        perm.setPermissionMask(PermissionsData.AUTHOR);
-        mgr.savePermissions(perm);
-        TestUtils.endSession(true);
- - // get pending permissions for a user
-        perms = mgr.getPendingPermissions(testUser);
-        assertEquals(0, perms.size());
-        perms = mgr.getPendingPermissions(user);
-        assertEquals(1, perms.size());
- - // get pending permissions for a weblog
-        perms = mgr.getPendingPermissions(testWeblog);
-        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/weblog
-        perm = null;
-        perm = mgr.getPermissions(testWeblog, testUser);
-        assertNotNull(perm);
-        assertEquals(PermissionsData.ADMIN, perm.getPermissionMask());
-        perm = null;
-        perm = mgr.getPermissions(testWeblog, user);
-        assertNotNull(perm);
-        assertEquals(PermissionsData.AUTHOR, perm.getPermissionMask());
-        assertEquals(true, perm.isPending());
- - // cleanup the extra test user
-        TestUtils.teardownUser(user.getId());
-        TestUtils.endSession(true);
-    }
- - - /**
-     * Tests weblog invitation process.
-     */
-    public void testInvitations() throws Exception {
- - // we need a second user for this test
-        UserData user = TestUtils.setupUser("foobee");
-        TestUtils.endSession(true);
- - UserManager mgr = RollerFactory.getRoller().getUserManager();
-        PermissionsData perm = null;
-        List perms = null;
- - // invite user to weblog
-        perm = mgr.inviteUser(testWeblog, user, PermissionsData.LIMITED);
-        String id = perm.getId();
-        TestUtils.endSession(true);
- - // accept invitation
-        perm = mgr.getPermissions(testWeblog, user);
-        perm.setPending(false);
-        mgr.savePermissions(perm);
-        TestUtils.endSession(true);
- - // re-query now that we have changed things
-        user = mgr.getUserByUserName(user.getUserName());
-        testWeblog = mgr.getWebsiteByHandle(testWeblog.getHandle());
- - // assert that invitation list is empty
-        assertTrue(mgr.getPendingPermissions(user).isEmpty());
-        assertTrue(mgr.getPendingPermissions(testWeblog).isEmpty());
- - // assert that user is member of weblog
-        assertFalse(mgr.getPermissions(testWeblog, user).isPending());
-        List weblogs = mgr.getWebsites(user, null, null, null, null, 0, -1);
-        assertEquals(1, weblogs.size());
-        assertEquals(testWeblog.getId(), 
((WebsiteData)weblogs.get(0)).getId());
- - // assert that website has user - List users = mgr.getUsers(testWeblog, null, null, null, 0, -1); - assertEquals(2, users.size()); - - // test user can be retired from website
-        mgr.retireUser(testWeblog, user);
-        TestUtils.endSession(true);
- - user = mgr.getUser(user.getId());
-        weblogs = mgr.getWebsites(user, null, null, null, null, 0, -1);
-        assertEquals(0, weblogs.size());
- - // cleanup the extra test user
-        TestUtils.teardownUser(user.getId());
-        TestUtils.endSession(true);
-    }
- +// /**
+//     * Test lookup mechanisms.
+//     */
+//    public void testPermissionsLookups() throws Exception {
+// +// // we need a second user for this test
+//        UserData user = TestUtils.setupUser("foofoo");
+//        TestUtils.endSession(true);
+// +// UserManager mgr = RollerFactory.getRoller().getUserManager();
+//        PermissionsData perm = null;
+//        List perms = null;
+// +// // get all permissions for a user
+//        perms = mgr.getAllPermissions(user);
+//        assertEquals(0, perms.size());
+//        perms = mgr.getAllPermissions(testUser);
+//        assertEquals(1, perms.size());
+// +// // get all permissions for a weblog
+//        perms = mgr.getAllPermissions(testWeblog);
+//        assertEquals(1, perms.size());
+// +// perm = new PermissionsData();
+//        perm.setUser(user);
+//        perm.setWebsite(testWeblog);
+//        perm.setPending(true);
+//        perm.setPermissionMask(PermissionsData.AUTHOR);
+//        mgr.savePermissions(perm);
+//        TestUtils.endSession(true);
+// +// // get pending permissions for a user
+//        perms = mgr.getPendingPermissions(testUser);
+//        assertEquals(0, perms.size());
+//        perms = mgr.getPendingPermissions(user);
+//        assertEquals(1, perms.size());
+// +// // get pending permissions for a weblog
+//        perms = mgr.getPendingPermissions(testWeblog);
+//        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/weblog
+//        perm = null;
+//        perm = mgr.getPermissions(testWeblog, testUser);
+//        assertNotNull(perm);
+//        assertEquals(PermissionsData.ADMIN, perm.getPermissionMask());
+//        perm = null;
+//        perm = mgr.getPermissions(testWeblog, user);
+//        assertNotNull(perm);
+//        assertEquals(PermissionsData.AUTHOR, perm.getPermissionMask());
+//        assertEquals(true, perm.isPending());
+// +// // cleanup the extra test user
+//        TestUtils.teardownUser(user.getId());
+//        TestUtils.endSession(true);
+//    }
+// +// +// /**
+//     * Tests weblog invitation process.
+//     */
+//    public void testInvitations() throws Exception {
+// +// // we need a second user for this test
+//        UserData user = TestUtils.setupUser("foobee");
+//        TestUtils.endSession(true);
+// +// UserManager mgr = RollerFactory.getRoller().getUserManager();
+//        PermissionsData perm = null;
+//        List perms = null;
+// +// // invite user to weblog
+//        perm = mgr.inviteUser(testWeblog, user, PermissionsData.LIMITED);
+//        String id = perm.getId();
+//        TestUtils.endSession(true);
+// +// // accept invitation
+//        perm = mgr.getPermissions(testWeblog, user);
+//        perm.setPending(false);
+//        mgr.savePermissions(perm);
+//        TestUtils.endSession(true);
+// +// // re-query now that we have changed things
+//        user = mgr.getUserByUserName(user.getUserName());
+//        testWeblog = mgr.getWebsiteByHandle(testWeblog.getHandle());
+// +// // assert that invitation list is empty
+//        assertTrue(mgr.getPendingPermissions(user).isEmpty());
+//        assertTrue(mgr.getPendingPermissions(testWeblog).isEmpty());
+// +// // assert that user is member of weblog
+//        assertFalse(mgr.getPermissions(testWeblog, user).isPending());
+//        List weblogs = mgr.getWebsites(user, null, null, null, null, 0, -1);
+//        assertEquals(1, weblogs.size());
+//        assertEquals(testWeblog.getId(), 
((WebsiteData)weblogs.get(0)).getId());
+// +// // assert that website has user +// List users = mgr.getUsers(testWeblog, null, null, null, 0, -1); +// assertEquals(2, users.size()); +// +// // test user can be retired from website
+//        mgr.retireUser(testWeblog, user);
+//        TestUtils.endSession(true);
+// +// user = mgr.getUser(user.getId());
+//        weblogs = mgr.getWebsites(user, null, null, null, null, 0, -1);
+//        assertEquals(0, weblogs.size());
+// +// // cleanup the extra test user
+//        TestUtils.teardownUser(user.getId());
+//        TestUtils.endSession(true);
+//    }
+// }
Modified: incubator/roller/trunk/tests/org/apache/roller/business/PingsTest.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/tests/org/apache/roller/business/PingsTest.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- incubator/roller/trunk/tests/org/apache/roller/business/PingsTest.java 
(original)
+++ incubator/roller/trunk/tests/org/apache/roller/business/PingsTest.java Sat 
Jan 20 04:39:29 2007
@@ -122,7 +122,7 @@
         assertEquals(testCommonPing.getPingUrl(), ping.getPingUrl());
// create custom ping
-        testCustomPing.setWebsite(testWeblog);
+        testCustomPing.setWebsite(TestUtils.getManagedWebsite(testWeblog));
         mgr.savePingTarget(testCustomPing);
         String customId = testCustomPing.getId();
         TestUtils.endSession(true);

Modified: 
incubator/roller/trunk/tests/org/apache/roller/business/WeblogCategoryTest.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/tests/org/apache/roller/business/WeblogCategoryTest.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- 
incubator/roller/trunk/tests/org/apache/roller/business/WeblogCategoryTest.java 
(original)
+++ 
incubator/roller/trunk/tests/org/apache/roller/business/WeblogCategoryTest.java 
Sat Jan 20 04:39:29 2007
@@ -101,7 +101,7 @@
         assertEquals(0, root.getWeblogCategories().size());
// add a new category
-        WeblogCategoryData newCat = new WeblogCategoryData(testWeblog, root, 
"catTestCategory", null, null);
+        WeblogCategoryData newCat = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), root, 
"catTestCategory", null, null);
         mgr.saveWeblogCategory(newCat);
         TestUtils.endSession(true);
@@ -127,7 +127,7 @@
         assertEquals("testtest", cat.getName());
// add a subcat
-        WeblogCategoryData subcat = new WeblogCategoryData(testWeblog, cat, 
"subcatTest1", null, null);
+        WeblogCategoryData subcat = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), cat, "subcatTest1", 
null, null);
         mgr.saveWeblogCategory(subcat);
         TestUtils.endSession(true);
Modified: 
incubator/roller/trunk/tests/org/apache/roller/business/WeblogPageTest.java
URL: 
http://svn.apache.org/viewvc/incubator/roller/trunk/tests/org/apache/roller/business/WeblogPageTest.java?view=diff&rev=498108&r1=498107&r2=498108
==============================================================================
--- incubator/roller/trunk/tests/org/apache/roller/business/WeblogPageTest.java 
(original)
+++ incubator/roller/trunk/tests/org/apache/roller/business/WeblogPageTest.java 
Sat Jan 20 04:39:29 2007
@@ -74,7 +74,7 @@
         testPage.setLink("testTemp");
         testPage.setContents("a test weblog template.");
         testPage.setLastModified(new java.util.Date());
-        testPage.setWebsite(testWeblog);
+        testPage.setWebsite(TestUtils.getManagedWebsite(testWeblog));
         testPage.setTemplateLanguage("velocity");
     }

Index: 
sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperWeblogManagerImpl.java
===================================================================
--- 
sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperWeblogManagerImpl.java
       (revision 498759)
+++ 
sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperWeblogManagerImpl.java
       (working copy)
@@ -290,6 +290,17 @@
             updateTagCount(name, entry.getWebsite(), -1);
         }  
         
+        // if the entry was published to future, set status as SCHEDULED
+        // we only consider an entry future published if it is scheduled
+        // more than 1 minute into the future
+        if ("PUBLISHED".equals(entry.getStatus()) &&
+                entry.getPubTime().after(new Date(System.currentTimeMillis() + 
60000))) {
+            entry.setStatus(WeblogEntryData.SCHEDULED);
+        }
+
+        // Store value object (creates new or updates existing)
+        entry.setUpdateTime(new Timestamp(new Date().getTime()));
+
         this.strategy.store(entry);
         
         // update weblog last modified date.  date updated by saveWebsite()
Index: tests/org/apache/roller/business/BookmarkTest.java
===================================================================
--- tests/org/apache/roller/business/BookmarkTest.java  (revision 498759)
+++ tests/org/apache/roller/business/BookmarkTest.java  (working copy)
@@ -168,11 +168,11 @@
         
         FolderData root = bmgr.getRootFolder(testWeblog);
         
-        FolderData f1 = new FolderData(root, "f1", null, testWeblog);
+        FolderData f1 = new FolderData(root, "f1", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f1);
         
         // first child folder
-        FolderData f2 = new FolderData(f1, "f2", null, testWeblog);
+        FolderData f2 = new FolderData(f1, "f2", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f2);
         
         TestUtils.endSession(true);
@@ -203,11 +203,11 @@
         
         FolderData root = bmgr.getRootFolder(testWeblog);
         
-        FolderData f1 = new FolderData(root, "f1", null, testWeblog);
+        FolderData f1 = new FolderData(root, "f1", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f1);
-        FolderData f2 = new FolderData(f1, "f2", null, testWeblog);
+        FolderData f2 = new FolderData(f1, "f2", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f2);
-        FolderData f3 = new FolderData(root, "f3", null, testWeblog);
+        FolderData f3 = new FolderData(root, "f3", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f3);
         
         TestUtils.endSession(true);
@@ -248,10 +248,10 @@
         
         FolderData root = bmgr.getRootFolder(testWeblog);
         
-        FolderData testFolder = new FolderData(null, "root", "root", 
testWeblog);
+        FolderData testFolder = new FolderData(null, "root", "root", 
TestUtils.getManagedWebsite(testWeblog));
         assertTrue(root.equals(testFolder));
         
-        testFolder = new FolderData(root, "root", "root", testWeblog);
+        testFolder = new FolderData(root, "root", "root", 
TestUtils.getManagedWebsite(testWeblog));
         assertFalse(root.equals(testFolder));
     }
     
@@ -265,11 +265,11 @@
         
         FolderData root = bmgr.getRootFolder(testWeblog);
         
-        FolderData f1 = new FolderData(root, "f1", null, testWeblog);
+        FolderData f1 = new FolderData(root, "f1", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f1);
-        FolderData f2 = new FolderData(f1, "f2", null, testWeblog);
+        FolderData f2 = new FolderData(f1, "f2", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f2);
-        FolderData f3 = new FolderData(f2, "f3", null, testWeblog);
+        FolderData f3 = new FolderData(f2, "f3", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f3);
         
         TestUtils.endSession(true);
@@ -293,7 +293,7 @@
         
         FolderData root = bmgr.getRootFolder(testWeblog);
         
-        FolderData folder = new FolderData(root, "TestFolder2", null, 
testWeblog);
+        FolderData folder = new FolderData(root, "TestFolder2", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(folder);
         TestUtils.endSession(true);
         
@@ -434,11 +434,11 @@
         
         FolderData root = bmgr.getRootFolder(testWeblog);
         
-        FolderData dest = new FolderData(root, "dest", null, testWeblog);
+        FolderData dest = new FolderData(root, "dest", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(dest);
         
         // create source folder f1
-        FolderData f1 = new FolderData(root, "f1", null, testWeblog);
+        FolderData f1 = new FolderData(root, "f1", null, 
TestUtils.getManagedWebsite(testWeblog));
         bmgr.saveFolder(f1);
         
         // create bookmark b1 inside source folder f1
Index: tests/org/apache/roller/business/WeblogCategoryTest.java
===================================================================
--- tests/org/apache/roller/business/WeblogCategoryTest.java    (revision 
498759)
+++ tests/org/apache/roller/business/WeblogCategoryTest.java    (working copy)
@@ -192,13 +192,13 @@
         
         root = mgr.getRootWeblogCategory(testWeblog);
         
-        WeblogCategoryData f1 = new WeblogCategoryData(testWeblog, root, "f1", 
null, null);
+        WeblogCategoryData f1 = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), root, "f1", null, 
null);
         mgr.saveWeblogCategory(f1);
         
-        WeblogCategoryData f2 = new WeblogCategoryData(testWeblog, f1, "f2", 
null, null);
+        WeblogCategoryData f2 = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), f1, "f2", null, 
null);
         mgr.saveWeblogCategory(f2);
         
-        WeblogCategoryData f3 = new WeblogCategoryData(testWeblog, f2, "f3", 
null, null);
+        WeblogCategoryData f3 = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), f2, "f3", null, 
null);
         mgr.saveWeblogCategory(f3);
         
         TestUtils.endSession(true);
@@ -236,16 +236,16 @@
         WeblogCategoryData root = mgr.getRootWeblogCategory(testWeblog);
         
         // add some categories and entries to test with
-        WeblogCategoryData dest = new WeblogCategoryData(testWeblog, root, 
"c0", null, null);
+        WeblogCategoryData dest = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), root, "c0", null, 
null);
         mgr.saveWeblogCategory(dest);
         
-        WeblogCategoryData c1 = new WeblogCategoryData(testWeblog, root, "c1", 
null, null);
+        WeblogCategoryData c1 = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), root, "c1", null, 
null);
         mgr.saveWeblogCategory(c1);
         
-        WeblogCategoryData c2 = new WeblogCategoryData(testWeblog, c1, "c2", 
null, null);
+        WeblogCategoryData c2 = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), c1, "c2", null, 
null);
         mgr.saveWeblogCategory(c2);
         
-        WeblogCategoryData c3 = new WeblogCategoryData(testWeblog, c2, "c3", 
null, null);
+        WeblogCategoryData c3 = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), c2, "c3", null, 
null);
         mgr.saveWeblogCategory(c3);
         
         TestUtils.endSession(true);
@@ -309,16 +309,16 @@
         WeblogCategoryData root = mgr.getRootWeblogCategory(testWeblog);
         
         // add some categories and entries to test with
-        WeblogCategoryData dest = new WeblogCategoryData(testWeblog, root, 
"c0", null, null);
+        WeblogCategoryData dest = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), root, "c0", null, 
null);
         mgr.saveWeblogCategory(dest);
         
-        WeblogCategoryData c1 = new WeblogCategoryData(testWeblog, root, "c1", 
null, null);
+        WeblogCategoryData c1 = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), root, "c1", null, 
null);
         mgr.saveWeblogCategory(c1);
         
-        WeblogCategoryData c2 = new WeblogCategoryData(testWeblog, c1, "c2", 
null, null);
+        WeblogCategoryData c2 = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), c1, "c2", null, 
null);
         mgr.saveWeblogCategory(c2);
         
-        WeblogCategoryData c3 = new WeblogCategoryData(testWeblog, c2, "c3", 
null, null);
+        WeblogCategoryData c3 = new 
WeblogCategoryData(TestUtils.getManagedWebsite(testWeblog), c2, "c3", null, 
null);
         mgr.saveWeblogCategory(c3);
         
         TestUtils.endSession(true);
Index: tests/org/apache/roller/business/PermissionTest.java
===================================================================
--- tests/org/apache/roller/business/PermissionTest.java        (revision 
498759)
+++ tests/org/apache/roller/business/PermissionTest.java        (working copy)
@@ -114,138 +114,138 @@
         assertNotNull(perm);
         assertEquals(PermissionsData.ADMIN, perm.getPermissionMask());
         
-//        // update permissions
-//        perm.setPermissionMask(PermissionsData.LIMITED);
-//        mgr.savePermissions(perm);
-//        TestUtils.endSession(true);
-//        
-//        // check that update was successful
-//        perm = null;
-//        perm = mgr.getPermissions(testWeblog, testUser);
-//        assertNotNull(perm);
-//        assertEquals(PermissionsData.LIMITED, perm.getPermissionMask());
+        // update permissions
+        perm.setPermissionMask(PermissionsData.LIMITED);
+        mgr.savePermissions(perm);
+        TestUtils.endSession(true);
+        
+        // check that update was successful
+        perm = null;
+        perm = mgr.getPermissions(testWeblog, testUser);
+        assertNotNull(perm);
+        assertEquals(PermissionsData.LIMITED, perm.getPermissionMask());
     }
     
     
-//    /**
-//     * Test lookup mechanisms.
-//     */
-//    public void testPermissionsLookups() throws Exception {
-//        
-//        // we need a second user for this test
-//        UserData user = TestUtils.setupUser("foofoo");
-//        TestUtils.endSession(true);
-//        
-//        UserManager mgr = RollerFactory.getRoller().getUserManager();
-//        PermissionsData perm = null;
-//        List perms = null;
-//        
-//        // get all permissions for a user
-//        perms = mgr.getAllPermissions(user);
-//        assertEquals(0, perms.size());
-//        perms = mgr.getAllPermissions(testUser);
-//        assertEquals(1, perms.size());
-//        
-//        // get all permissions for a weblog
-//        perms = mgr.getAllPermissions(testWeblog);
-//        assertEquals(1, perms.size());
-//        
-//        perm = new PermissionsData();
-//        perm.setUser(user);
-//        perm.setWebsite(testWeblog);
-//        perm.setPending(true);
-//        perm.setPermissionMask(PermissionsData.AUTHOR);
-//        mgr.savePermissions(perm);
-//        TestUtils.endSession(true);
-//        
-//        // get pending permissions for a user
-//        perms = mgr.getPendingPermissions(testUser);
-//        assertEquals(0, perms.size());
-//        perms = mgr.getPendingPermissions(user);
-//        assertEquals(1, perms.size());
-//        
-//        // get pending permissions for a weblog
-//        perms = mgr.getPendingPermissions(testWeblog);
-//        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/weblog
-//        perm = null;
-//        perm = mgr.getPermissions(testWeblog, testUser);
-//        assertNotNull(perm);
-//        assertEquals(PermissionsData.ADMIN, perm.getPermissionMask());
-//        perm = null;
-//        perm = mgr.getPermissions(testWeblog, user);
-//        assertNotNull(perm);
-//        assertEquals(PermissionsData.AUTHOR, perm.getPermissionMask());
-//        assertEquals(true, perm.isPending());
-//        
-//        // cleanup the extra test user
-//        TestUtils.teardownUser(user.getId());
-//        TestUtils.endSession(true);
-//    }
-//    
-//    
-//    /**
-//     * Tests weblog invitation process.
-//     */
-//    public void testInvitations() throws Exception {
-//        
-//        // we need a second user for this test
-//        UserData user = TestUtils.setupUser("foobee");
-//        TestUtils.endSession(true);
-//        
-//        UserManager mgr = RollerFactory.getRoller().getUserManager();
-//        PermissionsData perm = null;
-//        List perms = null;
-//        
-//        // invite user to weblog
-//        perm = mgr.inviteUser(testWeblog, user, PermissionsData.LIMITED);
-//        String id = perm.getId();
-//        TestUtils.endSession(true);
-//        
-//        // accept invitation
-//        perm = mgr.getPermissions(testWeblog, user);
-//        perm.setPending(false);
-//        mgr.savePermissions(perm);
-//        TestUtils.endSession(true);
-//        
-//        // re-query now that we have changed things
-//        user = mgr.getUserByUserName(user.getUserName());
-//        testWeblog = mgr.getWebsiteByHandle(testWeblog.getHandle());
-//        
-//        // assert that invitation list is empty
-//        assertTrue(mgr.getPendingPermissions(user).isEmpty());
-//        assertTrue(mgr.getPendingPermissions(testWeblog).isEmpty());
-//        
-//        // assert that user is member of weblog
-//        assertFalse(mgr.getPermissions(testWeblog, user).isPending());
-//        List weblogs = mgr.getWebsites(user, null, null, null, null, 0, -1);
-//        assertEquals(1, weblogs.size());
-//        assertEquals(testWeblog.getId(), 
((WebsiteData)weblogs.get(0)).getId());
-//        
-//        // assert that website has user
-//        List users = mgr.getUsers(testWeblog, null, null, null, 0, -1); 
-//        assertEquals(2, users.size());
-//        
-//        // test user can be retired from website
-//        mgr.retireUser(testWeblog, user);
-//        TestUtils.endSession(true);
-//        
-//        user = mgr.getUser(user.getId());
-//        weblogs = mgr.getWebsites(user, null, null, null, null, 0, -1);
-//        assertEquals(0, weblogs.size());
-//        
-//        // cleanup the extra test user
-//        TestUtils.teardownUser(user.getId());
-//        TestUtils.endSession(true);
-//    }
-//    
+    /**
+     * Test lookup mechanisms.
+     */
+    public void testPermissionsLookups() throws Exception {
+        
+        // we need a second user for this test
+        UserData user = TestUtils.setupUser("foofoo");
+        TestUtils.endSession(true);
+        
+        UserManager mgr = RollerFactory.getRoller().getUserManager();
+        PermissionsData perm = null;
+        List perms = null;
+        
+        // get all permissions for a user
+        perms = mgr.getAllPermissions(user);
+        assertEquals(0, perms.size());
+        perms = mgr.getAllPermissions(testUser);
+        assertEquals(1, perms.size());
+        
+        // get all permissions for a weblog
+        perms = mgr.getAllPermissions(testWeblog);
+        assertEquals(1, perms.size());
+        
+        perm = new PermissionsData();
+        perm.setUser(TestUtils.getManagedUser(user));
+        perm.setWebsite(TestUtils.getManagedWebsite(testWeblog));
+        perm.setPending(true);
+        perm.setPermissionMask(PermissionsData.AUTHOR);
+        mgr.savePermissions(perm);
+        TestUtils.endSession(true);
+        
+        // get pending permissions for a user
+        perms = mgr.getPendingPermissions(testUser);
+        assertEquals(0, perms.size());
+        perms = mgr.getPendingPermissions(user);
+        assertEquals(1, perms.size());
+        
+        // get pending permissions for a weblog
+        perms = mgr.getPendingPermissions(testWeblog);
+        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/weblog
+        perm = null;
+        perm = mgr.getPermissions(testWeblog, testUser);
+        assertNotNull(perm);
+        assertEquals(PermissionsData.ADMIN, perm.getPermissionMask());
+        perm = null;
+        perm = mgr.getPermissions(testWeblog, user);
+        assertNotNull(perm);
+        assertEquals(PermissionsData.AUTHOR, perm.getPermissionMask());
+        assertEquals(true, perm.isPending());
+        
+        // cleanup the extra test user
+        TestUtils.teardownUser(user.getId());
+        TestUtils.endSession(true);
+    }
+    
+    
+    /**
+     * Tests weblog invitation process.
+     */
+    public void testInvitations() throws Exception {
+        
+        // we need a second user for this test
+        UserData user = TestUtils.setupUser("foobee");
+        TestUtils.endSession(true);
+        
+        UserManager mgr = RollerFactory.getRoller().getUserManager();
+        PermissionsData perm = null;
+        List perms = null;
+        
+        // invite user to weblog
+        perm = mgr.inviteUser(TestUtils.getManagedWebsite(testWeblog), user, 
PermissionsData.LIMITED);
+        String id = perm.getId();
+        TestUtils.endSession(true);
+        
+        // accept invitation
+        perm = mgr.getPermissions(testWeblog, user);
+        perm.setPending(false);
+        mgr.savePermissions(perm);
+        TestUtils.endSession(true);
+        
+        // re-query now that we have changed things
+        user = mgr.getUserByUserName(user.getUserName());
+        testWeblog = mgr.getWebsiteByHandle(testWeblog.getHandle());
+        
+        // assert that invitation list is empty
+        assertTrue(mgr.getPendingPermissions(user).isEmpty());
+        assertTrue(mgr.getPendingPermissions(testWeblog).isEmpty());
+        
+        // assert that user is member of weblog
+        assertFalse(mgr.getPermissions(testWeblog, user).isPending());
+        List weblogs = mgr.getWebsites(user, null, null, null, null, 0, -1);
+        assertEquals(1, weblogs.size());
+        assertEquals(testWeblog.getId(), 
((WebsiteData)weblogs.get(0)).getId());
+        
+        // assert that website has user
+        List users = mgr.getUsers(testWeblog, null, null, null, 0, -1); 
+        assertEquals(2, users.size());
+        
+        // test user can be retired from website
+        mgr.retireUser(testWeblog, user);
+        TestUtils.endSession(true);
+        
+        user = mgr.getUser(user.getId());
+        weblogs = mgr.getWebsites(user, null, null, null, null, 0, -1);
+        assertEquals(0, weblogs.size());
+        
+        // cleanup the extra test user
+        TestUtils.teardownUser(user.getId());
+        TestUtils.endSession(true);
+    }
+    
 }
 

Reply via email to