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


Reply via email to