1 31 32 package org.opencms.module; 33 34 import org.opencms.file.CmsObject; 35 import org.opencms.main.OpenCms; 36 import org.opencms.report.CmsShellReport; 37 import org.opencms.test.OpenCmsTestCase; 38 import org.opencms.test.OpenCmsTestLogAppender; 39 import org.opencms.test.OpenCmsTestProperties; 40 import org.opencms.workplace.threads.CmsModuleDeleteThread; 41 42 import java.util.ArrayList ; 43 import java.util.List ; 44 45 import junit.extensions.TestSetup; 46 import junit.framework.Test; 47 import junit.framework.TestSuite; 48 49 58 public class TestModuleDeleteThread extends OpenCmsTestCase { 59 60 65 public TestModuleDeleteThread(String arg0) { 66 67 super(arg0); 68 } 69 70 75 public static Test suite() { 76 77 OpenCmsTestProperties.initialize(org.opencms.test.AllTests.TEST_PROPERTIES_PATH); 78 79 TestSuite suite = new TestSuite(); 80 suite.setName(TestModuleDeleteThread.class.getName()); 81 82 suite.addTest(new TestModuleDeleteThread("testModuleDeleteThread")); 84 suite.addTest(new TestModuleDeleteThread("testModuleResourcesDeleteThread")); 86 suite.addTest(new TestModuleDeleteThread("testModuleResourcesDelete")); 88 89 TestSetup wrapper = new TestSetup(suite) { 90 91 protected void setUp() { 92 93 setupOpenCms("simpletest", "/sites/default/"); 94 OpenCmsTestLogAppender.setBreakOnError(false); 96 } 97 98 protected void tearDown() { 99 100 removeOpenCms(); 101 } 102 }; 103 104 return wrapper; 105 } 106 107 112 public void testModuleDeleteThread() throws Exception { 113 114 echo("Testing to delete a module without resources using the module delete thread."); 115 CmsObject cms = getCmsObject(); 117 118 List moduleDeleteList; 120 121 String moduleName = "org.opencms.test.testModuleDeleteThread"; 123 CmsModule module1 = new CmsModule( 124 moduleName, 125 "Testing to delete a single module using the module delete thread/1", 126 "ModuleGroup", 127 null, 128 null, 129 new CmsModuleVersion("1.0"), 130 "Olaf Watteroth", 131 "watterot@inf.fu-berlin.de", 132 System.currentTimeMillis(), 133 null, 134 0L, 135 null, 136 null, 137 null, 138 null); 139 140 OpenCms.getModuleManager().addModule(cms, module1); 141 if (!OpenCms.getModuleManager().hasModule(moduleName)) { 143 fail("Module '" + moduleName + "' was not created!"); 144 } 145 146 moduleDeleteList = new ArrayList (); 148 moduleDeleteList.add(moduleName); 149 CmsModuleDeleteThread thread1 = new CmsModuleDeleteThread(cms, moduleDeleteList, false, false); 151 152 thread1.start(); 154 thread1.join(); 156 157 while (thread1.isAlive()) { 158 } 160 CmsModule temp = OpenCms.getModuleManager().getModule(moduleName); 162 echo("Test if the module still exists"); 164 assertNull(temp); 165 166 CmsModule module2 = new CmsModule( 167 moduleName, 168 "Testing to delete a single module using the module delete thread/2", 169 "ModuleGroup", 170 null, 171 null, 172 new CmsModuleVersion("1.0"), 173 "Olaf Watteroth", 174 "watterot@inf.fu-berlin.de", 175 System.currentTimeMillis(), 176 null, 177 0L, 178 null, 179 null, 180 null, 181 null); 182 183 OpenCms.getModuleManager().addModule(cms, module2); 184 185 moduleDeleteList = new ArrayList (); 187 moduleDeleteList.add(moduleName); 188 echo("Created a new module again and try to delete it - this time with two threads at once"); 189 CmsModuleDeleteThread thread_parallel_1 = new CmsModuleDeleteThread(cms, moduleDeleteList, false, false); 190 CmsModuleDeleteThread thread_parallel_2 = new CmsModuleDeleteThread(cms, moduleDeleteList, false, false); 191 192 thread_parallel_1.start(); 194 thread_parallel_2.start(); 195 196 thread_parallel_1.join(); 198 thread_parallel_2.join(); 199 200 while (thread_parallel_1.isAlive() & thread_parallel_2.isAlive()) { 201 Thread.sleep(1000); 203 } 204 205 module1 = OpenCms.getModuleManager().getModule(moduleName); 207 echo("Exceptions will be logged - but the module should be deleted correctly"); 209 assertNull(module1); 210 } 211 212 217 public void testModuleResourcesDeleteThread() throws Exception { 218 219 echo("Test to delete a module with non-existing resources using the module delete thread"); 220 221 CmsObject cms = getCmsObject(); 222 String moduleName = "org.opencms.test.testModuleResourcesDeleteThread"; 223 224 String res1 = "/system/modules/tests/test1/"; 225 String res2 = "/system/modules/tests/test2/"; 226 String res3 = "/system/modules/tests/test3/"; 227 String res4 = "/system/modules/tests/test4/"; 228 229 List resources = new ArrayList (); 230 resources.add(res1); 231 resources.add(res2); 232 resources.add(res3); 233 resources.add(res4); 234 235 CmsModule module1 = new CmsModule( 236 moduleName, 237 "Test to delete a module with non-existing resources using the module delete thread", 238 "ModuleGroup", 239 null, 240 null, 241 new CmsModuleVersion("1.0"), 242 "Olaf Watteroth", 243 "watterot@inf.fu-berlin.de", 244 System.currentTimeMillis(), 245 null, 246 0L, 247 null, 248 null, 249 resources, 250 null); 251 252 OpenCms.getModuleManager().addModule(cms, module1); 253 module1 = OpenCms.getModuleManager().getModule(moduleName); 254 255 assertEquals(0, module1.getParameters().size()); 256 assertEquals(4, module1.getResources().size()); 257 258 echo("Module created. Now try to delete it"); 260 List module = new ArrayList (); 263 module.add(moduleName); 264 265 CmsModuleDeleteThread thread1 = new CmsModuleDeleteThread(cms, module, false, false); 267 268 thread1.start(); 270 271 thread1.join(); 273 274 while (thread1.isAlive()) { 275 Thread.sleep(1000); 277 } 278 279 module1 = OpenCms.getModuleManager().getModule(moduleName); 281 echo("Test if the module still exists"); 283 assertNull(module1); 284 } 285 286 291 public void testModuleResourcesDelete() throws Throwable { 292 293 echo("Test to delete a module with non-existing resources using the CmsModuleManager"); 294 295 CmsObject cms = getCmsObject(); 296 String moduleName = "org.opencms.test.testModuleResourcesDelete"; 297 298 String res1 = "/system/modules/tests/test1/"; 299 String res2 = "/system/modules/tests/test2/"; 300 String res3 = "/system/modules/tests/test3/"; 301 String res4 = "/system/modules/tests/test4/"; 302 303 List resources = new ArrayList (); 304 resources.add(res1); 305 resources.add(res2); 306 resources.add(res3); 307 resources.add(res4); 308 309 CmsModule module1 = new CmsModule( 310 moduleName, 311 "Test to delete a module with non-existing resources using the CmsModuleManager", 312 "ModuleGroup", 313 null, 314 null, 315 new CmsModuleVersion("1.0"), 316 "Olaf Watteroth", 317 "watterot@inf.fu-berlin.de", 318 System.currentTimeMillis(), 319 null, 320 0L, 321 null, 322 null, 323 resources, 324 null); 325 326 OpenCms.getModuleManager().addModule(cms, module1); 327 module1 = OpenCms.getModuleManager().getModule(moduleName); 328 329 assertEquals(4, module1.getResources().size()); 330 331 echo("Now try to delete it *the normal way*"); 332 OpenCms.getModuleManager().deleteModule(cms, moduleName, false, new CmsShellReport(cms.getRequestContext().getLocale())); 333 334 module1 = OpenCms.getModuleManager().getModule(moduleName); 335 echo("Now check if module was deleted"); 337 assertNull(module1); 338 echo("Test finished"); 339 } 340 }
| Popular Tags
|