test to make sure that gets promote keys to the Most Recently Used

position


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130695 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Morgan James Delagrange 2002-05-08 16:07:05 +00:00
parent 2769f6c83a
commit 86bd2c4931
1 changed files with 31 additions and 4 deletions

View File

@ -1,7 +1,7 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/test/org/apache/commons/collections/TestLRUMap.java,v 1.17 2002/02/22 22:26:01 morgand Exp $
* $Revision: 1.17 $
* $Date: 2002/02/22 22:26:01 $
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/test/org/apache/commons/collections/TestLRUMap.java,v 1.18 2002/05/08 16:07:05 morgand Exp $
* $Revision: 1.18 $
* $Date: 2002/05/08 16:07:05 $
*
* ====================================================================
*
@ -65,6 +65,7 @@ import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
@ -72,7 +73,7 @@ import java.util.HashMap;
*
* @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
* @author <a href="mailto:morgand@apache.org">Morgan Delagrange</a>
* @version $Id: TestLRUMap.java,v 1.17 2002/02/22 22:26:01 morgand Exp $
* @version $Id: TestLRUMap.java,v 1.18 2002/05/08 16:07:05 morgand Exp $
*/
public class TestLRUMap extends TestSequencedHashMap
{
@ -156,6 +157,32 @@ public class TestLRUMap extends TestSequencedHashMap
map.size() == 3);
}
public void testGetPromotion() {
LRUMap map = new LRUMap(3);
map.put("1","1");
map.put("2","2");
map.put("3","3");
// LRU is now 1 (then 2 then 3)
// promote 1 to top
// eviction order is now 2,3,1
map.get("1");
// add another value, forcing a remove
// 2 should be evicted (then 3,1,4)
map.put("4","4");
Iterator keyIterator = map.keySet().iterator();
Object[] keys = new Object[3];
for (int i = 0; keyIterator.hasNext() ; ++i) {
keys[i] = keyIterator.next();
}
assertTrue("first evicted should be 3, was " + keys[0], keys[0].equals("3"));
assertTrue("second evicted should be 1, was " + keys[1], keys[1].equals("1"));
assertTrue("third evicted should be 4, was " + keys[2], keys[2].equals("4"));
}
/**
* You should be able to subclass LRUMap and perform a
* custom action when items are removed automatically