1 package com.tirsen.nanning.samples.prevayler; 2 3 import com.tirsen.nanning.samples.prevayler.BasicIdentifyingSystem; 4 import com.tirsen.nanning.test.TestUtils; 5 import junit.framework.TestCase; 6 7 public class BasicIdentifyingSystemGCTest extends TestCase { 8 private BasicIdentifyingSystem basicIdentifyingSystem; 9 private String registredObject; 10 11 protected void setUp() throws Exception { 12 super.setUp(); 13 14 basicIdentifyingSystem = new BasicIdentifyingSystem(); 15 registredObject = "BombingObject"; 16 for (int i = 0; i < 1024; i++) { 17 registredObject += "I'm big"; 18 } 19 CurrentPrevayler.enterTransaction(); 20 basicIdentifyingSystem.registerObjectID(registredObject); 21 CurrentPrevayler.exitTransaction(); 22 } 23 24 public void testGarbageCollection() { 25 long objectID = basicIdentifyingSystem.getObjectID(registredObject); 26 assertTrue(basicIdentifyingSystem.isIDRegistered(objectID)); 27 registredObject = null; 28 29 TestUtils.gc(); 30 31 assertFalse("this test uses a trick to provoke a garbage collect of a specific object, " + 32 "in some situations it fails even if it's not necessarily an error", 33 basicIdentifyingSystem.isIDRegistered(objectID)); 34 assertTrue(basicIdentifyingSystem.hasNoRegisteredObjects()); 35 } 36 } 37 | Popular Tags |