You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by mo...@apache.org on 2002/02/20 23:38:46 UTC

cvs commit: jakarta-commons/collections/src/test/org/apache/commons/collections TestLRUMap.java TestMap.java TestSequencedHashMap.java

morgand     02/02/20 14:38:46

  Modified:    collections/src/test/org/apache/commons/collections
                        TestLRUMap.java TestMap.java
                        TestSequencedHashMap.java
  Log:
  moved some generic map tests up to TestMap, and implemented a marker
  interface to indicate when a TestMap class can test
  put(Object,Object) operations
  
  Revision  Changes    Path
  1.14      +4 -37     jakarta-commons/collections/src/test/org/apache/commons/collections/TestLRUMap.java
  
  Index: TestLRUMap.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/TestLRUMap.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- TestLRUMap.java	20 Feb 2002 20:51:38 -0000	1.13
  +++ TestLRUMap.java	20 Feb 2002 22:38:46 -0000	1.14
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/TestLRUMap.java,v 1.13 2002/02/20 20:51:38 morgand Exp $
  - * $Revision: 1.13 $
  - * $Date: 2002/02/20 20:51:38 $
  + * $Header: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/TestLRUMap.java,v 1.14 2002/02/20 22:38:46 morgand Exp $
  + * $Revision: 1.14 $
  + * $Date: 2002/02/20 22:38:46 $
    *
    * ====================================================================
    *
  @@ -77,7 +77,7 @@
    * 
    * @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.13 2002/02/20 20:51:38 morgand Exp $
  + * @version $Id: TestLRUMap.java,v 1.14 2002/02/20 22:38:46 morgand Exp $
    */
   public class TestLRUMap extends TestSequencedHashMap
   {
  @@ -110,26 +110,6 @@
           assertTrue("LRU should not exist", map2.get(new Integer(1)) == null);
       }
   
  -    public void testMultiplePuts() {
  -        LRUMap map2 = new LRUMap(2);
  -        map2.put(new Integer(4),"foo");
  -        map2.put(new Integer(4),"bar");
  -        map2.put(new Integer(4),"foo");
  -        map2.put(new Integer(4),"bar");
  -
  -        assertTrue("same key different value",map2.get(new Integer(4)).equals("bar"));
  -    }
  -
  -    public void testCapacity() {
  -        LRUMap map2 = new LRUMap(3);
  -        map2.put(new Integer(1),"foo");
  -        map2.put(new Integer(2),"foo");
  -        map2.put(new Integer(3),"foo");
  -        map2.put(new Integer(1),"foo");
  -        
  -        assertTrue("size of Map should be 3, but was " + map2.size(), map2.size() == 3);
  -    }
  -
       /**
        * Confirm that putAll(Map) does not cause the LRUMap
        * to exceed its maxiumum size.
  @@ -149,19 +129,6 @@
                      map2.size() == 3);
           assertTrue("map should contain the Integer(4) object",
                      map2.containsKey(new Integer(4)));
  -    }
  -
  -
  -    public void testMapSupportsNullValues() {
  -        Map map = makeMap();
  -        map.put(new Integer(1),"foo");
  -        
  -        assertTrue("no null values in Map",map.containsValue(null) == false);
  -
  -        map.put(new Integer(2),null);
  -
  -        assertTrue("null value in Map",map.containsValue(null));
  -        assertTrue("key to a null value",map.containsKey(new Integer(2)));
       }
   
       /**
  
  
  
  1.4       +92 -30    jakarta-commons/collections/src/test/org/apache/commons/collections/TestMap.java
  
  Index: TestMap.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/TestMap.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TestMap.java	15 Feb 2002 20:48:18 -0000	1.3
  +++ TestMap.java	20 Feb 2002 22:38:46 -0000	1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/TestMap.java,v 1.3 2002/02/15 20:48:18 morgand Exp $
  - * $Revision: 1.3 $
  - * $Date: 2002/02/15 20:48:18 $
  + * $Header: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/TestMap.java,v 1.4 2002/02/20 22:38:46 morgand Exp $
  + * $Revision: 1.4 $
  + * $Date: 2002/02/20 22:38:46 $
    *
    * ====================================================================
    *
  @@ -76,7 +76,7 @@
    * test case (method) your {@link Map} fails.
    *
    * @author Rodney Waldhoff
  - * @version $Id: TestMap.java,v 1.3 2002/02/15 20:48:18 morgand Exp $
  + * @version $Id: TestMap.java,v 1.4 2002/02/20 22:38:46 morgand Exp $
    */
   public abstract class TestMap extends TestObject {
       public TestMap(String testName) {
  @@ -92,13 +92,33 @@
           return makeMap();
       }
   
  -    /*
  -
  -    // optional operation
  -    public void testMapClear() {
  -        // XXX finish me
  +        /**
  +     * Try to put the given pair into the given Collection.
  +     *
  +     * Fails any Throwable except UnsupportedOperationException,
  +     * ClassCastException, or IllegalArgumentException
  +     * or NullPointerException is thrown.
  +     */
  +    protected Object tryToPut(Map map, Object key, Object val) {
  +        try {
  +            return map.put(key,val);
  +        } catch(UnsupportedOperationException e) {
  +            return null;
  +        } catch(ClassCastException e) {
  +            return null;
  +        } catch(IllegalArgumentException e) {
  +            return null;
  +        } catch(NullPointerException e) {
  +            return null;
  +        } catch(Throwable t) {
  +            t.printStackTrace();
  +            fail("Map.put should only throw UnsupportedOperationException, ClassCastException, IllegalArgumentException or NullPointerException. Found " + t.toString());
  +            return null; // never get here, since fail throws exception
  +        }
       }
   
  +    /*
  +
       public void testMapContainsKey() {
           // XXX finish me
       }
  @@ -130,6 +150,64 @@
       public void testMapKeySet() {
           // XXX finish me
       }
  +    
  +    */
  +    
  +    //-------TEST AGAINST OPTIONAL OPERATIONS, ENABLE IN TEST SUBCLASSES
  +
  +    public void testMapSupportsNullValues() {
  +
  +        if ((this instanceof TestMap.SupportsPut) == false) {
  +            return;
  +        }
  +
  +        Map map = makeMap();
  +        map.put(new Integer(1),"foo");
  +        
  +        assertTrue("no null values in Map",map.containsValue(null) == false);
  +
  +        map.put(new Integer(2),null);
  +
  +        assertTrue("null value in Map",map.containsValue(null));
  +        assertTrue("key to a null value",map.containsKey(new Integer(2)));
  +    }
  +
  +    public void testMultiplePuts() {
  +
  +        if ((this instanceof TestMap.SupportsPut) == false) {
  +            return;
  +        }
  +
  +        Map map = makeMap();
  +        map.put(new Integer(4),"foo");
  +        map.put(new Integer(4),"bar");
  +        map.put(new Integer(4),"foo");
  +        map.put(new Integer(4),"bar");
  +
  +        assertTrue("same key different value",map.get(new Integer(4)).equals("bar"));
  +    }
  +
  +
  +    public void testCapacity() {
  +
  +        if ((this instanceof TestMap.SupportsPut) == false) {
  +            return;
  +        }
  +
  +        Map map = makeMap();
  +        map.put(new Integer(1),"foo");
  +        map.put(new Integer(2),"foo");
  +        map.put(new Integer(3),"foo");
  +        map.put(new Integer(1),"foo");
  +        
  +        assertTrue("size of Map should be 3, but was " + map.size(), map.size() == 3);
  +    }
  +
  +    /*
  +        // optional operation
  +public void testMapClear() {
  +    // XXX finish me
  +}
   
       // optional operation
       public void testMapPut() {
  @@ -157,27 +235,11 @@
       */
   
       /**
  -     * Try to put the given pair into the given Collection.
  -     *
  -     * Fails any Throwable except UnsupportedOperationException,
  -     * ClassCastException, or IllegalArgumentException
  -     * or NullPointerException is thrown.
  +     * Marker interface, indicating that a TestMap subclass
  +     * can test put(Object,Object) operations.
        */
  -    protected Object tryToPut(Map map, Object key, Object val) {
  -        try {
  -            return map.put(key,val);
  -        } catch(UnsupportedOperationException e) {
  -            return null;
  -        } catch(ClassCastException e) {
  -            return null;
  -        } catch(IllegalArgumentException e) {
  -            return null;
  -        } catch(NullPointerException e) {
  -            return null;
  -        } catch(Throwable t) {
  -            t.printStackTrace();
  -            fail("Map.put should only throw UnsupportedOperationException, ClassCastException, IllegalArgumentException or NullPointerException. Found " + t.toString());
  -            return null; // never get here, since fail throws exception
  -        }
  +    public interface SupportsPut {
  +
       }
  +
   }
  
  
  
  1.5       +1 -1      jakarta-commons/collections/src/test/org/apache/commons/collections/TestSequencedHashMap.java
  
  Index: TestSequencedHashMap.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/TestSequencedHashMap.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TestSequencedHashMap.java	20 Feb 2002 22:17:18 -0000	1.4
  +++ TestSequencedHashMap.java	20 Feb 2002 22:38:46 -0000	1.5
  @@ -73,7 +73,7 @@
    * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
    * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
    */
  -public class TestSequencedHashMap extends TestMap
  +public class TestSequencedHashMap extends TestMap implements TestMap.SupportsPut
   {
       /**
        * The instance to experiment on.
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>