Author: jdcasey
Date: Mon Feb  9 21:40:35 2009
New Revision: 742749

URL: http://svn.apache.org/viewvc?rev=742749&view=rev
Log:
[MNG-3023] Updating integration test to check three distinct cases where 
sibling dependencies might be referenced.

Added:
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/consumer/
   (props changed)
      - copied from r742616, 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/project/main/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/
   (props changed)
      - copied from r742616, 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/project/dependency/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/java/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/java/org/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/java/org/apache/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/java/org/apache/maven/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/java/org/apache/maven/debug/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/java/org/apache/maven/debug/mng2720/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/java/org/apache/maven/debug/mng2720/App.java
   (with props)
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/pom.xml
   (contents, props changed)
      - copied, changed from r742616, 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/project/pom.xml
Removed:
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/plugin/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/project/dependency/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/project/main/
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/project/pom.xml
Modified:
    
maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
    
maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3023ReactorDependencyResolutionTest.java
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/consumer/pom.xml
    
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/pom.xml

Modified: 
maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
URL: 
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java?rev=742749&r1=742748&r2=742749&view=diff
==============================================================================
--- 
maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
 (original)
+++ 
maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
 Mon Feb  9 21:40:35 2009
@@ -208,6 +208,7 @@
         suite.addTestSuite( MavenITmng3106ProfileMultipleActivatorsTest.class 
);
         suite.addTestSuite( MavenITmng3099SettingsProfilesWithNoPomTest.class 
);
         suite.addTestSuite( MavenITmng3052DepRepoAggregationTest.class );
+        suite.addTestSuite( 
MavenITmng3023ReactorDependencyResolutionTest.class );
         suite.addTestSuite( MavenITmng3012CoreClassImportTest.class );
         suite.addTestSuite( MavenITmng2972OverridePluginDependencyTest.class );
         suite.addTestSuite( MavenITmng2926PluginPrefixOrderTest.class );

Modified: 
maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3023ReactorDependencyResolutionTest.java
URL: 
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3023ReactorDependencyResolutionTest.java?rev=742749&r1=742748&r2=742749&view=diff
==============================================================================
--- 
maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3023ReactorDependencyResolutionTest.java
 (original)
+++ 
maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3023ReactorDependencyResolutionTest.java
 Mon Feb  9 21:40:35 2009
@@ -23,11 +23,14 @@
 import org.apache.maven.it.util.ResourceExtractor;
 
 import java.io.File;
+import java.util.Iterator;
+import java.util.List;
 
 /**
  * This is a test set for <a 
href="http://jira.codehaus.org/browse/MNG-3023";>MNG-3023</a>
  * 
  * @author Mark Hobson
+ * @author jdcasey
  * @version $Id$
  */
 public class MavenITmng3023ReactorDependencyResolutionTest
@@ -35,20 +38,112 @@
 {
     /**
      * Test that reactor projects are included in dependency resolution.
+     * 
+     * In this pass, the dependency artifact should be missing from the local 
repository, and since
+     * the 'compile' phase has not been called, the dependency project 
artifact should not have a
+     * file associated with it. Therefore, the dependency artifact should fail 
to resolve, and the
+     * build should fail.
      */
-    public void testitMNG3023()
+    public void testitMNG3023A() throws Exception
+    {
+        File testDir = ResourceExtractor.simpleExtractResources( getClass(), 
"/mng-3023" );
+
+        // First pass. Make sure the dependency cannot be resolved.
+        Verifier verifier = new Verifier( testDir.getAbsolutePath() );
+        
+        verifier.deleteArtifact( "org.apache.maven.its.mng3023", "dependency", 
"1", "jar" );
+        
+        try
+        {
+            verifier.executeGoal( "initialize" );
+            fail( "Expected failure to resolve dependency artifact without at 
least calling 'compile' phase." );
+        }
+        catch ( VerificationException e )
+        {
+            // expected.
+        }
+        finally
+        {
+            verifier.resetStreams();
+        }
+    }
+
+    /**
+     * Test that reactor projects are included in dependency resolution.
+     * 
+     * I this pass, the dependency artifact should have the file 
$(basedir)/dependency/target/classes
+     * (a directory) associated with it, since the 'compile' phase has run. 
This location should be
+     * present in the compile classpath output from the 
maven-it-plugin-dependency-resolution:compile
+     * mojo execution.
+     */
+    public void testitMNG3023B()
+        throws Exception
+    {
+        File testDir = ResourceExtractor.simpleExtractResources( getClass(), 
"/mng-3023" );
+
+        Verifier verifier = new Verifier( testDir.getAbsolutePath() );
+        
+        verifier.deleteArtifact( "org.apache.maven.its.mng3023", "dependency", 
"1", "jar" );
+        
+        verifier.executeGoal( "compile" );
+        verifier.verifyErrorFreeLog();
+        verifier.resetStreams();
+
+        List compileClassPath = verifier.loadLines( 
"consumer/target/compile.classpath", "UTF-8" );
+        assertTrue( find( "dependency/target/classes", compileClassPath ) );
+        assertFalse( find( "dependency-1.jar", compileClassPath ) );
+    }
+
+    /**
+     * Test that reactor projects are included in dependency resolution.
+     * 
+     * I this pass, the dependency should have been installed, so the 
dependency artifact should have
+     * a file of .../dependency-1.jar associated with it, since the 'install' 
phase has run. This 
+     * location should be present in the compile classpath output from the 
+     * maven-it-plugin-dependency-resolution:compile mojo execution.
+     * 
+     * Afterwards, the a separate Maven call to the 'initialize' phase should 
succeed, since the
+     * dependency artifact has been installed locally. This second execution 
should use the jar file
+     * from the local repository in its classpath output.
+     */
+    public void testitMNG3023C()
         throws Exception
     {
-        File testDir = ResourceExtractor.simpleExtractResources( getClass(), 
"/mng-3023/plugin" );
+        File testDir = ResourceExtractor.simpleExtractResources( getClass(), 
"/mng-3023" );
+
         Verifier verifier = new Verifier( testDir.getAbsolutePath() );
+        
+        verifier.deleteArtifact( "org.apache.maven.its.mng3023", "dependency", 
"1", "jar" );
+        
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
         verifier.resetStreams();
 
-        testDir = ResourceExtractor.simpleExtractResources( getClass(), 
"/mng-3023/project" );
-        verifier = new Verifier( testDir.getAbsolutePath() );
-        verifier.executeGoal( 
"org.apache.maven.its.it0122:maven-it-it0122-plugin:1.0:test" );
+        List compileClassPath = verifier.loadLines( 
"consumer/target/compile.classpath", "UTF-8" );
+        assertTrue( find( "dependency-1.jar", compileClassPath ) );
+        assertFalse( find( "dependency/target/classes", compileClassPath ) );
+        
+        verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
         verifier.resetStreams();
+        
+        compileClassPath = verifier.loadLines( 
"consumer/target/compile.classpath", "UTF-8" );
+        assertTrue( find( "dependency-1.jar", compileClassPath ) );
+        assertFalse( find( "dependency/target/classes", compileClassPath ) );
+    }
+
+    private boolean find( String pathSubstr, List classPath )
+    {
+        for ( Iterator it = classPath.iterator(); it.hasNext(); )
+        {
+            String path = (String) it.next();
+
+            if ( path.indexOf( pathSubstr ) > -1 )
+            {
+                return true;
+            }
+        }
+
+        return false;
     }
 }

Propchange: 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/consumer/
------------------------------------------------------------------------------
    svn:mergeinfo = 

Modified: 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/consumer/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/consumer/pom.xml?rev=742749&r1=742616&r2=742749&view=diff
==============================================================================
--- 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/consumer/pom.xml
 (original)
+++ 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/consumer/pom.xml
 Mon Feb  9 21:40:35 2009
@@ -1,14 +1,40 @@
 <project>
   <modelVersion>4.0.0</modelVersion>
-  <name>Maven Integration Test :: it0122 :: Main</name>
-  <groupId>org.apache.maven.its.it0122</groupId>
-  <artifactId>maven-it-it0122-main</artifactId>
-  <version>1.0</version>
+  <parent>
+       <groupId>org.apache.maven.its.mng3023</groupId>
+       <artifactId>parent</artifactId>
+       <version>1</version>
+  </parent>
+  
+  <artifactId>consumer</artifactId>
+  
   <dependencies>
     <dependency>
-      <groupId>org.apache.maven.its.it0122</groupId>
-      <artifactId>maven-it-it0122-dependency</artifactId>
-      <version>1.0</version>
+      <groupId>org.apache.maven.its.mng3023</groupId>
+      <artifactId>dependency</artifactId>
+      <version>1</version>
     </dependency>
   </dependencies>
+  
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.its.plugins</groupId>
+        <artifactId>maven-it-plugin-dependency-resolution</artifactId>
+        <version>2.1-SNAPSHOT</version>
+        <executions>
+          <execution>
+            <id>compile-classpath</id>
+            <phase>initialize</phase>
+            <goals>
+              <goal>compile</goal>
+            </goals>
+            <configuration>
+              
<compileClassPath>${project.build.directory}/compile.classpath</compileClassPath>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 </project>

Propchange: 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/
------------------------------------------------------------------------------
    svn:mergeinfo = 

Modified: 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/pom.xml?rev=742749&r1=742616&r2=742749&view=diff
==============================================================================
--- 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/pom.xml
 (original)
+++ 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/pom.xml
 Mon Feb  9 21:40:35 2009
@@ -1,7 +1,10 @@
 <project>
   <modelVersion>4.0.0</modelVersion>
-  <name>Maven Integration Test :: it0122 :: Dependency</name>
-  <groupId>org.apache.maven.its.it0122</groupId>
-  <artifactId>maven-it-it0122-dependency</artifactId>
-  <version>1.0</version>
+  <parent>
+       <groupId>org.apache.maven.its.mng3023</groupId>
+       <artifactId>parent</artifactId>
+       <version>1</version>
+  </parent>
+  
+  <artifactId>dependency</artifactId>
 </project>

Added: 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/java/org/apache/maven/debug/mng2720/App.java
URL: 
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/java/org/apache/maven/debug/mng2720/App.java?rev=742749&view=auto
==============================================================================
--- 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/java/org/apache/maven/debug/mng2720/App.java
 (added)
+++ 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/java/org/apache/maven/debug/mng2720/App.java
 Mon Feb  9 21:40:35 2009
@@ -0,0 +1,13 @@
+package org.apache.maven.debug.mng2720;
+
+/**
+ * Hello world!
+ *
+ */
+public class App 
+{
+    public static void main( String[] args )
+    {
+        System.out.println( "Hello World!" );
+    }
+}

Propchange: 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/dependency/src/main/java/org/apache/maven/debug/mng2720/App.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/pom.xml
 (from r742616, 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/project/pom.xml)
URL: 
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/pom.xml?p2=maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/pom.xml&p1=maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/project/pom.xml&r1=742616&r2=742749&rev=742749&view=diff
==============================================================================
--- 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/project/pom.xml
 (original)
+++ 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/pom.xml
 Mon Feb  9 21:40:35 2009
@@ -1,13 +1,13 @@
 <project>
   <modelVersion>4.0.0</modelVersion>
-  <name>Maven Integration Test :: it0122</name> 
   <description>Test that reactor projects are included in dependency 
resolution.</description>
-  <groupId>org.apache.maven.its.it0122</groupId>
-  <artifactId>maven-it-it0122</artifactId>
+  <groupId>org.apache.maven.its.mng3023</groupId>
+  <artifactId>parent</artifactId>
+  <version>1</version>
   <packaging>pom</packaging>
-  <version>1.0</version>
+  
   <modules>
     <module>dependency</module>
-    <module>main</module>
+    <module>consumer</module>
   </modules>
 </project>

Propchange: 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3023/pom.xml
------------------------------------------------------------------------------
    svn:mergeinfo = 


Reply via email to