📄 weblogmanagertest.java
字号:
package org.roller.business; import java.sql.Timestamp;import java.util.Date;import java.util.Iterator;import java.util.List;import java.util.Map;import junit.framework.Test; import junit.framework.TestSuite;import org.roller.RollerException;import org.roller.RollerPermissionsException;import org.roller.model.UserManager;import org.roller.model.WeblogManager;import org.roller.pojos.CommentData;import org.roller.pojos.UserData;import org.roller.pojos.WeblogCategoryData;import org.roller.pojos.WeblogEntryData;import org.roller.pojos.WebsiteData;import org.roller.util.Utilities;import org.roller.RollerTestBase;/** * Test Roller Weblog Management. */public class WeblogManagerTest extends RollerTestBase { String dest_id = null; String c1_id = null; String c2_id = null; String c3_id = null; //------------------------------------------------------------------------ public WeblogManagerTest(String name) { super(name); } //------------------------------------------------------------------------ public static void main(String args[]) { junit.textui.TestRunner.run(WeblogManagerTest.class); } //------------------------------------------------------------------------ public static Test suite() { return new TestSuite(WeblogManagerTest.class); } //----------------------------------------------------------------------- /** * @see junit.framework.TestCase#setUp() */ public void setUp() throws Exception { super.setUp(); setUpTestWeblogs(); setUpCategoryTree(); } /** * Add a small category tree to the small test website (mWebsite). * root/ * c0/ * c1/ * c2/ * c3/ */ public void setUpCategoryTree() throws Exception { getRoller().begin(UserData.SYSTEM_USER); WebsiteData wd = null; WeblogCategoryData root = null; WeblogManager wmgr = getRoller().getWeblogManager(); wd = getRoller().getUserManager().retrieveWebsite(mWebsite.getId()); root = wmgr.getRootWeblogCategory(wd); // create empty destination folder WeblogCategoryData dest = wmgr.createWeblogCategory(); dest.setName("c0"); dest.setParent(root); dest.setWebsite(wd); dest.save(); // create three level src category with entry in each category WeblogCategoryData c1 = wmgr.createWeblogCategory(); c1.setName("c1"); c1.setParent(root); c1.setWebsite(wd); c1.save(); WeblogEntryData e1 = new WeblogEntryData( null, c1, wd, "title1", null, "text", "anchor", new Timestamp(0), new Timestamp(0), Boolean.FALSE); e1.save(); WeblogCategoryData c2 = wmgr.createWeblogCategory(); c2.setName("c2"); c2.setParent(c1); c2.setWebsite(wd); c2.save(); WeblogEntryData e2 = new WeblogEntryData( null, c2, wd, "title2", null, "text", "anchor", new Timestamp(0), new Timestamp(0), Boolean.FALSE); e2.save(); WeblogCategoryData c3 = wmgr.createWeblogCategory(); c3.setName("c3"); c3.setParent(c2); c3.setWebsite(wd); c3.save(); WeblogEntryData e3 = new WeblogEntryData( null, c3, wd, "title3", null, "text", "anchor", new Timestamp(0), new Timestamp(0), Boolean.FALSE); e3.save(); getRoller().commit(); dest_id = dest.getId(); c1_id = c1.getId(); c2_id = c2.getId(); c3_id = c3.getId(); } //----------------------------------------------------------------------- /** * @see junit.framework.TestCase#tearDown() */ public void tearDown() throws Exception { super.tearDown(); tearDownTestWeblogs(); } //----------------------------------------------------------------------- /** Add a small category tree to the small test website (mWebsite). */ public void testGetRecent() throws Exception { getRoller().begin(UserData.SYSTEM_USER); WebsiteData wd = null; WeblogCategoryData root = null; WeblogManager wmgr = getRoller().getWeblogManager(); wd = getRoller().getUserManager().retrieveWebsite(mWebsite.getId()); root = wmgr.getRootWeblogCategory(wd); // create top level folders WeblogCategoryData t1 = wmgr.createWeblogCategory(); t1.setName("toplevel1"); t1.setParent(root); t1.setWebsite(wd); t1.save(); WeblogCategoryData t2 = wmgr.createWeblogCategory(); t2.setName("toplevel2"); t2.setParent(root); t2.setWebsite(wd); t2.save(); WeblogCategoryData t3 = wmgr.createWeblogCategory(); t3.setName("toplevel3"); t3.setParent(root); t3.setWebsite(wd); t3.save(); getRoller().commit(); getRoller().begin(UserData.SYSTEM_USER); // get persistent instances t1 = wmgr.retrieveWeblogCategory(t1.getId()); wd = getRoller().getUserManager().retrieveWebsite(mWebsite.getId()); // Create four entries in 1st category WeblogEntryData e1 = new WeblogEntryData( null, t1, wd, "title1", null, "text1", "anchor", new Timestamp(0), new Timestamp(0), Boolean.FALSE); e1.save(); WeblogEntryData e2 = new WeblogEntryData( null, t1, wd, "title2", null, "text2", "anchor", new Timestamp(0), new Timestamp(0), Boolean.FALSE); e2.save(); WeblogEntryData e3 = new WeblogEntryData( null, t1, wd, "title3", null, "text3", "anchor", new Timestamp(0), new Timestamp(0), Boolean.FALSE); e3.save(); WeblogEntryData e4 = new WeblogEntryData( null, t1, wd, "title4", null, "text4", "anchor", new Timestamp(0), new Timestamp(0), Boolean.FALSE); e4.save(); getRoller().commit(); getRoller().begin(UserData.SYSTEM_USER); //List entries = wmgr.getRecentWeblogEntriesArray( //wd.getUser().getUserName(), new Date(), "toplevel1", 15, false); List entries = wmgr.getWeblogEntries( wd, null, // startDate new Date(), // endDate "toplevel1", // catName WeblogManager.ALL, // status new Integer(15)); // maxEntries assertEquals(4, entries.size()); getRoller().rollback(); } public void testGetWeblogCategoryRoot() throws Exception { getRoller().begin(UserData.SYSTEM_USER); WeblogManager wmgr = getRoller().getWeblogManager(); assertNotNull(wmgr.getRootWeblogCategory(mWebsite)); getRoller().rollback(); } public void testGetWeblogCategories() throws Exception { getRoller().begin(UserData.SYSTEM_USER); WeblogManager wmgr = getRoller().getWeblogManager(); assertEquals(8, wmgr.getWeblogCategories(mWebsite).size()); getRoller().rollback(); } public void testWeblogCategoryPaths() throws Exception { WebsiteData wd = null; WeblogCategoryData root = null; WeblogManager wmgr = getRoller().getWeblogManager(); getRoller().begin(UserData.SYSTEM_USER); wd = getRoller().getUserManager().retrieveWebsite(mWebsite.getId()); root = wmgr.getRootWeblogCategory(wd); WeblogCategoryData f1 = wmgr.createWeblogCategory(); f1.setName("f1"); f1.setParent(root); f1.setWebsite(wd); f1.save(); WeblogCategoryData f2 = wmgr.createWeblogCategory(); f2.setName("f2"); f2.setParent(f1); f2.setWebsite(wd); f2.save(); WeblogCategoryData f3 = wmgr.createWeblogCategory(); f3.setName("f3"); f3.setParent(f2); f3.setWebsite(wd); f3.save(); getRoller().commit(); getRoller().begin(UserData.SYSTEM_USER); // check count of descendents and ancestors f1 = wmgr.retrieveWeblogCategory(f1.getId()); assertEquals(2, f1.getAllDescendentAssocs().size()); assertEquals(1, f1.getAncestorAssocs().size()); f2 = wmgr.retrieveWeblogCategory(f2.getId()); assertEquals(1, f2.getAllDescendentAssocs().size()); assertEquals(2, f2.getAncestorAssocs().size()); f3 = wmgr.retrieveWeblogCategory(f3.getId()); assertEquals(0, f3.getAllDescendentAssocs().size()); assertEquals(3, f3.getAncestorAssocs().size()); // test get by path assertEquals("f1", wmgr.getWeblogCategoryByPath(wd, null, "f1").getName()); assertEquals("f1", wmgr.getWeblogCategoryByPath(wd, null, "/f1").getName()); assertEquals("f2", wmgr.getWeblogCategoryByPath(wd, null, "/f1/f2").getName()); assertEquals("f3", wmgr.getWeblogCategoryByPath(wd, null, "/f1/f2/f3").getName()); // test path creation f3 = wmgr.getWeblogCategoryByPath(wd, null, "/f1/f2/f3"); String pathString = wmgr.getPath(f3); String[] pathArray = Utilities.stringToStringArray(pathString,"/"); assertEquals("f1", pathArray[0]); assertEquals("f2", pathArray[1]); assertEquals("f3", pathArray[2]); getRoller().commit(); } //----------------------------------------------------------------------- public void testGetWeblogEntryByAnchor() throws Exception { WeblogManager wmgr = getRoller().getWeblogManager(); WeblogEntryData entry1 = (WeblogEntryData)mEntriesCreated.get(0); WebsiteData website = entry1.getWebsite(); WeblogEntryData entry2 = wmgr.getWeblogEntryByAnchor( website, entry1.getAnchor() ); assertEquals( entry1.getId(), entry2.getId() ); } //----------------------------------------------------------------------- /** * Test latest publishTime for a User. * This test passes inconsistently - I suspect Hibernate. */ public void testGetWeblogLastUpdateTimeForUser() throws Exception { WeblogManager wmgr = getRoller().getWeblogManager(); /** * really weird, but we cannot get 'entry1' directly, * we have to iterate over entries. We end up getting the same one * either way, but fetching it directly fails! */ int lastEntryIndex = (mEntriesCreated.size()-1); //System.out.println("# entries:" + lastEntryIndex); WeblogEntryData entry1 = null; //WeblogEntryData entry1 = (WeblogEntryData)mEntriesCreated.get(lastEntryIndex); if (entry1 == null || !entry1.getPublishEntry().booleanValue()) // if not published, find one { for (int i=lastEntryIndex; i >= 0; i--) { entry1 = (WeblogEntryData) mEntriesCreated.get(i); // last entry is newest //System.out.println("entry " + i + "published:" + entry1.getPublishEntry()); if (entry1.getPublishEntry().booleanValue()) { break; } } } WebsiteData website = entry1.getWebsite(); UserData user = website.getUser(); Date updateTime = wmgr.getWeblogLastPublishTime(user.getUserName()); assertEquals("THIS FAILS RANDOMLY, TRY AGAIN", entry1.getPubTime(),updateTime); } //----------------------------------------------------------------------- /** * Test latest publishTime when no User is specified. * This test passes inconsistently - I suspect Hibernate. */ public void testGetWeblogLastUpdateTimeForAll() throws Exception { WeblogManager wmgr = getRoller().getWeblogManager(); /** * Have to iterate and test to find the latest *enabled* entry. */ int lastEntryIndex = (mEntriesCreated.size()-1); //System.out.println("# entries:" + lastEntryIndex); WeblogEntryData entry1 = null; WeblogEntryData temp = null; for (int i=lastEntryIndex; i >= 0; i--) { temp = (WeblogEntryData) mEntriesCreated.get(i); // last entry is newest //System.out.println("entry " + i + "published:" + entry1.getPublishEntry()); if (temp.getPublishEntry().booleanValue()) { if (entry1 == null || entry1.getPubTime().compareTo(temp.getPubTime()) < 0) { if (entry1 != null) System.out.println("replacing " + entry1.getTitle() + " with " + temp.getTitle()); else System.out.println("setting entry1 to " + temp.getTitle()); entry1 = temp; } } } Date updateTime = wmgr.getWeblogLastPublishTime(null);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -