Added ObjectCache class and fixed som hashmap iterator issues

This commit is contained in:
Ziver Koc 2016-07-30 00:18:45 +02:00
parent 6dd2210be1
commit 2fcc8e98c5
6 changed files with 252 additions and 19 deletions

View file

@ -26,6 +26,8 @@ package zutil.struct;
import org.junit.Test;
import static junit.framework.TestCase.assertTrue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@ -34,6 +36,7 @@ import static org.junit.Assert.assertFalse;
*/
public class TimedHashSetTest {
public static final String ENTRY = "key";
public static final String ENTRY2 = "key2";
@Test
public void zeroTTL() throws InterruptedException {
@ -48,7 +51,7 @@ public class TimedHashSetTest {
TimedHashSet set = new TimedHashSet(10);
set.add(ENTRY);
Thread.sleep(1);
assert(set.contains(ENTRY));
assertTrue(set.contains(ENTRY));
Thread.sleep(10);
assertFalse(set.contains(ENTRY));
}
@ -58,6 +61,18 @@ public class TimedHashSetTest {
TimedHashSet set = new TimedHashSet(1000);
set.add(ENTRY);
Thread.sleep(1);
assert(set.contains(ENTRY));
assertTrue(set.contains(ENTRY));
}
@Test
public void grc() throws InterruptedException {
TimedHashSet set = new TimedHashSet(10);
set.add(ENTRY);
set.add(ENTRY2);
assertEquals(2, set.size());
Thread.sleep(12);
assertEquals(2, set.size());
assertEquals(2, set.garbageCollect());
assertEquals(0, set.size());
}
}