You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ma...@apache.org on 2007/10/12 17:38:40 UTC

svn commit: r584191 - /maven/shared/trunk/maven-dependency-tree/src/test/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilderTest.java

Author: markh
Date: Fri Oct 12 08:37:48 2007
New Revision: 584191

URL: http://svn.apache.org/viewvc?rev=584191&view=rev
Log:
Reinstated scope conflict tests now that the assertion code is fixed, although still not convinced by the resultant tree.

Modified:
    maven/shared/trunk/maven-dependency-tree/src/test/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilderTest.java

Modified: maven/shared/trunk/maven-dependency-tree/src/test/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-tree/src/test/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilderTest.java?rev=584191&r1=584190&r2=584191&view=diff
==============================================================================
--- maven/shared/trunk/maven-dependency-tree/src/test/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilderTest.java (original)
+++ maven/shared/trunk/maven-dependency-tree/src/test/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilderTest.java Fri Oct 12 08:37:48 2007
@@ -285,75 +285,136 @@
         assertDependencyTree( expectedRootNode, project );
     }
 
-    // TODO: fix when discussion resolved: http://www.mail-archive.com/dev@maven.apache.org/msg68011.html
-    /*
-    public void testProjectWithConflictDependencyScope() throws DependencyTreeBuilderException
+    /**
+     * Tests building a tree for a project with a dependency that has conflicting scopes, where the winner is
+     * encountered first:
+     * 
+     * <pre>
+     * g:p:t:1
+     * \- g:a:t:1
+     *    +- g:b:t:1
+     *    |  \- g:c:t:1:compile
+     *    \- (g:c:t:1:compile - scope updated from test; omitted for duplicate)
+     * </pre>
+     *
+     * @throws DependencyTreeBuilderException
+     */
+    public void testProjectWithConflictDependencyScopeFirstWins() throws DependencyTreeBuilderException
     {
         Artifact projectArtifact = createArtifact( "g:p:t:1" );
         Artifact childArtifact = createArtifact( "g:a:t:1" );
-        Artifact nearestArtifact = createArtifact( "g:c:t:1:test" );
         Artifact grandchildArtifact = createArtifact( "g:b:t:1" );
         Artifact farthestArtifact = createArtifact( "g:c:t:1:compile" );
-        addArtifactMetadata( childArtifact, new Artifact[] { nearestArtifact, grandchildArtifact } );
+        Artifact nearestArtifact = createArtifact( "g:c:t:1:test" );
+        addArtifactMetadata( childArtifact, new Artifact[] { grandchildArtifact, nearestArtifact } );
         addArtifactMetadata( grandchildArtifact, farthestArtifact );
 
         MavenProject project = createProject( projectArtifact, new Artifact[] { childArtifact } );
 
-        // TODO: i would have expected this..
-//        DependencyNode expectedRootNode = createNode( "g:p:t:1" );
-//        DependencyNode childArtifactNode = createNode( "g:a:t:1" );
-//        expectedRootNode.addChild( childArtifactNode );
-//        DependencyNode nearestArtifactNode = createNode( "g:c:t:1:compile" );
-//        nearestArtifactNode.setOriginalScope( "test" );
-//        childArtifactNode.addChild( nearestArtifactNode );
-//        DependencyNode grandchildArtifactNode = createNode( "g:b:t:1" );
-//        childArtifactNode.addChild( grandchildArtifactNode );
-//        grandchildArtifactNode.addChild( createNode( "g:c:t:1:compile", DependencyNode.OMITTED_FOR_DUPLICATE, nearestArtifactNode.getArtifact() ) );
-
+        /*
+         * TODO: Not entirely convinced that the expected tree is correct - I would have expected:
+         * 
+         * <pre>
+         * g:p:t:1
+         * \- g:a:t:1
+         *    +- g:b:t:1
+         *    |  \- (g:c:t:1:compile - omitted for duplicate)
+         *    \- g:c:t:1:compile (scope updated from test)
+         * </pre>
+         * 
+         * @see http://www.mail-archive.com/dev@maven.apache.org/msg68011.html
+         */
+        /*
         DependencyNode expectedRootNode = createNode( "g:p:t:1" );
         DependencyNode childArtifactNode = createNode( "g:a:t:1" );
         expectedRootNode.addChild( childArtifactNode );
-        DependencyNode farthestArtifactNode = createNode( "g:c:t:1:compile" );
-        DependencyNode nearestArtifactNode = createNode( "g:c:t:1:compile", DependencyNode.OMITTED_FOR_DUPLICATE, farthestArtifactNode.getArtifact() );
+        DependencyNode grandchildArtifactNode = createNode( "g:b:t:1" );
+        childArtifactNode.addChild( grandchildArtifactNode );
+        DependencyNode nearestArtifactNode = createNode( "g:c:t:1:compile" );
+        DependencyNode farthestArtifactNode = createNode( "g:c:t:1:compile", DependencyNode.OMITTED_FOR_DUPLICATE, nearestArtifactNode.getArtifact() );
+        grandchildArtifactNode.addChild( farthestArtifactNode );
         nearestArtifactNode.setOriginalScope( "test" );
         childArtifactNode.addChild( nearestArtifactNode );
+        */
+
+        DependencyNode expectedRootNode = createNode( "g:p:t:1" );
+        DependencyNode childArtifactNode = createNode( "g:a:t:1" );
+        expectedRootNode.addChild( childArtifactNode );
         DependencyNode grandchildArtifactNode = createNode( "g:b:t:1" );
         childArtifactNode.addChild( grandchildArtifactNode );
+        DependencyNode farthestArtifactNode = createNode( "g:c:t:1:compile" );
         grandchildArtifactNode.addChild( farthestArtifactNode );
+        DependencyNode nearestArtifactNode = createNode( "g:c:t:1:compile", DependencyNode.OMITTED_FOR_DUPLICATE, farthestArtifactNode.getArtifact() );
+        nearestArtifactNode.setOriginalScope( "test" );
+        childArtifactNode.addChild( nearestArtifactNode );
         
         assertDependencyTree( expectedRootNode, project );
     }
-    */
 
-    // TODO: fix when discussion resolved: http://www.mail-archive.com/dev@maven.apache.org/msg68011.html
-    /*
-    public void testProjectWithConflictDependencyScopeReversedOrder() throws DependencyTreeBuilderException
+    /**
+     * Tests building a tree for a project with a dependency that has conflicting scopes, where the winner is
+     * encountered last:
+     * 
+     * <pre>
+     * g:p:t:1
+     * \- g:a:t:1
+     *    +- (g:c:t:1:compile - scope updated from test; omitted for duplicate)
+     *    \- g:b:t:1
+     *       \- g:c:t:1:compile
+     * </pre>
+     *
+     * @throws DependencyTreeBuilderException
+     */
+    public void testProjectWithConflictDependencyScopeLastWins() throws DependencyTreeBuilderException
     {
         Artifact projectArtifact = createArtifact( "g:p:t:1" );
         Artifact childArtifact = createArtifact( "g:a:t:1" );
         Artifact nearestArtifact = createArtifact( "g:c:t:1:test" );
         Artifact grandchildArtifact = createArtifact( "g:b:t:1" );
         Artifact farthestArtifact = createArtifact( "g:c:t:1:compile" );
-        addArtifactMetadata( childArtifact, new Artifact[] { grandchildArtifact, nearestArtifact } );
+        addArtifactMetadata( childArtifact, new Artifact[] { nearestArtifact, grandchildArtifact } );
         addArtifactMetadata( grandchildArtifact, farthestArtifact );
 
         MavenProject project = createProject( projectArtifact, new Artifact[] { childArtifact } );
 
-        // TODO: add expected results as per above test method
+        /*
+         * TODO: Not entirely convinced that the expected tree is correct - I would have expected:
+         * 
+         * <pre>
+         * g:p:t:1
+         * \- g:a:t:1
+         *    +- g:c:t:1:compile (scope updated from test)
+         *    \- g:b:t:1
+         *       \- (g:c:t:1:compile - omitted for duplicate)
+         * </pre>
+         * 
+         * @see http://www.mail-archive.com/dev@maven.apache.org/msg68011.html
+         */
+        /*
         DependencyNode expectedRootNode = createNode( "g:p:t:1" );
         DependencyNode childArtifactNode = createNode( "g:a:t:1" );
         expectedRootNode.addChild( childArtifactNode );
+        DependencyNode nearestArtifactNode = createNode( "g:c:t:1:compile" );
+        nearestArtifactNode.setOriginalScope( "test" );
+        childArtifactNode.addChild( nearestArtifactNode );
         DependencyNode grandchildArtifactNode = createNode( "g:b:t:1" );
         childArtifactNode.addChild( grandchildArtifactNode );
+        grandchildArtifactNode.addChild( createNode( "g:c:t:1:compile", DependencyNode.OMITTED_FOR_DUPLICATE, nearestArtifactNode.getArtifact() ) );
+        */
+        
+        DependencyNode expectedRootNode = createNode( "g:p:t:1" );
+        DependencyNode childArtifactNode = createNode( "g:a:t:1" );
+        expectedRootNode.addChild( childArtifactNode );
         DependencyNode farthestArtifactNode = createNode( "g:c:t:1:compile" );
-        grandchildArtifactNode.addChild( farthestArtifactNode );
         DependencyNode nearestArtifactNode = createNode( "g:c:t:1:compile", DependencyNode.OMITTED_FOR_DUPLICATE, farthestArtifactNode.getArtifact() );
         nearestArtifactNode.setOriginalScope( "test" );
         childArtifactNode.addChild( nearestArtifactNode );
+        DependencyNode grandchildArtifactNode = createNode( "g:b:t:1" );
+        childArtifactNode.addChild( grandchildArtifactNode );
+        grandchildArtifactNode.addChild( farthestArtifactNode );
         
         assertDependencyTree( expectedRootNode, project );
     }
-    */
 
     /**
      * Tests building a tree for a project with one transitive dependency whose version is fixed in dependency