You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ep...@apache.org on 2005/12/07 06:46:02 UTC

svn commit: r354723 - in /maven/repository-manager/trunk/maven-repository-reports-standard/src: main/java/org/apache/maven/repository/reporting/ test/java/org/apache/maven/repository/reporting/

Author: epunzalan
Date: Tue Dec  6 21:45:43 2005
New Revision: 354723

URL: http://svn.apache.org/viewcvs?rev=354723&view=rev
Log:
More unit tests and some code formatting

Modified:
    maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ArtifactReporter.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReportProcessor.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReportProcessorTest.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReporterTest.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/DefaultArtifactReporterTest.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/GenericMockObject.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifact.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactReportProcessor.java

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ArtifactReporter.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ArtifactReporter.java?rev=354723&r1=354722&r2=354723&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ArtifactReporter.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ArtifactReporter.java Tue Dec  6 21:45:43 2005
@@ -34,8 +34,15 @@
 
     public static String NULL_MODEL = "Provided model was null";
     public static String NULL_ARTIFACT = "Provided artifact was null";
+    public static String EMPTY_GROUP_ID = "Group id was empty or null";
+    public static String EMPTY_ARTIFACT_ID = "Artifact id was empty or null";
+    public static String EMPTY_VERSION = "Version was empty or null";
+    public static String EMPTY_DEPENDENCY_GROUP_ID = "Group id was empty or null";
+    public static String EMPTY_DEPENDENCY_ARTIFACT_ID = "Artifact id was empty or null";
+    public static String EMPTY_DEPENDENCY_VERSION = "Version was empty or null";
     public static String NO_DEPENDENCIES = "Artifact has no dependencies";
     public static String ARTIFACT_NOT_FOUND = "Artifact does not exist in the repository";
+    public static String DEPENDENCY_NOT_FOUND = "Artifact's dependency does not exist in the repository";
 
     void addFailure( Artifact artifact, String reason );
 

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReportProcessor.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReportProcessor.java?rev=354723&r1=354722&r2=354723&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReportProcessor.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReportProcessor.java Tue Dec  6 21:45:43 2005
@@ -31,18 +31,25 @@
 public class DefaultArtifactReportProcessor
     implements ArtifactReportProcessor
 {
+    private final static String EMPTY_STRING = "";
 
     // plexus components
     private ArtifactFactory artifactFactory;
 
     private RepositoryQueryLayer repositoryQueryLayer;
 
-    public void processArtifact( Model model, Artifact artifact, ArtifactReporter reporter, ArtifactRepository repository )
+    public void processArtifact( Model model, Artifact artifact, ArtifactReporter reporter,
+                                 ArtifactRepository repository )
     {
         if ( artifact == null )
         {
             reporter.addFailure( artifact, ArtifactReporter.NULL_ARTIFACT );
         }
+        else
+        {
+            processArtifact( artifact, reporter );
+        }
+
         if ( model == null )
         {
             reporter.addFailure( artifact, ArtifactReporter.NULL_MODEL );
@@ -50,38 +57,85 @@
         else
         {
             List dependencies = model.getDependencies();
-            if ( ( artifact != null ) && ( model != null ) && ( dependencies != null ) )
+            processDependencies( dependencies, reporter );
+        }
+    }
+
+    protected void processArtifact( Artifact artifact, ArtifactReporter reporter )
+    {
+        boolean hasFailed = false;
+        if ( EMPTY_STRING.equals( artifact.getGroupId() ) || artifact.getGroupId() == null )
+        {
+            reporter.addFailure( artifact, ArtifactReporter.EMPTY_GROUP_ID );
+            hasFailed = true;
+        }
+        if ( EMPTY_STRING.equals( artifact.getArtifactId() ) || artifact.getArtifactId() == null )
+        {
+            reporter.addFailure( artifact, ArtifactReporter.EMPTY_ARTIFACT_ID );
+            hasFailed = true;
+        }
+        if ( EMPTY_STRING.equals( artifact.getVersion() ) || artifact.getVersion() == null )
+        {
+            reporter.addFailure( artifact, ArtifactReporter.EMPTY_VERSION );
+            hasFailed = true;
+        }
+        if ( !hasFailed )
+        {
+            if ( repositoryQueryLayer.containsArtifact( artifact ) )
             {
-                if ( repositoryQueryLayer.containsArtifact( artifact ) )
+                reporter.addSuccess( artifact );
+            }
+            else
+            {
+                reporter.addFailure( artifact, ArtifactReporter.ARTIFACT_NOT_FOUND );
+            }
+        }
+    }
+
+    protected void processDependencies( List dependencies, ArtifactReporter reporter )
+    {
+        if ( dependencies.size() > 0 )
+        {
+            Iterator iterator = dependencies.iterator();
+            while ( iterator.hasNext() )
+            {
+                boolean hasFailed = false;
+                Dependency dependency = (Dependency) iterator.next();
+                Artifact artifact = createArtifact( dependency );
+                if ( EMPTY_STRING.equals( dependency.getGroupId() ) || dependency.getGroupId() == null )
+                {
+                    reporter.addFailure( artifact, ArtifactReporter.EMPTY_DEPENDENCY_GROUP_ID );
+                    hasFailed = true;
+                }
+                if ( EMPTY_STRING.equals( dependency.getArtifactId() ) || dependency.getArtifactId() == null )
                 {
-                    reporter.addSuccess( artifact );
+                    reporter.addFailure( artifact, ArtifactReporter.EMPTY_DEPENDENCY_ARTIFACT_ID );
+                    hasFailed = true;
                 }
-                else
+                if ( EMPTY_STRING.equals( dependency.getVersion() ) || dependency.getVersion() == null )
                 {
-                    reporter.addFailure( artifact, ArtifactReporter.ARTIFACT_NOT_FOUND );
+                    reporter.addFailure( artifact, ArtifactReporter.EMPTY_DEPENDENCY_VERSION );
+                    hasFailed = true;
                 }
-                if ( dependencies.size() > 0 )
+                if ( !hasFailed )
                 {
-                    Iterator iterator = dependencies.iterator();
-                    while ( iterator.hasNext() )
+                    if ( repositoryQueryLayer.containsArtifact( artifact ) )
                     {
-                        Dependency dependency = (Dependency) iterator.next();
-                        if ( repositoryQueryLayer.containsArtifact( createArtifact( dependency ) ) )
-                        {
-                            reporter.addSuccess( artifact );
-                        }
-                        else
-                        {
-                            reporter.addFailure( artifact, ArtifactReporter.ARTIFACT_NOT_FOUND );
-                        }
+                        reporter.addSuccess( artifact );
+                    }
+                    else
+                    {
+                        reporter.addFailure( artifact, ArtifactReporter.DEPENDENCY_NOT_FOUND );
                     }
                 }
             }
         }
+
     }
 
     /**
      * Only used for passing a mock object when unit testing
+     *
      * @param repositoryQueryLayer
      */
     protected void setRepositoryQueryLayer( RepositoryQueryLayer repositoryQueryLayer )
@@ -91,6 +145,7 @@
 
     /**
      * Only used for passing a mock object when unit testing
+     *
      * @param artifactFactory
      */
     protected void setArtifactFactory( ArtifactFactory artifactFactory )

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java?rev=354723&r1=354722&r2=354723&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java Tue Dec  6 21:45:43 2005
@@ -1,7 +1,21 @@
-/*
- * Copyright (c) 2005 Your Corporation. All Rights Reserved.
- */
 package org.apache.maven.repository.reporting;
+
+/* 
+ * Copyright 2001-2005 The Apache Software Foundation. 
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ */
 
 import java.io.BufferedOutputStream;
 import java.io.BufferedReader;

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReportProcessorTest.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReportProcessorTest.java?rev=354723&r1=354722&r2=354723&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReportProcessorTest.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReportProcessorTest.java Tue Dec  6 21:45:43 2005
@@ -20,12 +20,18 @@
 import org.apache.maven.model.Dependency;
 import org.apache.maven.artifact.Artifact;
 
+import java.util.Iterator;
+
 /**
  * 
  */
 public class ArtifactReportProcessorTest
     extends AbstractRepositoryReportsTestCase
 {
+    private final static String EMPTY_STRING = "";
+
+    private final static String VALID = "temp";
+
     protected MockArtifactReporter reporter;
 
     protected Artifact artifact;
@@ -50,14 +56,24 @@
         assertTrue( reporter.getSuccesses() == 0 );
         assertTrue( reporter.getFailures() == 1 );
         assertTrue( reporter.getWarnings() == 0 );
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.NULL_ARTIFACT.equals( result.getReason() ) );
     }
 
     public void testNoProjectDescriptor()
     {
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        processor.setRepositoryQueryLayer( queryLayer );
+        setRequiredElements( artifact, VALID, VALID, VALID );
         processor.processArtifact( null, artifact, reporter, null );
-        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getSuccesses() == 1 );
         assertTrue( reporter.getFailures() == 1 );
         assertTrue( reporter.getWarnings() == 0 );
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.NULL_MODEL.equals( result.getReason() ) );
     }
 
     public void testArtifactFoundButNoDirectDependencies()
@@ -65,6 +81,7 @@
         MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
         queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
         processor.setRepositoryQueryLayer( queryLayer );
+        setRequiredElements( artifact, VALID, VALID, VALID );
         processor.processArtifact( model, artifact, reporter, null );
         assertTrue( reporter.getSuccesses() == 1 );
         assertTrue( reporter.getFailures() == 0 );
@@ -76,10 +93,35 @@
         MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
         queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_NOT_FOUND );
         processor.setRepositoryQueryLayer( queryLayer );
+        setRequiredElements( artifact, VALID, VALID, VALID );
         processor.processArtifact( model, artifact, reporter, null );
         assertTrue( reporter.getSuccesses() == 0 );
         assertTrue( reporter.getFailures() == 1 );
         assertTrue( reporter.getWarnings() == 0 );
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.ARTIFACT_NOT_FOUND.equals( result.getReason() ) );
+    }
+
+    public void testValidArtifactWithNullDependency()
+    {
+        MockArtifactFactory artifactFactory = new MockArtifactFactory();
+        processor.setArtifactFactory( artifactFactory );
+
+        setRequiredElements( artifact, VALID, VALID, VALID );
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        Dependency dependency = new Dependency();
+        setRequiredElements( dependency, VALID, VALID, VALID );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        processor.setRepositoryQueryLayer( queryLayer );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 2 );
+        assertTrue( reporter.getFailures() == 0 );
+        assertTrue( reporter.getWarnings() == 0 );
     }
 
     public void testValidArtifactWithValidSingleDependency()
@@ -87,10 +129,12 @@
         MockArtifactFactory artifactFactory = new MockArtifactFactory();
         processor.setArtifactFactory( artifactFactory );
 
+        setRequiredElements( artifact, VALID, VALID, VALID );
         MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
         queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
 
         Dependency dependency = new Dependency();
+        setRequiredElements( dependency, VALID, VALID, VALID );
         model.addDependency( dependency );
         queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
 
@@ -110,6 +154,7 @@
         queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
 
         Dependency dependency = new Dependency();
+        setRequiredElements( dependency, VALID, VALID, VALID );
         model.addDependency( dependency );
         queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
         model.addDependency( dependency );
@@ -121,6 +166,7 @@
         model.addDependency( dependency );
         queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
 
+        setRequiredElements( artifact, VALID, VALID, VALID );
         processor.setRepositoryQueryLayer( queryLayer );
         processor.processArtifact( model, artifact, reporter, null );
         assertTrue( reporter.getSuccesses() == 6 );
@@ -137,6 +183,7 @@
         queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
 
         Dependency dependency = new Dependency();
+        setRequiredElements( dependency, VALID, VALID, VALID );
         model.addDependency( dependency );
         queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
         model.addDependency( dependency );
@@ -148,11 +195,243 @@
         model.addDependency( dependency );
         queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
 
+        setRequiredElements( artifact, VALID, VALID, VALID );
         processor.setRepositoryQueryLayer( queryLayer );
         processor.processArtifact( model, artifact, reporter, null );
         assertTrue( reporter.getSuccesses() == 5 );
         assertTrue( reporter.getFailures() == 1 );
         assertTrue( reporter.getWarnings() == 0 );
+
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.DEPENDENCY_NOT_FOUND.equals( result.getReason() ) );
+    }
+
+    public void testEmptyGroupId()
+    {
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        processor.setRepositoryQueryLayer( queryLayer );
+
+        setRequiredElements( artifact, EMPTY_STRING, VALID, VALID );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_GROUP_ID.equals( result.getReason() ) );
+    }
+
+    public void testEmptyArtifactId()
+    {
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        processor.setRepositoryQueryLayer( queryLayer );
+
+        setRequiredElements( artifact, VALID, EMPTY_STRING, VALID );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_ARTIFACT_ID.equals( result.getReason() ) );
+    }
+
+    public void testEmptyVersion()
+    {
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        processor.setRepositoryQueryLayer( queryLayer );
+
+        setRequiredElements( artifact, VALID, VALID, EMPTY_STRING );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_VERSION.equals( result.getReason() ) );
+    }
+
+    public void testNullGroupId()
+    {
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        processor.setRepositoryQueryLayer( queryLayer );
+
+        setRequiredElements( artifact, null, VALID, VALID );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_GROUP_ID.equals( result.getReason() ) );
+    }
+
+    public void testNullArtifactId()
+    {
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        processor.setRepositoryQueryLayer( queryLayer );
+
+        setRequiredElements( artifact, VALID, null, VALID );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_ARTIFACT_ID.equals( result.getReason() ) );
+    }
+
+    public void testNullVersion()
+    {
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        processor.setRepositoryQueryLayer( queryLayer );
+
+        setRequiredElements( artifact, VALID, VALID, null );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_VERSION.equals( result.getReason() ) );
+    }
+
+    public void testMultipleFailures()
+    {
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        processor.setRepositoryQueryLayer( queryLayer );
+
+        setRequiredElements( artifact, null, null, null );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 3 );
+        assertTrue( reporter.getWarnings() == 0 );
+
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_GROUP_ID.equals( result.getReason() ) );
+        result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_ARTIFACT_ID.equals( result.getReason() ) );
+        result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_VERSION.equals( result.getReason() ) );
+    }
+
+    public void testValidArtifactWithInvalidDependencyGroupId()
+    {
+        MockArtifactFactory artifactFactory = new MockArtifactFactory();
+        processor.setArtifactFactory( artifactFactory );
+
+        setRequiredElements( artifact, VALID, VALID, VALID );
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        Dependency dependency = new Dependency();
+        setRequiredElements( dependency, null, VALID, VALID );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        processor.setRepositoryQueryLayer( queryLayer );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 1 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_DEPENDENCY_GROUP_ID.equals( result.getReason() ) );
+    }
+
+    public void testValidArtifactWithInvalidDependencyArtifactId()
+    {
+        MockArtifactFactory artifactFactory = new MockArtifactFactory();
+        processor.setArtifactFactory( artifactFactory );
+
+        setRequiredElements( artifact, VALID, VALID, VALID );
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        Dependency dependency = new Dependency();
+        setRequiredElements( dependency, VALID, null, VALID );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        processor.setRepositoryQueryLayer( queryLayer );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 1 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_DEPENDENCY_ARTIFACT_ID.equals( result.getReason() ) );
+    }
+
+    public void testValidArtifactWithInvalidDependencyVersion()
+    {
+        MockArtifactFactory artifactFactory = new MockArtifactFactory();
+        processor.setArtifactFactory( artifactFactory );
+
+        setRequiredElements( artifact, VALID, VALID, VALID );
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        Dependency dependency = new Dependency();
+        setRequiredElements( dependency, VALID, VALID, null );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        processor.setRepositoryQueryLayer( queryLayer );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 1 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_DEPENDENCY_VERSION.equals( result.getReason() ) );
+    }
+
+    public void testValidArtifactWithInvalidDependencyRequiredElements()
+    {
+        MockArtifactFactory artifactFactory = new MockArtifactFactory();
+        processor.setArtifactFactory( artifactFactory );
+
+        setRequiredElements( artifact, VALID, VALID, VALID );
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        Dependency dependency = new Dependency();
+        setRequiredElements( dependency, null, null, null );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        processor.setRepositoryQueryLayer( queryLayer );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 1 );
+        assertTrue( reporter.getFailures() == 3 );
+        assertTrue( reporter.getWarnings() == 0 );
+
+        Iterator failures = reporter.getArtifactFailureIterator();
+        ArtifactResult result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_DEPENDENCY_GROUP_ID.equals( result.getReason() ) );
+        result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_DEPENDENCY_ARTIFACT_ID.equals( result.getReason() ) );
+        result = (ArtifactResult) failures.next();
+        assertTrue( ArtifactReporter.EMPTY_DEPENDENCY_VERSION.equals( result.getReason() ) );
     }
 
     protected void tearDown()
@@ -162,5 +441,19 @@
         artifact = null;
         reporter = null;
         super.tearDown();
+    }
+
+    protected void setRequiredElements( Artifact artifact, String groupId, String artifactId, String version )
+    {
+        artifact.setGroupId( groupId );
+        artifact.setArtifactId( artifactId );
+        artifact.setVersion( version );
+    }
+
+    protected void setRequiredElements( Dependency dependency, String groupId, String artifactId, String version )
+    {
+        dependency.setGroupId( groupId );
+        dependency.setArtifactId( artifactId );
+        dependency.setVersion( version );
     }
 }

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReporterTest.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReporterTest.java?rev=354723&r1=354722&r2=354723&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReporterTest.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReporterTest.java Tue Dec  6 21:45:43 2005
@@ -61,7 +61,11 @@
         processor.processArtifact( model, artifact, reporter, null );
         Iterator success = reporter.getArtifactSuccessIterator();
         assertTrue( success.hasNext() );
-        success.next();
+        assertTrue( reporter.getSuccesses() == 1 );
+        Artifact result = ( (ArtifactResult) success.next() ).getArtifact();
+        assertTrue( "groupId".equals( result.getGroupId() ) );
+        assertTrue( "artifactId".equals( result.getArtifactId() ) );
+        assertTrue( "1.0-alpha-1".equals( result.getVersion() ) );
         assertFalse( success.hasNext() );
     }
 
@@ -125,9 +129,9 @@
         processor.addReturnValue( ReportCondition.FAILURE, artifact, "failed thrice" );
         processor.processArtifact( model, artifact, reporter, null );
         Iterator failure = reporter.getArtifactFailureIterator();
-        assertTrue( "failed once".equals( ((ArtifactResult) failure.next()).getReason() ) );
-        assertTrue( "failed twice".equals( ((ArtifactResult) failure.next()).getReason() ) );
-        assertTrue( "failed thrice".equals( ((ArtifactResult) failure.next()).getReason() ) );
+        assertTrue( "failed once".equals( ( (ArtifactResult) failure.next() ).getReason() ) );
+        assertTrue( "failed twice".equals( ( (ArtifactResult) failure.next() ).getReason() ) );
+        assertTrue( "failed thrice".equals( ( (ArtifactResult) failure.next() ).getReason() ) );
     }
 
     public void testArtifactReporterSingleWarning()
@@ -169,9 +173,9 @@
         processor.addReturnValue( ReportCondition.WARNING, artifact, "all right... that does it!" );
         processor.processArtifact( model, artifact, reporter, null );
         Iterator warning = reporter.getArtifactWarningIterator();
-        assertTrue( "i'm warning you".equals( ((ArtifactResult) warning.next()).getReason() ) );
-        assertTrue( "you have to stop now".equals( ((ArtifactResult) warning.next()).getReason() ) );
-        assertTrue( "all right... that does it!".equals( ((ArtifactResult) warning.next()).getReason() ) );
+        assertTrue( "i'm warning you".equals( ( (ArtifactResult) warning.next() ).getReason() ) );
+        assertTrue( "you have to stop now".equals( ( (ArtifactResult) warning.next() ).getReason() ) );
+        assertTrue( "all right... that does it!".equals( ( (ArtifactResult) warning.next() ).getReason() ) );
     }
 
     protected void tearDown()

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java?rev=354723&r1=354722&r2=354723&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java Tue Dec  6 21:45:43 2005
@@ -17,7 +17,6 @@
  * limitations under the License. 
  */
 
-import java.util.Iterator;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.artifact.handler.ArtifactHandler;
@@ -26,6 +25,8 @@
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.artifact.versioning.VersionRange;
+
+import java.util.Iterator;
 
 public class ChecksumArtifactReporterTest
     extends AbstractChecksumArtifactReporterTest

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/DefaultArtifactReporterTest.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/DefaultArtifactReporterTest.java?rev=354723&r1=354722&r2=354723&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/DefaultArtifactReporterTest.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/DefaultArtifactReporterTest.java Tue Dec  6 21:45:43 2005
@@ -16,12 +16,13 @@
  * limitations under the License.
  */
 
-import java.util.Iterator;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.Versioning;
+
+import java.util.Iterator;
 
 /**
  *

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/GenericMockObject.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/GenericMockObject.java?rev=354723&r1=354722&r2=354723&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/GenericMockObject.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/GenericMockObject.java Tue Dec  6 21:45:43 2005
@@ -24,7 +24,6 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import org.apache.maven.artifact.Artifact;
 
 /**
  *

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifact.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifact.java?rev=354723&r1=354722&r2=354723&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifact.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifact.java Tue Dec  6 21:45:43 2005
@@ -35,24 +35,28 @@
 public class MockArtifact
     implements Artifact
 {
+    private String groupId;
+    private String artifactId;
+    private String version;
 
     public String getGroupId()
     {
-        return null;
+        return groupId;
     }
 
     public String getArtifactId()
     {
-        return null;
+        return artifactId;
     }
 
     public String getVersion()
     {
-        return null;
+        return version;
     }
 
     public void setVersion( String s )
     {
+        version = s;
     }
 
     public String getScope()
@@ -176,10 +180,12 @@
 
     public void setGroupId( String s )
     {
+        groupId = s;
     }
 
     public void setArtifactId( String s )
     {
+        artifactId = s;
     }
 
     public boolean isSnapshot()

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactReportProcessor.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactReportProcessor.java?rev=354723&r1=354722&r2=354723&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactReportProcessor.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactReportProcessor.java Tue Dec  6 21:45:43 2005
@@ -1,13 +1,5 @@
 package org.apache.maven.repository.reporting;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.model.Model;
-
-import java.util.List;
-import java.util.Iterator;
-import java.util.ArrayList;
-
 /*
  * Copyright 2001-2005 The Apache Software Foundation.
  *
@@ -23,6 +15,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.model.Model;
+
+import java.util.List;
+import java.util.Iterator;
+import java.util.ArrayList;
 
 /**
  *