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/06 11:09:31 UTC

svn commit: r354393 - 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 02:09:13 2005
New Revision: 354393

URL: http://svn.apache.org/viewcvs?rev=354393&view=rev
Log:
PR: MRM-2
Submitted by: John Tolentino

More unit tests.

Added:
    maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReportProcessor.java   (with props)
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReportProcessorTest.java   (with props)
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifact.java   (with props)
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactFactory.java   (with props)
Modified:
    maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ArtifactReportProcessor.java
    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/DefaultArtifactReporter.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/RepositoryQueryLayer.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/ArtifactReporterTest.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactReportProcessor.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactReporter.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockRepositoryQueryLayer.java

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ArtifactReportProcessor.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ArtifactReportProcessor.java?rev=354393&r1=354392&r2=354393&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ArtifactReportProcessor.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ArtifactReportProcessor.java Tue Dec  6 02:09:13 2005
@@ -30,5 +30,5 @@
     String ROLE = ArtifactReportProcessor.class.getName();
 
     void processArtifact( Model model, Artifact artifact, ArtifactReporter reporter, ArtifactRepository repository );
-    
+
 }

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=354393&r1=354392&r2=354393&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 02:09:13 2005
@@ -32,6 +32,11 @@
 {
     String ROLE = ArtifactReporter.class.getName();
 
+    public static String NULL_MODEL = "Provided model was null";
+    public static String NULL_ARTIFACT = "Provided artifact was null";
+    public static String NO_DEPENDENCIES = "Artifact has no dependencies";
+    public static String ARTIFACT_NOT_FOUND = "Artifact does not exist in the repository";
+
     void addFailure( Artifact artifact, String reason );
 
     void addSuccess( Artifact artifact );
@@ -56,4 +61,9 @@
 
     Iterator getRepositoryMetadataWarningIterator();
 
+    int getFailures();
+
+    int getSuccesses();
+
+    int getWarnings();
 }

Added: 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=354393&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReportProcessor.java (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReportProcessor.java Tue Dec  6 02:09:13 2005
@@ -0,0 +1,106 @@
+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 org.apache.maven.model.Model;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+
+import java.util.List;
+import java.util.Iterator;
+
+/**
+ * @author <a href="mailto:jtolentino@mergere.com">John Tolentino</a>
+ */
+public class DefaultArtifactReportProcessor
+    implements ArtifactReportProcessor
+{
+
+    // plexus components
+    private ArtifactFactory artifactFactory;
+
+    private RepositoryQueryLayer repositoryQueryLayer;
+
+    public void processArtifact( Model model, Artifact artifact, ArtifactReporter reporter, ArtifactRepository repository )
+    {
+        if ( artifact == null )
+        {
+            reporter.addFailure( artifact, ArtifactReporter.NULL_ARTIFACT );
+        }
+        if ( model == null )
+        {
+            reporter.addFailure( artifact, ArtifactReporter.NULL_MODEL );
+        }
+        else
+        {
+            List dependencies = model.getDependencies();
+            if ( ( artifact != null ) && ( model != null ) && ( dependencies != null ) )
+            {
+                if ( repositoryQueryLayer.containsArtifact( artifact ) )
+                {
+                    reporter.addSuccess( artifact );
+                }
+                else
+                {
+                    reporter.addFailure( artifact, ArtifactReporter.ARTIFACT_NOT_FOUND );
+                }
+                if ( dependencies.size() > 0 )
+                {
+                    Iterator iterator = dependencies.iterator();
+                    while ( iterator.hasNext() )
+                    {
+                        Dependency dependency = (Dependency) iterator.next();
+                        if ( repositoryQueryLayer.containsArtifact( createArtifact( dependency ) ) )
+                        {
+                            reporter.addSuccess( artifact );
+                        }
+                        else
+                        {
+                            reporter.addFailure( artifact, ArtifactReporter.ARTIFACT_NOT_FOUND );
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Only used for passing a mock object when unit testing
+     * @param repositoryQueryLayer
+     */
+    protected void setRepositoryQueryLayer( RepositoryQueryLayer repositoryQueryLayer )
+    {
+        this.repositoryQueryLayer = repositoryQueryLayer;
+    }
+
+    /**
+     * Only used for passing a mock object when unit testing
+     * @param artifactFactory
+     */
+    protected void setArtifactFactory( ArtifactFactory artifactFactory )
+    {
+        this.artifactFactory = artifactFactory;
+    }
+
+    private Artifact createArtifact( Dependency dependency )
+    {
+        return artifactFactory.createBuildArtifact( dependency.getGroupId(), dependency.getArtifactId(),
+                                                    dependency.getVersion(), "pom" );
+    }
+}

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReportProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReportProcessor.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReporter.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReporter.java?rev=354393&r1=354392&r2=354393&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReporter.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DefaultArtifactReporter.java Tue Dec  6 02:09:13 2005
@@ -101,4 +101,18 @@
     {
         return metadataWarnings.iterator();
     }
+    public int getFailures()
+    {
+        return artifactFailures.size();
+    }
+
+    public int getSuccesses()
+    {
+        return artifactSuccesses.size();
+    }
+
+    public int getWarnings()
+    {
+        return artifactWarnings.size();
+    }
 }

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/RepositoryQueryLayer.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/RepositoryQueryLayer.java?rev=354393&r1=354392&r2=354393&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/RepositoryQueryLayer.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/RepositoryQueryLayer.java Tue Dec  6 02:09:13 2005
@@ -27,7 +27,10 @@
 {
     String ROLE = RepositoryQueryLayer.class.getName();
 
+    public final static boolean ARTIFACT_FOUND = true;
+    public final static boolean ARTIFACT_NOT_FOUND = false;
+
     boolean containsArtifact( Artifact artifact );
-    
+
     boolean containsArtifact( Artifact artifact, Snapshot snapshot );
 }

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=354393&r1=354392&r2=354393&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 02:09:13 2005
@@ -1,21 +1,7 @@
-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. 
+/*
+ * Copyright (c) 2005 Your Corporation. All Rights Reserved.
  */
+package org.apache.maven.repository.reporting;
 
 import java.io.BufferedOutputStream;
 import java.io.BufferedReader;

Added: 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=354393&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReportProcessorTest.java (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReportProcessorTest.java Tue Dec  6 02:09:13 2005
@@ -0,0 +1,166 @@
+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 org.apache.maven.model.Model;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.artifact.Artifact;
+
+/**
+ * @author <a href="mailto:jtolentino@mergere.com">John Tolentino</a>
+ */
+public class ArtifactReportProcessorTest
+    extends AbstractRepositoryReportsTestCase
+{
+    protected MockArtifactReporter reporter;
+
+    protected Artifact artifact;
+
+    protected Model model;
+
+    protected DefaultArtifactReportProcessor processor;
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+        reporter = new MockArtifactReporter();
+        artifact = new MockArtifact();
+        model = new Model();
+        processor = new DefaultArtifactReportProcessor();
+    }
+
+    public void testNullArtifact()
+    {
+        processor.processArtifact( model, null, reporter, null );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+    }
+
+    public void testNoProjectDescriptor()
+    {
+        processor.processArtifact( null, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+    }
+
+    public void testArtifactFoundButNoDirectDependencies()
+    {
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        processor.setRepositoryQueryLayer( queryLayer );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 1 );
+        assertTrue( reporter.getFailures() == 0 );
+        assertTrue( reporter.getWarnings() == 0 );
+    }
+
+    public void testArtifactNotFound()
+    {
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_NOT_FOUND );
+        processor.setRepositoryQueryLayer( queryLayer );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+    }
+
+    public void testValidArtifactWithValidSingleDependency()
+    {
+        MockArtifactFactory artifactFactory = new MockArtifactFactory();
+        processor.setArtifactFactory( artifactFactory );
+
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        Dependency dependency = new Dependency();
+        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 testValidArtifactWithValidMultipleDependencies()
+    {
+        MockArtifactFactory artifactFactory = new MockArtifactFactory();
+        processor.setArtifactFactory( artifactFactory );
+
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        Dependency dependency = new Dependency();
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        processor.setRepositoryQueryLayer( queryLayer );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 6 );
+        assertTrue( reporter.getFailures() == 0 );
+        assertTrue( reporter.getWarnings() == 0 );
+    }
+
+    public void testValidArtifactWithAnInvalidDependency()
+    {
+        MockArtifactFactory artifactFactory = new MockArtifactFactory();
+        processor.setArtifactFactory( artifactFactory );
+
+        MockRepositoryQueryLayer queryLayer = new MockRepositoryQueryLayer();
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        Dependency dependency = new Dependency();
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_NOT_FOUND );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+        model.addDependency( dependency );
+        queryLayer.addReturnValue( RepositoryQueryLayer.ARTIFACT_FOUND );
+
+        processor.setRepositoryQueryLayer( queryLayer );
+        processor.processArtifact( model, artifact, reporter, null );
+        assertTrue( reporter.getSuccesses() == 5 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        model = null;
+        artifact = null;
+        reporter = null;
+        super.tearDown();
+    }
+}

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReportProcessorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ArtifactReportProcessorTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

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=354393&r1=354392&r2=354393&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 02:09:13 2005
@@ -18,7 +18,6 @@
 
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.Versioning;
 import org.apache.maven.model.Model;
 
@@ -31,10 +30,15 @@
     extends AbstractRepositoryReportsTestCase
 {
     protected ArtifactReporter reporter;
+
     protected ArtifactFactory artifactFactory;
+
     protected Artifact artifact;
+
     protected MockArtifactReportProcessor processor;
+
     protected Versioning versioning;
+
     protected Model model;
 
     protected void setUp()
@@ -63,18 +67,23 @@
 
     public void testArtifactReporterMultipleSuccess()
     {
+        processor.clearList();
         processor.addReturnValue( ReportCondition.SUCCESS, artifact, "one" );
         processor.addReturnValue( ReportCondition.SUCCESS, artifact, "two" );
         processor.addReturnValue( ReportCondition.SUCCESS, artifact, "three" );
+        reporter = new DefaultArtifactReporter();
         processor.processArtifact( model, artifact, reporter, null );
         Iterator success = reporter.getArtifactSuccessIterator();
         assertTrue( success.hasNext() );
         int i;
-        for (i = 0; success.hasNext(); i++)
+        for ( i = 0; success.hasNext(); i++ )
         {
             success.next();
         }
-        assertTrue(i == 3);
+        assertTrue( i == 3 );
+        assertTrue( reporter.getSuccesses() == 3 );
+        assertTrue( reporter.getFailures() == 0 );
+        assertTrue( reporter.getWarnings() == 0 );
     }
 
     public void testArtifactReporterSingleFailure()
@@ -85,6 +94,9 @@
         assertTrue( failure.hasNext() );
         failure.next();
         assertFalse( failure.hasNext() );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 1 );
+        assertTrue( reporter.getWarnings() == 0 );
     }
 
     public void testArtifactReporterMultipleFailure()
@@ -96,21 +108,39 @@
         Iterator failure = reporter.getArtifactFailureIterator();
         assertTrue( failure.hasNext() );
         int i;
-        for (i = 0; failure.hasNext(); i++)
+        for ( i = 0; failure.hasNext(); i++ )
         {
             failure.next();
         }
-        assertTrue(i == 3);
+        assertTrue( i == 3 );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 3 );
+        assertTrue( reporter.getWarnings() == 0 );
+    }
+
+    public void testFailureMessages()
+    {
+        processor.addReturnValue( ReportCondition.FAILURE, artifact, "failed once" );
+        processor.addReturnValue( ReportCondition.FAILURE, artifact, "failed twice" );
+        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() ) );
     }
 
     public void testArtifactReporterSingleWarning()
     {
         processor.addReturnValue( ReportCondition.WARNING, artifact, "you've been warned" );
         processor.processArtifact( model, artifact, reporter, null );
-        Iterator warning = reporter.getArtifactFailureIterator();
+        Iterator warning = reporter.getArtifactWarningIterator();
         assertTrue( warning.hasNext() );
         warning.next();
         assertFalse( warning.hasNext() );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 0 );
+        assertTrue( reporter.getWarnings() == 1 );
     }
 
     public void testArtifactReporterMultipleWarning()
@@ -119,19 +149,35 @@
         processor.addReturnValue( ReportCondition.WARNING, artifact, "you have to stop now" );
         processor.addReturnValue( ReportCondition.WARNING, artifact, "all right... that does it!" );
         processor.processArtifact( model, artifact, reporter, null );
-        Iterator warning = reporter.getArtifactFailureIterator();
+        Iterator warning = reporter.getArtifactWarningIterator();
         assertTrue( warning.hasNext() );
         int i;
-        for (i = 0; warning.hasNext(); i++)
+        for ( i = 0; warning.hasNext(); i++ )
         {
             warning.next();
         }
-        assertTrue(i == 3);
+        assertTrue( i == 3 );
+        assertTrue( reporter.getSuccesses() == 0 );
+        assertTrue( reporter.getFailures() == 0 );
+        assertTrue( reporter.getWarnings() == 3 );
+    }
+
+    public void testWarningMessages()
+    {
+        processor.addReturnValue( ReportCondition.WARNING, artifact, "i'm warning you" );
+        processor.addReturnValue( ReportCondition.WARNING, artifact, "you have to stop now" );
+        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() ) );
     }
 
     protected void tearDown()
         throws Exception
     {
+        model = null;
         versioning = null;
         processor.clearList();
         processor = null;

Added: 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=354393&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifact.java (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifact.java Tue Dec  6 02:09:13 2005
@@ -0,0 +1,246 @@
+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 org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.artifact.versioning.ArtifactVersion;
+import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:jtolentino@mergere.com">John Tolentino</a>
+ */
+public class MockArtifact
+    implements Artifact
+{
+
+    public String getGroupId()
+    {
+        return null;
+    }
+
+    public String getArtifactId()
+    {
+        return null;
+    }
+
+    public String getVersion()
+    {
+        return null;
+    }
+
+    public void setVersion( String s )
+    {
+    }
+
+    public String getScope()
+    {
+        return null;
+    }
+
+    public String getType()
+    {
+        return null;
+    }
+
+    public String getClassifier()
+    {
+        return null;
+    }
+
+    public boolean hasClassifier()
+    {
+        return false;
+    }
+
+    public File getFile()
+    {
+        return null;
+    }
+
+    public void setFile( File file )
+    {
+    }
+
+    public String getBaseVersion()
+    {
+        return null;
+    }
+
+    public void setBaseVersion( String s )
+    {
+    }
+
+    public String getId()
+    {
+        return null;
+    }
+
+    public String getDependencyConflictId()
+    {
+        return null;
+    }
+
+    public void addMetadata( ArtifactMetadata artifactMetadata )
+    {
+    }
+
+    public Collection getMetadataList()
+    {
+        return null;
+    }
+
+    public void setRepository( ArtifactRepository artifactRepository )
+    {
+    }
+
+    public ArtifactRepository getRepository()
+    {
+        return null;
+    }
+
+    public void updateVersion( String s, ArtifactRepository artifactRepository )
+    {
+    }
+
+    public String getDownloadUrl()
+    {
+        return null;
+    }
+
+    public void setDownloadUrl( String s )
+    {
+    }
+
+    public ArtifactFilter getDependencyFilter()
+    {
+        return null;
+    }
+
+    public void setDependencyFilter( ArtifactFilter artifactFilter )
+    {
+    }
+
+    public ArtifactHandler getArtifactHandler()
+    {
+        return null;
+    }
+
+    public List getDependencyTrail()
+    {
+        return null;
+    }
+
+    public void setDependencyTrail( List list )
+    {
+    }
+
+    public void setScope( String s )
+    {
+    }
+
+    public VersionRange getVersionRange()
+    {
+        return null;
+    }
+
+    public void setVersionRange( VersionRange versionRange )
+    {
+    }
+
+    public void selectVersion( String s )
+    {
+    }
+
+    public void setGroupId( String s )
+    {
+    }
+
+    public void setArtifactId( String s )
+    {
+    }
+
+    public boolean isSnapshot()
+    {
+        return false;
+    }
+
+    public void setResolved( boolean b )
+    {
+    }
+
+    public boolean isResolved()
+    {
+        return false;
+    }
+
+    public void setResolvedVersion( String s )
+    {
+    }
+
+    public void setArtifactHandler( ArtifactHandler artifactHandler )
+    {
+    }
+
+    public boolean isRelease()
+    {
+        return false;
+    }
+
+    public void setRelease( boolean b )
+    {
+    }
+
+    public List getAvailableVersions()
+    {
+        return null;
+    }
+
+    public void setAvailableVersions( List list )
+    {
+    }
+
+    public boolean isOptional()
+    {
+        return false;
+    }
+
+    public ArtifactVersion getSelectedVersion()
+        throws OverConstrainedVersionException
+    {
+        return null;
+    }
+
+    public boolean isSelectedVersionKnown()
+        throws OverConstrainedVersionException
+    {
+        return false;
+    }
+
+    public int compareTo( Object o )
+    {
+        return 0;
+    }
+}

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifact.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactFactory.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactFactory.java?rev=354393&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactFactory.java (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactFactory.java Tue Dec  6 02:09:13 2005
@@ -0,0 +1,86 @@
+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 org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.versioning.VersionRange;
+
+/**
+ * @author <a href="mailto:jtolentino@mergere.com">John Tolentino</a>
+ */
+public class MockArtifactFactory
+    implements ArtifactFactory
+{
+    public Artifact createArtifact( String s, String s1, String s2, String s3, String s4 )
+    {
+        return null;
+    }
+
+    public Artifact createArtifactWithClassifier( String s, String s1, String s2, String s3, String s4 )
+    {
+        return null;
+    }
+
+    public Artifact createDependencyArtifact( String s, String s1, VersionRange versionRange, String s2, String s3,
+                                              String s4 )
+    {
+        return null;
+    }
+
+    public Artifact createDependencyArtifact( String s, String s1, VersionRange versionRange, String s2, String s3,
+                                              String s4, String s5 )
+    {
+        return null;
+    }
+
+    public Artifact createDependencyArtifact( String s, String s1, VersionRange versionRange, String s2, String s3,
+                                              String s4, String s5, boolean b )
+    {
+        return null;
+    }
+
+    public Artifact createBuildArtifact( String s, String s1, String s2, String s3 )
+    {
+        return null;
+    }
+
+    public Artifact createProjectArtifact( String s, String s1, String s2 )
+    {
+        return null;
+    }
+
+    public Artifact createParentArtifact( String s, String s1, String s2 )
+    {
+        return null;
+    }
+
+    public Artifact createPluginArtifact( String s, String s1, VersionRange versionRange )
+    {
+        return null;
+    }
+
+    public Artifact createProjectArtifact( String s, String s1, String s2, String s3 )
+    {
+        return null;
+    }
+
+    public Artifact createExtensionArtifact( String s, String s1, VersionRange versionRange )
+    {
+        return null;
+    }
+}

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactFactory.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

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=354393&r1=354392&r2=354393&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 02:09:13 2005
@@ -39,7 +39,7 @@
         reportConditions = new ArrayList();
     }
 
-    public void processArtifact( Model model, Artifact artifact, ArtifactReporter reporter, ArtifactRepository repository )
+    public void processArtifact( Model model, Artifact artifact, ArtifactReporter reporter, ArtifactRepository artifactRepository )
     {
         if ( iterator == null || !iterator.hasNext() ) // not initialized or reached end of the list. start again
         {
@@ -55,14 +55,17 @@
                     case ReportCondition.SUCCESS:
                         {
                             reporter.addSuccess( reportCondition.getArtifact() );
+                            break;
                         }
                     case ReportCondition.WARNING:
                         {
                             reporter.addWarning( reportCondition.getArtifact(), reportCondition.getReason() );
+                            break;
                         }
                     case ReportCondition.FAILURE:
                         {
                             reporter.addFailure( reportCondition.getArtifact(), reportCondition.getReason() );
+                            break;
                         }
                 }
             }

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactReporter.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactReporter.java?rev=354393&r1=354392&r2=354393&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactReporter.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockArtifactReporter.java Tue Dec  6 02:09:13 2005
@@ -103,4 +103,19 @@
     {
         return metadataWarnings.iterator();
     }
+
+    public int getFailures()
+    {
+        return artifactFailures.size();
+    }
+
+    public int getSuccesses()
+    {
+        return artifactSuccesses.size();
+    }
+
+    public int getWarnings()
+    {
+        return artifactWarnings.size();
+    }
 }

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockRepositoryQueryLayer.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockRepositoryQueryLayer.java?rev=354393&r1=354392&r2=354393&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockRepositoryQueryLayer.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/MockRepositoryQueryLayer.java Tue Dec  6 02:09:13 2005
@@ -50,13 +50,14 @@
         }
         else
         {
-            return ( (Boolean) iterator.next() ).booleanValue();
+            boolean temp = ( (Boolean) iterator.next() ).booleanValue();
+            return temp;
         }
     }
 
     public void addReturnValue( boolean queryCondition )
     {
-        queryConditions.add( Boolean.valueOf( queryCondition ) );
+        queryConditions.add( new Boolean( queryCondition ) );
     }
 
     public void clearList()