]> source.dussan.org Git - archiva.git/blob
b7933d152af7c53fb390ecd6e7b0a7e2dafd6788
[archiva.git] /
1 package org.apache.maven.repository.reporting;
2
3 /*
4  * Copyright 2005-2006 The Apache Software Foundation.
5  *
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
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
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.
17  */
18
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;
25
26 import java.io.File;
27
28 /**
29  * @author Edwin Punzalan
30  */
31 public class DuplicateArtifactFileReportProcessorTest
32     extends AbstractRepositoryReportsTestCase
33 {
34     private MockArtifactReporter reporter;
35
36     private Artifact artifact;
37
38     private Model model;
39
40     private ArtifactReportProcessor processor;
41
42     private ArtifactFactory artifactFactory;
43
44     File indexDirectory;
45
46     protected void setUp()
47         throws Exception
48     {
49         super.setUp();
50
51         Digester digester = (Digester) lookup( Digester.ROLE );
52
53         indexDirectory = getTestFile( "target/indexDirectory" );
54
55         if ( !indexDirectory.exists() )
56         {
57             indexDirectory.mkdirs();
58         }
59
60         artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
61         artifact = createArtifact( "groupId", "artifactId", "1.0-alpha-1", "1.0-alpha-1", "jar" );
62         reporter = new MockArtifactReporter();
63         model = new Model();
64
65         ArtifactRepositoryIndex index = new ArtifactRepositoryIndex( indexDirectory, repository, digester );
66         index.indexArtifact( artifact );
67         index.optimize();
68         index.close();
69
70         processor = (ArtifactReportProcessor) lookup( ArtifactReportProcessor.ROLE, "duplicate" );
71     }
72
73     protected void tearDown()
74         throws Exception
75     {
76         //FileUtils.deleteDirectory( indexDirectory );
77
78         processor = null;
79         model = null;
80         artifact = null;
81         reporter = null;
82         super.tearDown();
83     }
84
85     public void testNullArtifactFile()
86         throws Exception
87     {
88         artifact.setFile( null );
89
90         processor.processArtifact( model, artifact, reporter, repository );
91
92         assertEquals( "Check no successes", 0, reporter.getSuccesses() );
93         assertEquals( "Check warnings", 1, reporter.getWarnings() );
94         assertEquals( "Check no failures", 0, reporter.getFailures() );
95     }
96
97     public void testSuccessOnAlreadyIndexedArtifact()
98         throws Exception
99     {
100         processor.processArtifact( model, artifact, reporter, repository );
101
102         assertEquals( "Check no successes", 1, reporter.getSuccesses() );
103         assertEquals( "Check warnings", 0, reporter.getWarnings() );
104         assertEquals( "Check no failures", 0, reporter.getFailures() );
105     }
106
107     public void testSuccessOnDifferentGroupId()
108         throws Exception
109     {
110         artifact.setGroupId( "different.groupId" );
111         processor.processArtifact( model, artifact, reporter, repository );
112
113         assertEquals( "Check no successes", 1, reporter.getSuccesses() );
114         assertEquals( "Check warnings", 0, reporter.getWarnings() );
115         assertEquals( "Check no failures", 0, reporter.getFailures() );
116     }
117
118     public void testSuccessOnNewArtifact()
119         throws Exception
120     {
121         Artifact newArtifact = createArtifact( "groupId", "artifactId", "1.0-alpha-1", "1.0-alpha-1", "pom" );
122
123         processor.processArtifact( model, newArtifact, reporter, repository );
124
125         assertEquals( "Check no successes", 1, reporter.getSuccesses() );
126         assertEquals( "Check warnings", 0, reporter.getWarnings() );
127         assertEquals( "Check no failures", 0, reporter.getFailures() );
128     }
129
130     public void testFailure()
131         throws Exception
132     {
133         Artifact duplicate = createArtifact( artifact.getGroupId(), "snapshot-artifact", "1.0-alpha-1-SNAPSHOT",
134                                              artifact.getVersion(), artifact.getType() );
135         duplicate.setFile( artifact.getFile() );
136
137         processor.processArtifact( model, duplicate, reporter, repository );
138
139         assertEquals( "Check no successes", 0, reporter.getSuccesses() );
140         assertEquals( "Check warnings", 0, reporter.getWarnings() );
141         assertEquals( "Check no failures", 1, reporter.getFailures() );
142     }
143
144     private Artifact createArtifact( String groupId,
145                                      String artifactId,
146                                      String baseVersion,
147                                      String version,
148                                      String type )
149     {
150         Artifact artifact = artifactFactory.createArtifact( groupId, artifactId, version, null, type );
151         artifact.setBaseVersion( baseVersion );
152         artifact.setRepository( repository );
153         artifact.setFile( new File( repository.getBasedir(), repository.pathOf( artifact ) ) );
154         return artifact;
155     }
156 }