1 package org.apache.maven.repository.reporting;
4 * Copyright 2005-2006 The Apache Software Foundation.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
19 import org.apache.maven.artifact.Artifact;
20 import org.apache.maven.artifact.factory.ArtifactFactory;
21 import org.apache.maven.model.Model;
22 import org.apache.maven.repository.digest.Digester;
23 import org.apache.maven.repository.indexing.ArtifactRepositoryIndex;
24 import org.codehaus.plexus.util.FileUtils;
29 * @author Edwin Punzalan
31 public class DuplicateArtifactFileReportProcessorTest
32 extends AbstractRepositoryReportsTestCase
34 private MockArtifactReporter reporter;
36 private Artifact artifact;
40 private ArtifactReportProcessor processor;
42 private ArtifactFactory artifactFactory;
44 private File indexPath = getTestFile( "target/.index" );
46 protected void setUp()
50 artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
51 Digester digester = (Digester) lookup( Digester.ROLE );
53 reporter = new MockArtifactReporter();
54 artifact = createArtifact( "groupId", "artifactId", "1.0-alpha-1", "1.0-alpha-1", "jar" );
56 processor = (ArtifactReportProcessor) lookup( ArtifactReportProcessor.ROLE, "duplicate" );
58 ArtifactRepositoryIndex index = new ArtifactRepositoryIndex( indexPath, repository, digester );
59 index.indexArtifact( artifact );
64 protected void tearDown()
67 FileUtils.deleteDirectory( indexPath );
76 public void testNullArtifactFile()
79 artifact.setFile( null );
81 processor.processArtifact( model, artifact, reporter, repository );
83 assertEquals( "Check no successes", 0, reporter.getSuccesses() );
84 assertEquals( "Check warnings", 1, reporter.getWarnings() );
85 assertEquals( "Check no failures", 0, reporter.getFailures() );
88 public void testSuccessOnAlreadyIndexedArtifact()
91 processor.processArtifact( model, artifact, reporter, repository );
93 assertEquals( "Check no successes", 1, reporter.getSuccesses() );
94 assertEquals( "Check warnings", 0, reporter.getWarnings() );
95 assertEquals( "Check no failures", 0, reporter.getFailures() );
98 public void testSuccessOnDifferentGroupId()
101 artifact.setGroupId( "different.groupId" );
102 processor.processArtifact( model, artifact, reporter, repository );
104 assertEquals( "Check no successes", 1, reporter.getSuccesses() );
105 assertEquals( "Check warnings", 0, reporter.getWarnings() );
106 assertEquals( "Check no failures", 0, reporter.getFailures() );
109 public void testSuccessOnNewArtifact()
112 Artifact newArtifact = createArtifact( "groupId", "artifactId", "1.0-alpha-1", "1.0-alpha-1", "pom" );
114 processor.processArtifact( model, newArtifact, reporter, repository );
116 assertEquals( "Check no successes", 1, reporter.getSuccesses() );
117 assertEquals( "Check warnings", 0, reporter.getWarnings() );
118 assertEquals( "Check no failures", 0, reporter.getFailures() );
121 public void testFailure()
124 Artifact duplicate = createArtifact( artifact.getGroupId(), "snapshot-artifact", "1.0-alpha-1-SNAPSHOT",
125 artifact.getVersion(), artifact.getType() );
126 duplicate.setFile( artifact.getFile() );
128 processor.processArtifact( model, duplicate, reporter, repository );
130 assertEquals( "Check no successes", 0, reporter.getSuccesses() );
131 assertEquals( "Check warnings", 0, reporter.getWarnings() );
132 assertEquals( "Check no failures", 1, reporter.getFailures() );
135 private Artifact createArtifact( String groupId, String artifactId, String baseVersion, String version,
138 Artifact artifact = artifactFactory.createArtifact( groupId, artifactId, version, null, type );
139 artifact.setBaseVersion( baseVersion );
140 artifact.setRepository( repository );
141 artifact.setFile( new File( repository.getBasedir(), repository.pathOf( artifact ) ) );