You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/07/20 01:27:42 UTC

svn commit: r219808 - in /maven/components/trunk/maven-artifact/src: main/java/org/apache/maven/artifact/versioning/VersionRange.java test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java

Author: brett
Date: Tue Jul 19 16:27:41 2005
New Revision: 219808

URL: http://svn.apache.org/viewcvs?rev=219808&view=rev
Log:
PR: MNG-505
test multiple ranges on each side

Modified:
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
    maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java?rev=219808&r1=219807&r2=219808&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java Tue Jul 19 16:27:41 2005
@@ -219,7 +219,7 @@
 
     private List intersection( List r1, List r2 )
     {
-        List restrictions = new ArrayList( Math.min( r1.size(), r2.size() ) );
+        List restrictions = new ArrayList( r1.size() + r2.size() );
         Iterator i1 = r1.iterator();
         Iterator i2 = r2.iterator();
         Restriction res1 = (Restriction) i1.next();

Modified: maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java?rev=219808&r1=219807&r2=219808&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java (original)
+++ maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java Tue Jul 19 16:27:41 2005
@@ -411,7 +411,179 @@
         restrictions = mergedRange.getRestrictions();
         assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
 
-        // TODO: multiple on one side, multiple on both sides, boundaries
+        range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" );
+        range2 = VersionRange.createFromVersionSpec( "[1.1]" );
+        mergedRange = range1.restrict( range2 );
+        assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+        restrictions = mergedRange.getRestrictions();
+        assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+        restriction = (Restriction) restrictions.get( 0 );
+        assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.1", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+        range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" );
+        range2 = VersionRange.createFromVersionSpec( "[1.4]" );
+        mergedRange = range1.restrict( range2 );
+        assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+        restrictions = mergedRange.getRestrictions();
+        assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+        restriction = (Restriction) restrictions.get( 0 );
+        assertEquals( CHECK_LOWER_BOUND, "1.4", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+        range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" );
+        range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" );
+        mergedRange = range1.restrict( range2 );
+        assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+        restrictions = mergedRange.getRestrictions();
+        assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+        restriction = (Restriction) restrictions.get( 0 );
+        assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+        restriction = (Restriction) restrictions.get( 1 );
+        assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+        range1 = VersionRange.createFromVersionSpec( "[1.0,1.2),(1.3,1.5]" );
+        range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" );
+        mergedRange = range1.restrict( range2 );
+        assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+        restrictions = mergedRange.getRestrictions();
+        assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+        restriction = (Restriction) restrictions.get( 0 );
+        assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+        assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+        restriction = (Restriction) restrictions.get( 1 );
+        assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+        assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+        range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" );
+        range2 = VersionRange.createFromVersionSpec( "(1.1,1.4)" );
+        mergedRange = range1.restrict( range2 );
+        assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+        restrictions = mergedRange.getRestrictions();
+        assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+        restriction = (Restriction) restrictions.get( 0 );
+        assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+        assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+        restriction = (Restriction) restrictions.get( 1 );
+        assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+        assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+        range1 = VersionRange.createFromVersionSpec( "[1.0,1.2),(1.3,1.5]" );
+        range2 = VersionRange.createFromVersionSpec( "(1.1,1.4)" );
+        mergedRange = range1.restrict( range2 );
+        assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+        restrictions = mergedRange.getRestrictions();
+        assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+        restriction = (Restriction) restrictions.get( 0 );
+        assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+        assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+        assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+        restriction = (Restriction) restrictions.get( 1 );
+        assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+        assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+        assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+        range1 = VersionRange.createFromVersionSpec( "(,1.1),(1.4,)" );
+        range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" );
+        mergedRange = range1.restrict( range2 );
+        assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+        restrictions = mergedRange.getRestrictions();
+        assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
+
+        range1 = VersionRange.createFromVersionSpec( "(,1.1],[1.4,)" );
+        range2 = VersionRange.createFromVersionSpec( "(1.1,1.4)" );
+        mergedRange = range1.restrict( range2 );
+        assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+        restrictions = mergedRange.getRestrictions();
+        assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
+
+        range1 = VersionRange.createFromVersionSpec( "[,1.1],[1.4,]" );
+        range2 = VersionRange.createFromVersionSpec( "[1.2,1.3]" );
+        mergedRange = range1.restrict( range2 );
+        assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+        restrictions = mergedRange.getRestrictions();
+        assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
+
+        range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" );
+        range2 = VersionRange.createFromVersionSpec( "[1.1,1.4],[1.6,]" );
+        mergedRange = range1.restrict( range2 );
+        assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+        restrictions = mergedRange.getRestrictions();
+        assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+        restriction = (Restriction) restrictions.get( 0 );
+        assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+        restriction = (Restriction) restrictions.get( 1 );
+        assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+        range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" );
+        range2 = VersionRange.createFromVersionSpec( "[1.1,1.4],[1.5,]" );
+        mergedRange = range1.restrict( range2 );
+        assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+        restrictions = mergedRange.getRestrictions();
+        assertEquals( CHECK_NUM_RESTRICTIONS, 3, restrictions.size() );
+        restriction = (Restriction) restrictions.get( 0 );
+        assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+        restriction = (Restriction) restrictions.get( 1 );
+        assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+        restriction = (Restriction) restrictions.get( 2 );
+        assertEquals( CHECK_LOWER_BOUND, "1.5", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.5", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+        range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.7]" );
+        range2 = VersionRange.createFromVersionSpec( "[1.1,1.4],[1.5,1.6]" );
+        mergedRange = range1.restrict( range2 );
+        assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+        restrictions = mergedRange.getRestrictions();
+        assertEquals( CHECK_NUM_RESTRICTIONS, 3, restrictions.size() );
+        restriction = (Restriction) restrictions.get( 0 );
+        assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+        restriction = (Restriction) restrictions.get( 1 );
+        assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+        restriction = (Restriction) restrictions.get( 2 );
+        assertEquals( CHECK_LOWER_BOUND, "1.5", restriction.getLowerBound().toString() );
+        assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+        assertEquals( CHECK_UPPER_BOUND, "1.6", restriction.getUpperBound().toString() );
+        assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
     }
 
     private void checkInvalidRange( String version )



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org