KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tirsen > nanning > samples > prevayler > BasicIdentifyingSystemGCTest


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 JavaDoc registredObject;
10
11     protected void setUp() throws Exception JavaDoc {
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