You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sc...@apache.org on 2003/12/07 02:21:52 UTC

cvs commit: jakarta-commons/collections/src/test/org/apache/commons/collections/map AbstractTestIterableMap.java AbstractTestOrderedMap.java AbstractTestMap.java

scolebourne    2003/12/06 17:21:52

  Modified:    collections/src/test/org/apache/commons/collections/iterators
                        AbstractTestOrderedMapIterator.java
                        AbstractTestMapIterator.java
               collections/src/test/org/apache/commons/collections/map
                        AbstractTestIterableMap.java
                        AbstractTestOrderedMap.java AbstractTestMap.java
  Log:
  Enable LRUMap testing by adding isGetStructuralModify()
  
  Revision  Changes    Path
  1.5       +5 -4      jakarta-commons/collections/src/test/org/apache/commons/collections/iterators/AbstractTestOrderedMapIterator.java
  
  Index: AbstractTestOrderedMapIterator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/iterators/AbstractTestOrderedMapIterator.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AbstractTestOrderedMapIterator.java	3 Dec 2003 19:03:21 -0000	1.4
  +++ AbstractTestOrderedMapIterator.java	7 Dec 2003 01:21:51 -0000	1.5
  @@ -146,9 +146,10 @@
               
               // getValue
               Object value = it.getValue();
  -            assertSame("Value must be mapped to key", map.get(key), value);
  +            if (isGetStructuralModify() == false) {
  +                assertSame("Value must be mapped to key", map.get(key), value);
  +            }
               assertTrue("Value must be in map",  map.containsValue(value));
  -            assertSame("Value must be mapped to key", map.get(key), value);
   
               assertEquals(true, it.hasPrevious());
               
  
  
  
  1.9       +18 -6     jakarta-commons/collections/src/test/org/apache/commons/collections/iterators/AbstractTestMapIterator.java
  
  Index: AbstractTestMapIterator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/iterators/AbstractTestMapIterator.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- AbstractTestMapIterator.java	2 Dec 2003 21:56:34 -0000	1.8
  +++ AbstractTestMapIterator.java	7 Dec 2003 01:21:51 -0000	1.9
  @@ -149,6 +149,16 @@
       }
   
       /**
  +     * Whether the get operation on the map structurally modifies the map,
  +     * such as with LRUMap. Default is false.
  +     * 
  +     * @return true if the get method structurally modifies the map
  +     */
  +    public boolean isGetStructuralModify() {
  +        return false;
  +    }
  +    
  +    /**
        * The values to be used in the add and set tests.
        * Default is two strings.
        */
  @@ -227,9 +237,10 @@
               
               // getValue
               Object value = it.getValue();
  -            assertSame("Value must be mapped to key", map.get(key), value);
  +            if (isGetStructuralModify() == false) {
  +                assertSame("Value must be mapped to key", map.get(key), value);
  +            }
               assertTrue("Value must be in map",  map.containsValue(value));
  -            assertSame("Value must be mapped to key", map.get(key), value);
   
               verify();
           }
  @@ -257,14 +268,15 @@
               } catch (UnsupportedOperationException ex) {}
               return;
           }
  -        
           Object old = it.setValue(newValue);
           confirmed.put(key, newValue);
           assertSame("Key must not change after setValue", key, it.getKey());
           assertSame("Value must be changed after setValue", newValue, it.getValue());
           assertSame("setValue must return old value", value, old);
           assertEquals("Map must contain key", true, map.containsKey(key));
  -        assertEquals("Map must not contain old value", false, map.containsValue(old));
  +        // test against confirmed, as map may contain value twice
  +        assertEquals("Map must not contain old value", 
  +            confirmed.containsValue(old), map.containsValue(old));
           assertEquals("Map must contain new value", true, map.containsValue(newValue));
           verify();
           
  
  
  
  1.2       +6 -2      jakarta-commons/collections/src/test/org/apache/commons/collections/map/AbstractTestIterableMap.java
  
  Index: AbstractTestIterableMap.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/map/AbstractTestIterableMap.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractTestIterableMap.java	2 Dec 2003 23:51:49 -0000	1.1
  +++ AbstractTestIterableMap.java	7 Dec 2003 01:21:51 -0000	1.2
  @@ -165,6 +165,10 @@
           public boolean supportsRemove() {
               return AbstractTestIterableMap.this.isRemoveSupported();
           }
  +        
  +        public boolean isGetStructuralModify() {
  +            return AbstractTestIterableMap.this.isGetStructuralModify();
  +        }
   
           public boolean supportsSetValue() {
               return AbstractTestIterableMap.this.isSetValueSupported();
  
  
  
  1.5       +6 -2      jakarta-commons/collections/src/test/org/apache/commons/collections/map/AbstractTestOrderedMap.java
  
  Index: AbstractTestOrderedMap.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/map/AbstractTestOrderedMap.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AbstractTestOrderedMap.java	2 Dec 2003 23:51:49 -0000	1.4
  +++ AbstractTestOrderedMap.java	7 Dec 2003 01:21:51 -0000	1.5
  @@ -227,6 +227,10 @@
               return AbstractTestOrderedMap.this.isRemoveSupported();
           }
   
  +        public boolean isGetStructuralModify() {
  +            return AbstractTestOrderedMap.this.isGetStructuralModify();
  +        }
  +        
           public boolean supportsSetValue() {
               return AbstractTestOrderedMap.this.isSetValueSupported();
           }
  
  
  
  1.3       +21 -3     jakarta-commons/collections/src/test/org/apache/commons/collections/map/AbstractTestMap.java
  
  Index: AbstractTestMap.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/map/AbstractTestMap.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractTestMap.java	18 Nov 2003 22:37:17 -0000	1.2
  +++ AbstractTestMap.java	7 Dec 2003 01:21:51 -0000	1.3
  @@ -105,6 +105,7 @@
    * <li> {@link #isPutChangeSupported()}
    * <li> {@link #isSetValueSupported()}
    * <li> {@link #isRemoveSupported()}
  + * <li> {@link #isGetStructuralModify()}
    * <li> {@link #isAllowDuplicateValues()}
    * <li> {@link #isAllowNullKey()}
    * <li> {@link #isAllowNullValue()}
  @@ -249,6 +250,18 @@
       /**
        * Returns true if the maps produced by 
        * {@link #makeEmptyMap()} and {@link #makeFullMap()}
  +     * can cause structural modification on a get(). The example is LRUMap.
  +     * <p>
  +     * Default implementation returns false.
  +     * Override if your map class structurally modifies on get.
  +     */
  +    public boolean isGetStructuralModify() {
  +        return false;
  +    }
  +
  +    /**
  +     * Returns true if the maps produced by 
  +     * {@link #makeEmptyMap()} and {@link #makeFullMap()}
        * supports null keys.
        * <p>
        * Default implementation returns true.
  @@ -1159,6 +1172,9 @@
               // Entry set should only support remove if map does
               return AbstractTestMap.this.isRemoveSupported();
           }
  +        public boolean isGetStructuralModify() {
  +            return AbstractTestMap.this.isGetStructuralModify();
  +        }
           public boolean supportsEmptyCollections() {
               return AbstractTestMap.this.supportsEmptyCollections();
           }
  @@ -1186,7 +1202,9 @@
                   Map.Entry entry = (Map.Entry) it.next();
                   assertEquals(true, AbstractTestMap.this.map.containsKey(entry.getKey()));
                   assertEquals(true, AbstractTestMap.this.map.containsValue(entry.getValue()));
  -                assertEquals(AbstractTestMap.this.map.get(entry.getKey()), entry.getValue());
  +                if (isGetStructuralModify() == false) {
  +                    assertEquals(AbstractTestMap.this.map.get(entry.getKey()), entry.getValue());
  +                }
                   count++;
               }
               assertEquals(collection.size(), count);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org