1 18 23 24 package org.apache.roller.business; 25 26 import java.util.List ; 27 import junit.framework.Test; 28 import junit.framework.TestCase; 29 import junit.framework.TestSuite; 30 import org.apache.commons.logging.Log; 31 import org.apache.commons.logging.LogFactory; 32 import org.apache.roller.TestUtils; 33 import org.apache.roller.model.RollerFactory; 34 import org.apache.roller.model.WeblogManager; 35 import org.apache.roller.pojos.UserData; 36 import org.apache.roller.pojos.WeblogCategoryData; 37 import org.apache.roller.pojos.WeblogEntryData; 38 import org.apache.roller.pojos.WebsiteData; 39 import org.apache.roller.util.Utilities; 40 41 42 45 public class WeblogCategoryTest extends TestCase { 46 47 public static Log log = LogFactory.getLog(WeblogCategoryTest.class); 48 49 UserData testUser = null; 50 WebsiteData testWeblog = null; 51 52 53 public WeblogCategoryTest() { 54 } 55 56 57 public static Test suite() { 58 return new TestSuite(WeblogCategoryTest.class); 59 } 60 61 62 65 public void setUp() throws Exception { 66 67 log.info("Setup "+this.getClass().getName()); 68 69 try { 70 testUser = TestUtils.setupUser("entryTestUser"); 71 testWeblog = TestUtils.setupWeblog("entryTestWeblog", testUser); 72 TestUtils.endSession(true); 73 } catch (Exception ex) { 74 log.error(ex); 75 throw new Exception ("Test setup failed", ex); 76 } 77 } 78 79 public void tearDown() throws Exception { 80 81 log.info("Teardown "+this.getClass().getName()); 82 83 try { 84 TestUtils.teardownWeblog(testWeblog.getId()); 85 TestUtils.teardownUser(testUser.getId()); 86 TestUtils.endSession(true); 87 } catch (Exception ex) { 88 log.error(ex); 89 throw new Exception ("Test teardown failed", ex); 90 } 91 } 92 93 94 97 public void testWeblogCategoryCRUD() throws Exception { 98 99 WeblogManager mgr = RollerFactory.getRoller().getWeblogManager(); 100 WeblogCategoryData cat = null; 101 List cats = null; 102 103 int numCats = mgr.getRootWeblogCategory(testWeblog).getWeblogCategories().size(); 105 106 WeblogCategoryData newCat = new WeblogCategoryData(); 108 newCat.setName("catTestCategory"); 109 newCat.setParent(testWeblog.getDefaultCategory()); 110 newCat.setWebsite(testWeblog); 111 mgr.saveWeblogCategory(newCat); 112 String id = newCat.getId(); 113 TestUtils.endSession(true); 114 115 cat = null; 117 cat = mgr.getWeblogCategory(id); 118 assertNotNull(cat); 119 assertEquals(newCat, cat); 120 121 testWeblog = RollerFactory.getRoller().getUserManager().getWebsite(testWeblog.getId()); 123 assertEquals(numCats+1, mgr.getRootWeblogCategory(testWeblog).getWeblogCategories().size()); 124 125 cat.setName("testtest"); 127 mgr.saveWeblogCategory(cat); 128 TestUtils.endSession(true); 129 130 cat = null; 132 cat = mgr.getWeblogCategory(id); 133 assertNotNull(cat); 134 assertEquals("testtest", cat.getName()); 135 136 mgr.removeWeblogCategory(cat); 138 TestUtils.endSession(true); 139 140 cat = null; 142 mgr.getWeblogCategory(id); 143 assertNull(cat); 144 145 testWeblog = RollerFactory.getRoller().getUserManager().getWebsite(testWeblog.getId()); 147 assertEquals(numCats, mgr.getRootWeblogCategory(testWeblog).getWeblogCategories().size()); 148 } 149 150 151 154 public void testWeblogCategoryLookups() throws Exception { 155 156 } 157 158 159 public void testWeblogCategoryPaths() throws Exception { 160 161 WeblogCategoryData root = null; 162 WeblogManager mgr = RollerFactory.getRoller().getWeblogManager(); 163 164 root = mgr.getRootWeblogCategory(testWeblog); 165 166 WeblogCategoryData f1 = new WeblogCategoryData(); 167 f1.setName("f1"); 168 f1.setParent(root); 169 f1.setWebsite(testWeblog); 170 mgr.saveWeblogCategory(f1); 171 172 WeblogCategoryData f2 = new WeblogCategoryData(); 173 f2.setName("f2"); 174 f2.setParent(f1); 175 f2.setWebsite(testWeblog); 176 mgr.saveWeblogCategory(f2); 177 178 WeblogCategoryData f3 = new WeblogCategoryData(); 179 f3.setName("f3"); 180 f3.setParent(f2); 181 f3.setWebsite(testWeblog); 182 mgr.saveWeblogCategory(f3); 183 184 TestUtils.endSession(true); 185 186 f1 = mgr.getWeblogCategory(f1.getId()); 188 assertEquals(2, f1.getAllDescendentAssocs().size()); 189 assertEquals(1, f1.getAncestorAssocs().size()); 190 191 f2 = mgr.getWeblogCategory(f2.getId()); 192 assertEquals(1, f2.getAllDescendentAssocs().size()); 193 assertEquals(2, f2.getAncestorAssocs().size()); 194 195 f3 = mgr.getWeblogCategory(f3.getId()); 196 assertEquals(0, f3.getAllDescendentAssocs().size()); 197 assertEquals(3, f3.getAncestorAssocs().size()); 198 199 assertEquals("f1", 201 mgr.getWeblogCategoryByPath(testWeblog, null, "f1").getName()); 202 203 assertEquals("f1", 204 mgr.getWeblogCategoryByPath(testWeblog, null, "/f1").getName()); 205 206 assertEquals("f2", 207 mgr.getWeblogCategoryByPath(testWeblog, null, "/f1/f2").getName()); 208 209 assertEquals("f3", 210 mgr.getWeblogCategoryByPath(testWeblog, null, "/f1/f2/f3").getName()); 211 212 f3 = mgr.getWeblogCategoryByPath(testWeblog, null, "/f1/f2/f3"); 214 String pathString = mgr.getPath(f3); 215 String [] pathArray = Utilities.stringToStringArray(pathString,"/"); 216 assertEquals("f1", pathArray[0]); 217 assertEquals("f2", pathArray[1]); 218 assertEquals("f3", pathArray[2]); 219 } 220 221 222 public void testMoveWeblogCategory() throws Exception { 223 224 WeblogManager mgr = RollerFactory.getRoller().getWeblogManager(); 225 226 WeblogCategoryData dest = new WeblogCategoryData(); 228 dest.setName("c0"); 229 dest.setParent(mgr.getRootWeblogCategory(testWeblog)); 230 dest.setWebsite(testWeblog); 231 mgr.saveWeblogCategory(dest); 232 233 WeblogCategoryData c1 = new WeblogCategoryData(); 234 c1.setName("c1"); 235 c1.setParent(mgr.getRootWeblogCategory(testWeblog)); 236 c1.setWebsite(testWeblog); 237 mgr.saveWeblogCategory(c1); 238 239 WeblogCategoryData c2 = new WeblogCategoryData(); 240 c2.setName("c2"); 241 c2.setParent(c1); 242 c2.setWebsite(testWeblog); 243 mgr.saveWeblogCategory(c2); 244 245 WeblogCategoryData c3 = new WeblogCategoryData(); 246 c3.setName("c3"); 247 c3.setParent(c2); 248 c3.setWebsite(testWeblog); 249 mgr.saveWeblogCategory(c3); 250 251 TestUtils.endSession(true); 252 253 c1 = mgr.getWeblogCategory(c1.getId()); 254 c2 = mgr.getWeblogCategory(c2.getId()); 255 c3 = mgr.getWeblogCategory(c3.getId()); 256 dest = mgr.getWeblogCategory(dest.getId()); 257 258 WeblogEntryData e1 = TestUtils.setupWeblogEntry("e1", c1, testWeblog, testUser); 259 WeblogEntryData e2 = TestUtils.setupWeblogEntry("e2", c2, testWeblog, testUser); 260 WeblogEntryData e3 = TestUtils.setupWeblogEntry("e3", c3, testWeblog, testUser); 261 262 TestUtils.endSession(true); 263 264 assertEquals(0, dest.retrieveWeblogEntries(true).size()); 266 assertEquals(0, dest.retrieveWeblogEntries(false).size()); 267 assertEquals(1, c1.retrieveWeblogEntries(false).size()); 268 assertEquals(3, c1.retrieveWeblogEntries(true).size()); 269 270 c1.setParent(dest); 272 mgr.saveWeblogCategory(c1); 273 TestUtils.endSession(true); 274 275 dest = mgr.getWeblogCategory(dest.getId()); 277 c1 = mgr.getWeblogCategory(c1.getId()); 278 c2 = mgr.getWeblogCategory(c2.getId()); 279 c3 = mgr.getWeblogCategory(c3.getId()); 280 281 assertEquals(3, dest.retrieveWeblogEntries(true).size()); 282 assertEquals(0, dest.retrieveWeblogEntries(false).size()); 283 284 assertEquals(dest, c1.getParent()); 285 assertEquals(c1, c2.getParent()); 286 assertEquals(c2, c3.getParent()); 287 288 assertEquals(1, c1.retrieveWeblogEntries(false).size()); 289 assertEquals(1, c2.retrieveWeblogEntries(false).size()); 290 assertEquals(1, c3.retrieveWeblogEntries(false).size()); 291 292 List entries = c1.retrieveWeblogEntries(true); 293 assertEquals(3, entries.size()); 294 } 295 296 public void testMoveWeblogCategoryContents() throws Exception { 297 298 WeblogManager mgr = RollerFactory.getRoller().getWeblogManager(); 299 300 WeblogCategoryData dest = new WeblogCategoryData(); 302 dest.setName("c0"); 303 dest.setParent(mgr.getRootWeblogCategory(testWeblog)); 304 dest.setWebsite(testWeblog); 305 mgr.saveWeblogCategory(dest); 306 307 WeblogCategoryData c1 = new WeblogCategoryData(); 308 c1.setName("c1"); 309 c1.setParent(mgr.getRootWeblogCategory(testWeblog)); 310 c1.setWebsite(testWeblog); 311 mgr.saveWeblogCategory(c1); 312 313 WeblogCategoryData c2 = new WeblogCategoryData(); 314 c2.setName("c2"); 315 c2.setParent(c1); 316 c2.setWebsite(testWeblog); 317 mgr.saveWeblogCategory(c2); 318 319 WeblogCategoryData c3 = new WeblogCategoryData(); 320 c3.setName("c3"); 321 c3.setParent(c2); 322 c3.setWebsite(testWeblog); 323 mgr.saveWeblogCategory(c3); 324 325 TestUtils.endSession(true); 326 327 c1 = mgr.getWeblogCategory(c1.getId()); 328 c2 = mgr.getWeblogCategory(c2.getId()); 329 c3 = mgr.getWeblogCategory(c3.getId()); 330 dest = mgr.getWeblogCategory(dest.getId()); 331 332 WeblogEntryData e1 = TestUtils.setupWeblogEntry("e1", c1, testWeblog, testUser); 333 WeblogEntryData e2 = TestUtils.setupWeblogEntry("e2", c2, testWeblog, testUser); 334 WeblogEntryData e3 = TestUtils.setupWeblogEntry("e3", c3, testWeblog, testUser); 335 336 TestUtils.endSession(true); 337 338 assertEquals(0, dest.retrieveWeblogEntries(true).size()); 340 assertEquals(0, dest.retrieveWeblogEntries(false).size()); 341 assertEquals(1, c1.retrieveWeblogEntries(false).size()); 342 assertEquals(3, c1.retrieveWeblogEntries(true).size()); 343 344 mgr.moveWeblogCategoryContents(c1, dest); 346 mgr.saveWeblogCategory(c1); 347 TestUtils.endSession(true); 348 349 dest = mgr.getWeblogCategory(dest.getId()); 351 c1 = mgr.getWeblogCategory(c1.getId()); 352 353 assertEquals(3, dest.retrieveWeblogEntries(true).size()); 355 assertEquals(3, dest.retrieveWeblogEntries(false).size()); 356 357 assertEquals(0, c1.retrieveWeblogEntries(false).size()); 359 360 361 } 362 } 363 | Popular Tags |