add generic TestMap test for http://issues.apache.org/bugzilla/show_bug.cgi?id=9573 (values isn't backed by map), but override the test in TestMultiHashMap for now

git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130860 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Rodney Waldhoff 2002-11-01 19:36:54 +00:00
parent 0cb8046cd3
commit aa959e46cf
2 changed files with 46 additions and 7 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/Attic/TestMap.java,v 1.21 2002/11/01 19:07:53 rwaldhoff Exp $
* $Revision: 1.21 $
* $Date: 2002/11/01 19:07:53 $
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/test/org/apache/commons/collections/Attic/TestMap.java,v 1.22 2002/11/01 19:36:54 rwaldhoff Exp $
* $Revision: 1.22 $
* $Date: 2002/11/01 19:36:54 $
*
* ====================================================================
*
@ -152,7 +152,7 @@ import java.util.Set;
* @author Michael Smith
* @author Rodney Waldhoff
* @author Paul Jack
* @version $Revision: 1.21 $ $Date: 2002/11/01 19:07:53 $
* @version $Revision: 1.22 $ $Date: 2002/11/01 19:36:54 $
*/
public abstract class TestMap extends TestObject {
@ -769,6 +769,36 @@ public abstract class TestMap extends TestObject {
verify();
}
/**
* Tests that the {@link Map#values} collection is backed by
* the underlying map by removing from the values collection
* and testing if the value was removed from the map.
* <p/>
* We should really test the "vice versa" case--that values removed
* from the map are removed from the values collection--also,
* but that's a more difficult test to construct (lacking a
* "removeValue" method.)
*
* @see http://issues.apache.org/bugzilla/show_bug.cgi?id=9573
*/
public void testValuesRemovedFromValuesCollectionAreRemovedFromMap() {
resetFull();
Object[] sampleValues = getSampleValues();
Collection values = map.values();
for(int i=0;i<sampleValues.length;i++) {
if(map.containsValue(sampleValues[i])) {
while(values.contains(sampleValues[i])) {
try {
values.remove(sampleValues[i]);
} catch(UnsupportedOperationException e) {
// if values.remove is unsupported, just skip this test
return;
}
}
assertTrue("Value should have been removed from the underlying map.",!map.containsValue(sampleValues[i]));
}
}
}
/**
* Utility methods to create an array of Map.Entry objects

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/TestMultiHashMap.java,v 1.6 2002/10/12 22:36:22 scolebourne Exp $
* $Revision: 1.6 $
* $Date: 2002/10/12 22:36:22 $
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/test/org/apache/commons/collections/TestMultiHashMap.java,v 1.7 2002/11/01 19:36:54 rwaldhoff Exp $
* $Revision: 1.7 $
* $Date: 2002/11/01 19:36:54 $
*
* ====================================================================
*
@ -268,6 +268,15 @@ public class TestMultiHashMap extends TestMap
public void testMapHashCode() {
}
// since the MultiHashMap.values Collection isn't currently
// backed by the map, we need to skip this test for now
// fix bug 9573 <http://issues.apache.org/bugzilla/show_bug.cgi?id=9573>
// and enable this test
public void testValuesRemovedFromValuesCollectionAreRemovedFromMap() {
// TODO: fix bug 9573 <http://issues.apache.org/bugzilla/show_bug.cgi?id=9573>
// and enable this test
}
// The verification for the map and its entry set must also be overridden
// because the values are not going to be the same as the values in the
// confirmed map (they're going to be collections of values instead).