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