You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2007/03/15 02:18:53 UTC

svn commit: r518422 - in /maven/plugins/branches/maven-artifact-version-range-fix/src: main/java/org/apache/maven/artifact/versioning/VersionRange.java test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java

Author: brianf
Date: Wed Mar 14 18:18:52 2007
New Revision: 518422

URL: http://svn.apache.org/viewvc?view=rev&rev=518422
Log:
tests and fixes for versionrange.contains with a singular version

Modified:
    maven/plugins/branches/maven-artifact-version-range-fix/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
    maven/plugins/branches/maven-artifact-version-range-fix/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java

Modified: maven/plugins/branches/maven-artifact-version-range-fix/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-artifact-version-range-fix/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java?view=diff&rev=518422&r1=518421&r2=518422
==============================================================================
--- maven/plugins/branches/maven-artifact-version-range-fix/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java (original)
+++ maven/plugins/branches/maven-artifact-version-range-fix/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java Wed Mar 14 18:18:52 2007
@@ -533,13 +533,24 @@
     public boolean containsVersion( ArtifactVersion version )
     {
         boolean matched = false;
-        for ( Iterator i = restrictions.iterator(); i.hasNext() && !matched; )
+
+        if ( this.recommendedVersion == null )
         {
-            Restriction restriction = (Restriction) i.next();
-            if ( restriction.containsVersion( version ) )
+
+            for ( Iterator i = restrictions.iterator(); i.hasNext() && !matched; )
             {
-                matched = true;
+                Restriction restriction = (Restriction) i.next();
+                if ( restriction.containsVersion( version ) )
+                {
+                    matched = true;
+                }
             }
+        }
+        else
+        {
+//          only singular versions ever have a recommendedVersion
+            int compareTo = recommendedVersion.compareTo( version );
+            matched = (compareTo == 0);
         }
         return matched;
     }

Modified: maven/plugins/branches/maven-artifact-version-range-fix/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-artifact-version-range-fix/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java?view=diff&rev=518422&r1=518421&r2=518422
==============================================================================
--- maven/plugins/branches/maven-artifact-version-range-fix/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java (original)
+++ maven/plugins/branches/maven-artifact-version-range-fix/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java Wed Mar 14 18:18:52 2007
@@ -19,10 +19,10 @@
  * under the License.
  */
 
-import junit.framework.TestCase;
-
 import java.util.List;
 
+import junit.framework.TestCase;
+
 /**
  * Tests version range construction.
  *
@@ -67,6 +67,7 @@
         assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
         assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
 
+        //why is this not the same as the test above? Is 1.0 not the same as [1.0] in functionality?
         range = VersionRange.createFromVersionSpec( "[1.0]" );
         restrictions = range.getRestrictions();
         assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
@@ -624,6 +625,29 @@
         assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
     }
 
+    public void testContains() throws InvalidVersionSpecificationException
+    {
+        ArtifactVersion actualVersion = new DefaultArtifactVersion( "2.0.5" );
+        assertTrue( enforceVersion( "2.0.5", actualVersion ) );
+        assertTrue( enforceVersion( "[2.0.5]", actualVersion ) );
+        assertFalse( enforceVersion( "2.0.6", actualVersion ) );
+        assertFalse( enforceVersion( "[2.0.6]", actualVersion ) );
+        assertTrue( enforceVersion( "[2.0,2.1]", actualVersion ) );
+        assertFalse( enforceVersion( "[2.0,2.0.3]", actualVersion ) );
+        assertTrue( enforceVersion( "[2.0,2.0.5]", actualVersion ) );
+        assertFalse( enforceVersion( "[2.0,2.0.5)", actualVersion ) );
+    }
+
+    public boolean enforceVersion( String requiredVersionRange, ArtifactVersion actualVersion )
+        throws InvalidVersionSpecificationException
+    {
+        VersionRange vr = null;
+
+        vr = VersionRange.createFromVersionSpec( requiredVersionRange );
+
+        return vr.containsVersion( actualVersion );
+    }
+    
     private void checkInvalidRange( String version )
     {
         try