You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/10/22 16:19:57 UTC

svn commit: r707085 - in /maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury: ./ src/main/java/org/apache/maven/mercury/ src/test/ src/test/java/ src/test/java/org/ src/test/java/org/apache/ src/test/java/org/apache/maven/ src/test/java/...

Author: sisbell
Date: Wed Oct 22 07:19:56 2008
New Revision: 707085

URL: http://svn.apache.org/viewvc?rev=707085&view=rev
Log:
Add unit tests for mercury.

Added:
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MavenDependencyProcessorTest.java
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MetadataReaderStub.java
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/child-withDepMng.xml
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/child.xml
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/parent.xml
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/simple.xml
Modified:
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/pom.xml
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java
    maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java

Modified: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/pom.xml?rev=707085&r1=707084&r2=707085&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/pom.xml (original)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/pom.xml Wed Oct 22 07:19:56 2008
@@ -43,5 +43,11 @@
   		<artifactId>maven-project-builder</artifactId>
   		<version>3.0-SNAPSHOT</version>
   	</dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.4</version>
+      <scope>test</scope>
+    </dependency>      
   </dependencies>
 </project>

Modified: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java?rev=707085&r1=707084&r2=707085&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java (original)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java Wed Oct 22 07:19:56 2008
@@ -36,9 +36,9 @@
 
         List<DomainModel> domainModels = new ArrayList<DomainModel>();
         try {
-            MavenDomainModel superPom =
-                    new MavenDomainModel(MavenDependencyProcessor.class.getResourceAsStream( "pom-4.0.0.xml" ));
-            domainModels.add(superPom);
+//            MavenDomainModel superPom =
+//                    new MavenDomainModel(MavenDependencyProcessor.class.getResourceAsStream( "pom-4.0.0.xml" ));
+//            domainModels.add(superPom);
 
             MavenDomainModel domainModel = new MavenDomainModel(mdReader.readMetadata(bmd));
             domainModels.add(domainModel);
@@ -66,6 +66,7 @@
             throws IOException, MetadataReaderException {
         List<DomainModel> domainModels = new ArrayList<DomainModel>();
         if (domainModel.hasParent()) {
+            System.out.println("HAS PARENT");
             MavenDomainModel parentDomainModel = new MavenDomainModel(mdReader.readMetadata(domainModel.getParentMetadata()));
             domainModels.add(parentDomainModel);
             domainModels.addAll(getParentsOfDomainModel(parentDomainModel, mdReader));

Modified: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java?rev=707085&r1=707084&r2=707085&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java (original)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java Wed Oct 22 07:19:56 2008
@@ -110,6 +110,7 @@
         String groupId = null, artifactId = null, version = null;
 
         for (ModelProperty mp : modelProperties) {
+            System.out.println(mp);
             if (mp.getUri().equals(ProjectUri.Parent.version)) {
                 version = mp.getValue();
             } else if (mp.getUri().equals(ProjectUri.Parent.artifactId)) {
@@ -123,6 +124,7 @@
         }
 
         if (groupId == null || artifactId == null || version == null) {
+            System.out.println(groupId + ":" + artifactId + ":" + version);
             return null;
         }
         parentMetadata = new ArtifactBasicMetadata();

Added: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MavenDependencyProcessorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MavenDependencyProcessorTest.java?rev=707085&view=auto
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MavenDependencyProcessorTest.java (added)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MavenDependencyProcessorTest.java Wed Oct 22 07:19:56 2008
@@ -0,0 +1,74 @@
+package org.apache.maven.mercury;
+import static junit.framework.Assert.*;
+import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
+import org.apache.maven.mercury.builder.api.MetadataReaderException;
+import org.junit.Before;
+
+import java.util.List;
+import java.util.Stack;
+import java.io.File;
+
+public class MavenDependencyProcessorTest {
+
+   // private static File resources = new File(System.getProperty( "basedir" ), "resources");
+
+    private String basedir;
+
+    @Before
+    public void setUp()
+        throws Exception
+    {
+        basedir = System.getProperty( "basedir" );
+
+        if ( basedir == null )
+        {
+            basedir = new File( "maven-mercury" ).getCanonicalPath();
+        }
+    }
+
+    @org.junit.Test
+    public void testSinglePom() throws MetadataReaderException {
+        Stack<File> files = new Stack<File>();
+        files.add(new File(basedir, "src/test/resources/simple.xml"));
+
+        MavenDependencyProcessor processor = new MavenDependencyProcessor();
+        List<ArtifactBasicMetadata> dependencies = processor.getDependencies(new ArtifactBasicMetadata(),
+                new MetadataReaderStub(files), null);
+        assertEquals("Dependencies incorrect", 2, dependencies.size());
+
+    }
+
+    @org.junit.Test
+    public void testSingleParentPom() throws MetadataReaderException {
+        Stack<File> files = new Stack<File>();
+        files.add(new File(basedir, "src/test/resources/parent.xml"));
+        files.add(new File(basedir, "src/test/resources/child.xml"));
+
+        MavenDependencyProcessor processor = new MavenDependencyProcessor();
+        List<ArtifactBasicMetadata> dependencies = processor.getDependencies(new ArtifactBasicMetadata(),
+                new MetadataReaderStub(files), null);
+        assertEquals("Dependencies incorrect", 2, dependencies.size());
+    }
+
+    @org.junit.Test
+    public void testSingleParentPomWithDependencyManagement() throws MetadataReaderException {
+        Stack<File> files = new Stack<File>();
+        files.add(new File(basedir, "src/test/resources/parent.xml"));
+        files.add(new File(basedir, "src/test/resources/child-withDepMng.xml"));
+
+        MavenDependencyProcessor processor = new MavenDependencyProcessor();
+        List<ArtifactBasicMetadata> dependencies = processor.getDependencies(new ArtifactBasicMetadata(),
+                new MetadataReaderStub(files), null);
+        assertEquals("Dependencies incorrect", 2, dependencies.size());
+        assertTrue("Dependency Management", hasDependency(dependencies, "c-v-1"));
+    }
+
+    private static boolean hasDependency(List<ArtifactBasicMetadata> metadatas, String version) {
+        for(ArtifactBasicMetadata metadata : metadatas ) {
+            if(metadata.getVersion().equals(version)) {
+                return true;
+            }
+        }
+        return false;
+    }
+}

Added: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MetadataReaderStub.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MetadataReaderStub.java?rev=707085&view=auto
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MetadataReaderStub.java (added)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MetadataReaderStub.java Wed Oct 22 07:19:56 2008
@@ -0,0 +1,35 @@
+package org.apache.maven.mercury;
+
+import org.apache.maven.mercury.builder.api.MetadataReader;
+import org.apache.maven.mercury.builder.api.MetadataReaderException;
+import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
+import org.codehaus.plexus.util.IOUtil;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Stack;
+
+public class MetadataReaderStub implements MetadataReader {
+
+    private int x;
+
+    Stack<File> files;
+
+    public MetadataReaderStub(Stack<File> files) {
+        this.files = files;
+    }
+
+    public byte[] readRawData(ArtifactBasicMetadata artifactBasicMetadata, String s, String s1) throws MetadataReaderException {
+        return new byte[0];
+    }
+
+    public byte[] readMetadata(ArtifactBasicMetadata artifactBasicMetadata) throws MetadataReaderException {
+        File file = files.pop();
+        try {
+            return IOUtil.toByteArray(new FileInputStream(file));
+        } catch (IOException e) {
+            throw new MetadataReaderException(e);
+        }
+    }
+}

Added: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/child-withDepMng.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/child-withDepMng.xml?rev=707085&view=auto
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/child-withDepMng.xml (added)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/child-withDepMng.xml Wed Oct 22 07:19:56 2008
@@ -0,0 +1,25 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <parent>
+        <artifactId>x-parent-aid</artifactId>
+        <groupId>x-parent-gid</groupId>
+        <version>1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>c-aid</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>c-gid-1</groupId>
+            <artifactId>c-aid-1</artifactId>
+        </dependency>
+    </dependencies>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+            <groupId>c-gid-1</groupId>
+            <artifactId>c-aid-1</artifactId>
+            <version>c-v-1</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>
\ No newline at end of file

Added: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/child.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/child.xml?rev=707085&view=auto
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/child.xml (added)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/child.xml Wed Oct 22 07:19:56 2008
@@ -0,0 +1,18 @@
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <parent>
+    <artifactId>x-parent-aid</artifactId>
+    <groupId>x-parent-gid</groupId>
+    <version>1.0</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>c-aid</artifactId>
+  <dependencies>
+  	<dependency>
+  		<groupId>c-gid-1</groupId>
+  		<artifactId>c-aid-1</artifactId>
+        <version>c-v-1</version>
+  	</dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Added: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/parent.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/parent.xml?rev=707085&view=auto
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/parent.xml (added)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/parent.xml Wed Oct 22 07:19:56 2008
@@ -0,0 +1,14 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>x-parent-gid</groupId>
+  <artifactId>x-parent-aid</artifactId>
+  <version>1.0</version>
+  <dependencies>
+  	<dependency>
+  		<groupId>gid-1</groupId>
+  		<artifactId>aid-1</artifactId>
+        <version>v-1</version>
+  	</dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Added: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/simple.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/simple.xml?rev=707085&view=auto
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/simple.xml (added)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/simple.xml Wed Oct 22 07:19:56 2008
@@ -0,0 +1,17 @@
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>maven-mercury</artifactId>
+  <name>Maven Mercury</name>
+  <dependencies>
+  	<dependency>
+  		<groupId>org.apache.maven.mercury</groupId>
+  		<artifactId>mercury-artifact</artifactId>
+  	</dependency>
+  	<dependency>
+  		<groupId>org.apache.maven.mercury</groupId>
+  		<artifactId>mercury-external</artifactId>
+  	</dependency>
+  </dependencies>
+</project>
\ No newline at end of file