This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-collections.git


The following commit(s) were added to refs/heads/master by this push:
     new 6d188523f Better AbstractMapTest.testMapContainsValue()
6d188523f is described below

commit 6d188523fb7acc9864e67959678187f5a09e365a
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sat Sep 28 10:17:09 2024 -0400

    Better AbstractMapTest.testMapContainsValue()
    
    Add TODO in DualTreeBidiMap2Test.isAllowNullValueGet()
---
 .../collections4/bidimap/AbstractBidiMapTest.java  | 10 ++++++++
 .../AbstractOrderedBidiMapDecoratorTest.java       |  7 +++++-
 .../bidimap/AbstractSortedBidiMapTest.java         |  7 +++++-
 .../collections4/bidimap/DualTreeBidiMap2Test.java |  8 ++++++-
 .../collections4/bidimap/TreeBidiMapTest.java      |  7 +++++-
 .../bidimap/UnmodifiableOrderedBidiMapTest.java    |  7 +++++-
 .../bidimap/UnmodifiableSortedBidiMapTest.java     |  7 +++++-
 .../commons/collections4/map/AbstractMapTest.java  | 27 +++++++++++++++++++++-
 .../collections4/map/AbstractSortedMapTest.java    | 10 ++++++++
 .../collections4/map/ReferenceIdentityMapTest.java |  7 +++++-
 .../commons/collections4/map/ReferenceMapTest.java |  7 +++++-
 11 files changed, 95 insertions(+), 9 deletions(-)

diff --git 
a/src/test/java/org/apache/commons/collections4/bidimap/AbstractBidiMapTest.java
 
b/src/test/java/org/apache/commons/collections4/bidimap/AbstractBidiMapTest.java
index 71961f7b3..079884fe9 100644
--- 
a/src/test/java/org/apache/commons/collections4/bidimap/AbstractBidiMapTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/bidimap/AbstractBidiMapTest.java
@@ -199,6 +199,16 @@ public abstract class AbstractBidiMapTest<K, V> extends 
AbstractIterableMapTest<
             return main.isAllowNullValue();
         }
 
+        @Override
+        public boolean isAllowNullValueGet() {
+            return main.isAllowNullValueGet();
+        }
+
+        @Override
+        public boolean isAllowNullValuePut() {
+            return main.isAllowNullValuePut();
+        }
+
         @Override
         public boolean isPutAddSupported() {
             return main.isPutAddSupported();
diff --git 
a/src/test/java/org/apache/commons/collections4/bidimap/AbstractOrderedBidiMapDecoratorTest.java
 
b/src/test/java/org/apache/commons/collections4/bidimap/AbstractOrderedBidiMapDecoratorTest.java
index b8d22a969..4f10c4324 100644
--- 
a/src/test/java/org/apache/commons/collections4/bidimap/AbstractOrderedBidiMapDecoratorTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/bidimap/AbstractOrderedBidiMapDecoratorTest.java
@@ -65,7 +65,12 @@ public class AbstractOrderedBidiMapDecoratorTest<K, V>
     }
 
     @Override
-    public boolean isAllowNullValue() {
+    public boolean isAllowNullValueGet() {
+        return false;
+    }
+
+    @Override
+    public boolean isAllowNullValuePut() {
         return false;
     }
 
diff --git 
a/src/test/java/org/apache/commons/collections4/bidimap/AbstractSortedBidiMapTest.java
 
b/src/test/java/org/apache/commons/collections4/bidimap/AbstractSortedBidiMapTest.java
index 61b2fd7f6..f11f8fc9c 100644
--- 
a/src/test/java/org/apache/commons/collections4/bidimap/AbstractSortedBidiMapTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/bidimap/AbstractSortedBidiMapTest.java
@@ -94,7 +94,12 @@ public abstract class AbstractSortedBidiMapTest<K extends 
Comparable<K>, V exten
     }
 
     @Override
-    public boolean isAllowNullValue() {
+    public boolean isAllowNullValueGet() {
+        return false;
+    }
+
+    @Override
+    public boolean isAllowNullValuePut() {
         return false;
     }
 
diff --git 
a/src/test/java/org/apache/commons/collections4/bidimap/DualTreeBidiMap2Test.java
 
b/src/test/java/org/apache/commons/collections4/bidimap/DualTreeBidiMap2Test.java
index 45890f11b..5329b861e 100644
--- 
a/src/test/java/org/apache/commons/collections4/bidimap/DualTreeBidiMap2Test.java
+++ 
b/src/test/java/org/apache/commons/collections4/bidimap/DualTreeBidiMap2Test.java
@@ -37,7 +37,7 @@ import 
org.apache.commons.collections4.comparators.ReverseComparator;
 import org.junit.jupiter.api.Test;
 
 /**
- * JUnit tests.
+ * Tests {@link DualTreeBidiMap}.
  */
 @SuppressWarnings("boxing")
 public class DualTreeBidiMap2Test<K extends Comparable<K>, V extends 
Comparable<V>> extends AbstractSortedBidiMapTest<K, V> {
@@ -69,6 +69,12 @@ public class DualTreeBidiMap2Test<K extends Comparable<K>, V 
extends Comparable<
         return new String[] { recursiveTest };
     }
 
+    @Override
+    public boolean isAllowNullValueGet() {
+        // TODO Is this a bug or a feature?
+        return true;
+    }
+
     @Override
     public TreeMap<K, V> makeConfirmedMap() {
         return new TreeMap<>(new 
ReverseComparator<>(ComparableComparator.<K>comparableComparator()));
diff --git 
a/src/test/java/org/apache/commons/collections4/bidimap/TreeBidiMapTest.java 
b/src/test/java/org/apache/commons/collections4/bidimap/TreeBidiMapTest.java
index 9059f8854..17fa5ee12 100644
--- a/src/test/java/org/apache/commons/collections4/bidimap/TreeBidiMapTest.java
+++ b/src/test/java/org/apache/commons/collections4/bidimap/TreeBidiMapTest.java
@@ -48,7 +48,12 @@ public class TreeBidiMapTest<K extends Comparable<K>, V 
extends Comparable<V>> e
     }
 
     @Override
-    public boolean isAllowNullValue() {
+    public boolean isAllowNullValueGet() {
+        return false;
+    }
+
+    @Override
+    public boolean isAllowNullValuePut() {
         return false;
     }
 
diff --git 
a/src/test/java/org/apache/commons/collections4/bidimap/UnmodifiableOrderedBidiMapTest.java
 
b/src/test/java/org/apache/commons/collections4/bidimap/UnmodifiableOrderedBidiMapTest.java
index 580b58843..882c60fb5 100644
--- 
a/src/test/java/org/apache/commons/collections4/bidimap/UnmodifiableOrderedBidiMapTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/bidimap/UnmodifiableOrderedBidiMapTest.java
@@ -50,7 +50,12 @@ public class UnmodifiableOrderedBidiMapTest<K extends 
Comparable<K>, V extends C
     }
 
     @Override
-    public boolean isAllowNullValue() {
+    public boolean isAllowNullValueGet() {
+        return false;
+    }
+
+    @Override
+    public boolean isAllowNullValuePut() {
         return false;
     }
 
diff --git 
a/src/test/java/org/apache/commons/collections4/bidimap/UnmodifiableSortedBidiMapTest.java
 
b/src/test/java/org/apache/commons/collections4/bidimap/UnmodifiableSortedBidiMapTest.java
index d2287d889..403b7a24d 100644
--- 
a/src/test/java/org/apache/commons/collections4/bidimap/UnmodifiableSortedBidiMapTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/bidimap/UnmodifiableSortedBidiMapTest.java
@@ -48,7 +48,12 @@ public class UnmodifiableSortedBidiMapTest<K extends 
Comparable<K>, V extends Co
     }
 
     @Override
-    public boolean isAllowNullValue() {
+    public boolean isAllowNullValueGet() {
+        return false;
+    }
+
+    @Override
+    public boolean isAllowNullValuePut() {
         return false;
     }
 
diff --git 
a/src/test/java/org/apache/commons/collections4/map/AbstractMapTest.java 
b/src/test/java/org/apache/commons/collections4/map/AbstractMapTest.java
index 76bd9d0de..53682fe3e 100644
--- a/src/test/java/org/apache/commons/collections4/map/AbstractMapTest.java
+++ b/src/test/java/org/apache/commons/collections4/map/AbstractMapTest.java
@@ -718,8 +718,29 @@ public abstract class AbstractMapTest<K, V> extends 
AbstractObjectTest {
      * Returns true if the maps produced by {@link #makeObject()} and {@link 
#makeFullMap()} supports null values.
      * <p>
      * Default implementation returns true. Override if your collection class 
does not support null values.
+     * </p>
      */
     public boolean isAllowNullValue() {
+        return isAllowNullValueGet() && isAllowNullValuePut();
+    }
+
+    /**
+     * Returns true if the maps produced by {@link #makeObject()} and {@link 
#makeFullMap()} supports null values.
+     * <p>
+     * Default implementation returns true. Override if your collection class 
does not support null values.
+     * </p>
+     */
+    public boolean isAllowNullValueGet() {
+        return true;
+    }
+
+    /**
+     * Returns true if the maps produced by {@link #makeObject()} and {@link 
#makeFullMap()} supports null values.
+     * <p>
+     * Default implementation returns true. Override if your collection class 
does not support null values.
+     * </p>
+     */
+    public boolean isAllowNullValuePut() {
         return true;
     }
 
@@ -1637,8 +1658,12 @@ public abstract class AbstractMapTest<K, V> extends 
AbstractObjectTest {
     @Test
     public void testMapContainsValue() {
         final Object[] values = getSampleValues();
-
         resetEmpty();
+        if (isAllowNullValueGet()) {
+            assertFalse(getMap().containsValue(null));
+        } else {
+            assertThrows(NullPointerException.class, () -> 
getMap().containsValue(null));
+        }
         for (final Object value : values) {
             assertFalse(getMap().containsValue(value), "Empty map must not 
contain value");
         }
diff --git 
a/src/test/java/org/apache/commons/collections4/map/AbstractSortedMapTest.java 
b/src/test/java/org/apache/commons/collections4/map/AbstractSortedMapTest.java
index 12770b531..311c9880a 100644
--- 
a/src/test/java/org/apache/commons/collections4/map/AbstractSortedMapTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/map/AbstractSortedMapTest.java
@@ -267,6 +267,16 @@ public abstract class AbstractSortedMapTest<K, V> extends 
AbstractMapTest<K, V>
             return main.isAllowNullValue();
         }
 
+        @Override
+        public boolean isAllowNullValueGet() {
+            return main.isAllowNullValueGet();
+        }
+
+        @Override
+        public boolean isAllowNullValuePut() {
+            return main.isAllowNullValuePut();
+        }
+
         @Override
         public boolean isPutAddSupported() {
             return main.isPutAddSupported();
diff --git 
a/src/test/java/org/apache/commons/collections4/map/ReferenceIdentityMapTest.java
 
b/src/test/java/org/apache/commons/collections4/map/ReferenceIdentityMapTest.java
index 555928a6d..1a9f9f0d2 100644
--- 
a/src/test/java/org/apache/commons/collections4/map/ReferenceIdentityMapTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/map/ReferenceIdentityMapTest.java
@@ -104,7 +104,12 @@ public class ReferenceIdentityMapTest<K, V> extends 
AbstractIterableMapTest<K, V
     }
 
     @Override
-    public boolean isAllowNullValue() {
+    public boolean isAllowNullValueGet() {
+        return true;
+    }
+
+    @Override
+    public boolean isAllowNullValuePut() {
         return false;
     }
 
diff --git 
a/src/test/java/org/apache/commons/collections4/map/ReferenceMapTest.java 
b/src/test/java/org/apache/commons/collections4/map/ReferenceMapTest.java
index 345fceda1..0591cd3d0 100644
--- a/src/test/java/org/apache/commons/collections4/map/ReferenceMapTest.java
+++ b/src/test/java/org/apache/commons/collections4/map/ReferenceMapTest.java
@@ -238,7 +238,12 @@ public class ReferenceMapTest<K, V> extends 
AbstractIterableMapTest<K, V> {
     }
 
     @Override
-    public boolean isAllowNullValue() {
+    public boolean isAllowNullValueGet() {
+        return true;
+    }
+
+    @Override
+    public boolean isAllowNullValuePut() {
         return false;
     }
 

Reply via email to