[ 
https://issues.apache.org/jira/browse/COLLECTIONS-811?focusedWorklogId=763728&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-763728
 ]

ASF GitHub Bot logged work on COLLECTIONS-811:
----------------------------------------------

                Author: ASF GitHub Bot
            Created on: 28/Apr/22 17:19
            Start Date: 28/Apr/22 17:19
    Worklog Time Spent: 10m 
      Work Description: ben-manes commented on code in PR #301:
URL: 
https://github.com/apache/commons-collections/pull/301#discussion_r861137680


##########
src/test/java/org/apache/commons/collections4/GuavaTestlibTest.java:
##########
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.collections4;
+
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.commons.collections4.map.HashedMap;
+import org.apache.commons.collections4.map.LRUMap;
+import org.apache.commons.collections4.map.LinkedMap;
+import org.apache.commons.collections4.map.ReferenceMap;
+
+import com.google.common.collect.testing.MapTestSuiteBuilder;
+import com.google.common.collect.testing.TestStringMapGenerator;
+import com.google.common.collect.testing.features.CollectionFeature;
+import com.google.common.collect.testing.features.CollectionSize;
+import com.google.common.collect.testing.features.MapFeature;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * This test uses Google's Guava Testlib testing libraries to validate the
+ * contract of collection classes in Commons Collections. This was introduced
+ * after COLLECTIONS-802, where the issue reported was found with Testlib,
+ * with thanks to Ben Manes.
+ *
+ * @since 4.5.0
+ * @see <a 
href="https://github.com/google/guava/tree/master/guava-testlib";>https://github.com/google/guava/tree/master/guava-testlib</a>
+ * @see <a 
href="https://issues.apache.org/jira/browse/COLLECTIONS-802";>https://issues.apache.org/jira/browse/COLLECTIONS-802</a>
+ */
+public final class GuavaTestlibTest extends TestCase {
+
+    public static Test suite() {

Review Comment:
   The collection tests are JUnit3-based, and JUnit 4/5 have runners for 
supporting their older versions. Since those versions are not backwards 
compatible otherwise, it's a framework limitation. I think it is unlikely for 
Guava to revise the tests as it works well enough, even if old code.
   
   FYI there are more test cases you could add (List, Set, etc) and I only did 
a quick check for Maps. (I also 
[borrowed](https://github.com/ben-manes/caffeine/tree/master/caffeine/src/test/java/com/github/benmanes/caffeine)
 your tests for my implementation as another sanity check)





Issue Time Tracking
-------------------

    Worklog Id:     (was: 763728)
    Time Spent: 1h 10m  (was: 1h)

> Consider integration Guava testlib tests
> ----------------------------------------
>
>                 Key: COLLECTIONS-811
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-811
>             Project: Commons Collections
>          Issue Type: Test
>    Affects Versions: 4.4
>            Reporter: Bruno P. Kinoshita
>            Assignee: Bruno P. Kinoshita
>            Priority: Minor
>             Fix For: 4.5
>
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> In COLLECTIONS-802 an issue reported was found with the help of Google Guava 
> testlib tests.
> Maybe we could either have something similar (i.e. build ourselves?), use 
> Google Guava's testlib, or find another similar solution. From what I 
> understood, it uses a factory function to create an implementation of a 
> collection interface (e.g. Map) and then runs a series of functional tests 
> over the created object, failing tests if a contract is broken (e.g. 
> iterating a map doesn't leave the next-object as null, as it was the case of 
> the 802 issue).



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to