1 package org.apache.maven.archiva.reporting.processor;
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.archiva.indexer.RepositoryArtifactIndex;
20 import org.apache.maven.archiva.indexer.RepositoryArtifactIndexFactory;
21 import org.apache.maven.archiva.indexer.record.RepositoryIndexRecordFactory;
22 import org.apache.maven.archiva.reporting.group.ReportGroup;
23 import org.apache.maven.archiva.reporting.processor.ArtifactReportProcessor;
24 import org.apache.maven.archiva.reporting.AbstractRepositoryReportsTestCase;
25 import org.apache.maven.archiva.reporting.database.ReportingDatabase;
26 import org.apache.maven.artifact.Artifact;
27 import org.apache.maven.artifact.factory.ArtifactFactory;
28 import org.apache.maven.model.Model;
29 import org.codehaus.plexus.util.FileUtils;
32 import java.util.Collections;
35 * @author Edwin Punzalan
37 public class DuplicateArtifactFileReportProcessorTest
38 extends AbstractRepositoryReportsTestCase
40 private Artifact artifact;
44 private ArtifactReportProcessor processor;
46 private ArtifactFactory artifactFactory;
50 private ReportingDatabase reportDatabase;
52 protected void setUp()
57 indexDirectory = getTestFile( "target/indexDirectory" );
58 FileUtils.deleteDirectory( indexDirectory );
60 artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
61 artifact = createArtifact( "groupId", "artifactId", "1.0-alpha-1", "1.0-alpha-1", "jar" );
62 System.out.println( "artifact = " + artifact );
65 RepositoryArtifactIndexFactory factory =
66 (RepositoryArtifactIndexFactory) lookup( RepositoryArtifactIndexFactory.ROLE, "lucene" );
68 RepositoryArtifactIndex index = factory.createStandardIndex( indexDirectory );
70 RepositoryIndexRecordFactory recordFactory =
71 (RepositoryIndexRecordFactory) lookup( RepositoryIndexRecordFactory.ROLE, "standard" );
73 index.indexRecords( Collections.singletonList( recordFactory.createRecord( artifact ) ) );
75 processor = (ArtifactReportProcessor) lookup( ArtifactReportProcessor.ROLE, "duplicate" );
77 ReportGroup reportGroup = (ReportGroup) lookup( ReportGroup.ROLE, "health" );
78 reportDatabase = new ReportingDatabase( reportGroup );
81 public void testNullArtifactFile()
84 artifact.setFile( null );
86 processor.processArtifact( artifact, model, reportDatabase );
88 assertEquals( "Check no notices", 0, reportDatabase.getNumNotices() );
89 assertEquals( "Check warnings", 1, reportDatabase.getNumWarnings() );
90 assertEquals( "Check no failures", 0, reportDatabase.getNumFailures() );
93 public void testSuccessOnAlreadyIndexedArtifact()
96 processor.processArtifact( artifact, model, reportDatabase );
98 assertEquals( "Check no notices", 0, reportDatabase.getNumNotices() );
99 assertEquals( "Check warnings", 0, reportDatabase.getNumWarnings() );
100 assertEquals( "Check no failures", 0, reportDatabase.getNumFailures() );
103 public void testSuccessOnDifferentGroupId()
106 artifact.setGroupId( "different.groupId" );
107 processor.processArtifact( artifact, model, reportDatabase );
109 assertEquals( "Check no notices", 0, reportDatabase.getNumNotices() );
110 assertEquals( "Check warnings", 0, reportDatabase.getNumWarnings() );
111 assertEquals( "Check no failures", 0, reportDatabase.getNumFailures() );
114 public void testSuccessOnNewArtifact()
117 Artifact newArtifact = createArtifact( "groupId", "artifactId", "1.0-alpha-1", "1.0-alpha-1", "pom" );
119 processor.processArtifact( newArtifact, model, reportDatabase );
121 assertEquals( "Check no notices", 0, reportDatabase.getNumNotices() );
122 assertEquals( "Check warnings", 0, reportDatabase.getNumWarnings() );
123 assertEquals( "Check no failures", 0, reportDatabase.getNumFailures() );
126 public void testFailure()
129 Artifact duplicate = createArtifact( artifact.getGroupId(), "snapshot-artifact", "1.0-alpha-1-SNAPSHOT",
130 artifact.getVersion(), artifact.getType() );
131 duplicate.setFile( artifact.getFile() );
133 processor.processArtifact( duplicate, model, reportDatabase );
135 assertEquals( "Check warnings", 0, reportDatabase.getNumWarnings() );
136 assertEquals( "Check no notices", 0, reportDatabase.getNumNotices() );
137 assertEquals( "Check no failures", 1, reportDatabase.getNumFailures() );
140 private Artifact createArtifact( String groupId, String artifactId, String baseVersion, String version,
143 Artifact artifact = artifactFactory.createArtifact( groupId, artifactId, version, null, type );
144 artifact.setBaseVersion( baseVersion );
145 artifact.setRepository( repository );
146 artifact.setFile( new File( repository.getBasedir(), repository.pathOf( artifact ) ) );