]> source.dussan.org Git - archiva.git/blob
a535307e2b62863e71d9c679aaa9f67d949693fd
[archiva.git] /
1 package org.apache.maven.archiva.repositories;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *  http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import org.apache.maven.archiva.artifact.ManagedArtifact;
23 import org.apache.maven.archiva.artifact.ManagedEjbArtifact;
24 import org.apache.maven.archiva.artifact.ManagedJavaArtifact;
25 import org.codehaus.plexus.PlexusTestCase;
26
27 /**
28  * DefaultActiveManagedRepositoriesTest
29  *
30  * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
31  * @version $Id$
32  */
33 public class DefaultActiveManagedRepositoriesTest
34     extends PlexusTestCase
35 {
36     private ActiveManagedRepositories managedRepos;
37
38     protected void setUp()
39         throws Exception
40     {
41         super.setUp();
42
43         managedRepos = (ActiveManagedRepositories) lookup( ActiveManagedRepositories.ROLE );
44     }
45
46     /**
47      * Test a simple java find artifact with extras (sources / javadoc).
48      */
49     public void testFindArtifactJavaWithExtras()
50     {
51         ManagedArtifact artifact = managedRepos.findArtifact( "geronimo", "daytrader-wsappclient", "1.1", "jar" );
52         assertNotNull( artifact );
53
54         if ( !( artifact instanceof ManagedJavaArtifact ) )
55         {
56             fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <" +
57                 artifact.getClass().getName() + ">." );
58         }
59
60         ManagedJavaArtifact javaArtifact = (ManagedJavaArtifact) artifact;
61
62         assertEquals( "test", javaArtifact.getRepositoryId() );
63
64         String pathPrefix = "geronimo/daytrader-wsappclient/1.1";
65         String pathArtifactVersion = "daytrader-wsappclient-1.1";
66
67         assertEquals( pathPrefix + "/" + pathArtifactVersion + ".jar", javaArtifact.getPath() );
68         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", javaArtifact.getJavadocPath() );
69         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-sources.jar", javaArtifact.getSourcesPath() );
70     }
71
72     /**
73      * Test a simple java find artifact with no extras.
74      */
75     public void testFindArtifactJavaSimple()
76     {
77         ManagedArtifact artifact = managedRepos.findArtifact( "geronimo", "daytrader-streamer", "1.1", "jar" );
78         assertNotNull( artifact );
79
80         if ( !( artifact instanceof ManagedJavaArtifact ) )
81         {
82             fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <" +
83                 artifact.getClass().getName() + ">." );
84         }
85
86         ManagedJavaArtifact javaArtifact = (ManagedJavaArtifact) artifact;
87
88         assertEquals( "test", javaArtifact.getRepositoryId() );
89
90         String pathPrefix = "geronimo/daytrader-streamer/1.1";
91         String pathArtifactVersion = "daytrader-streamer-1.1";
92
93         assertEquals( pathPrefix + "/" + pathArtifactVersion + ".jar", javaArtifact.getPath() );
94         assertNull( "should have no javadoc jar.", javaArtifact.getJavadocPath() );
95         assertNull( "should have no sources jar.", javaArtifact.getSourcesPath() );
96     }
97
98     /**
99      * Test a java find of a snapshot artifact that uses a timestamp format.
100      */
101     public void testFindArtifactJavaSnapshotTimestamp()
102     {
103         ManagedArtifact artifact = managedRepos.findArtifact( "org.apache.geronimo.daytrader", "daytrader-wsappclient",
104                                                               "2.0-20070201.183230-5", "jar" );
105         assertNotNull( artifact );
106
107         if ( !( artifact instanceof ManagedJavaArtifact ) )
108         {
109             fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <" +
110                 artifact.getClass().getName() + ">." );
111         }
112
113         ManagedJavaArtifact javaArtifact = (ManagedJavaArtifact) artifact;
114
115         assertEquals( "test", javaArtifact.getRepositoryId() );
116
117         String pathPrefix = "org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT";
118         String pathArtifactVersion = "daytrader-wsappclient-2.0-20070201.183230-5";
119
120         assertEquals( pathPrefix + "/" + pathArtifactVersion + ".jar", javaArtifact.getPath() );
121         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", javaArtifact.getJavadocPath() );
122         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-sources.jar", javaArtifact.getSourcesPath() );
123     }
124
125     /**
126      * Test a java find of a snapshot artifact.
127      */
128     public void testFindArtifactJavaSnapshot()
129     {
130         ManagedArtifact artifact = managedRepos.findArtifact( "org.apache.geronimo.daytrader", "daytrader-wsappclient",
131                                                               "2.0-SNAPSHOT", "jar" );
132         assertNotNull( artifact );
133
134         if ( !( artifact instanceof ManagedJavaArtifact ) )
135         {
136             fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <" +
137                 artifact.getClass().getName() + ">." );
138         }
139
140         ManagedJavaArtifact javaArtifact = (ManagedJavaArtifact) artifact;
141
142         assertEquals( "test", javaArtifact.getRepositoryId() );
143
144         String pathPrefix = "org/apache/geronimo/daytrader/daytrader-wsappclient/2.0-SNAPSHOT";
145         String pathArtifactVersion = "daytrader-wsappclient-2.0-SNAPSHOT";
146
147         assertEquals( pathPrefix + "/" + pathArtifactVersion + ".jar", javaArtifact.getPath() );
148         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", javaArtifact.getJavadocPath() );
149         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-sources.jar", javaArtifact.getSourcesPath() );
150     }
151
152     /**
153      * Test a ejb find of a snapshot artifact that also has a client jar available.
154      */
155     public void testFindArtifactEjbSnapshot()
156     {
157         ManagedArtifact artifact =
158             managedRepos.findArtifact( "org.apache.geronimo.daytrader", "daytrader-ejb", "2.0-SNAPSHOT", "ejb" );
159         assertNotNull( artifact );
160
161         if ( !( artifact instanceof ManagedEjbArtifact ) )
162         {
163             fail( "Expected artifact to be type <" + ManagedEjbArtifact.class.getName() + "> but was actually <" +
164                 artifact.getClass().getName() + ">." );
165         }
166
167         ManagedEjbArtifact ejbArtifact = (ManagedEjbArtifact) artifact;
168
169         assertEquals( "test", ejbArtifact.getRepositoryId() );
170
171         String pathPrefix = "org/apache/geronimo/daytrader/daytrader-ejb/2.0-SNAPSHOT";
172         String pathArtifactVersion = "daytrader-ejb-2.0-SNAPSHOT";
173
174         assertEquals( pathPrefix + "/" + pathArtifactVersion + ".jar", ejbArtifact.getPath() );
175         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-client.jar", ejbArtifact.getClientPath() );
176         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", ejbArtifact.getJavadocPath() );
177         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-sources.jar", ejbArtifact.getSourcesPath() );
178     }
179
180     /**
181      * Test a simple java find artifact with no extras.
182      */
183     public void testFindArtifactWar()
184     {
185         ManagedArtifact artifact = managedRepos.findArtifact( "geronimo", "daytrader-web", "1.1", "war" );
186         assertNotNull( artifact );
187
188         if ( !( artifact instanceof ManagedJavaArtifact ) )
189         {
190             fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <" +
191                 artifact.getClass().getName() + ">." );
192         }
193
194         ManagedJavaArtifact warArtifact = (ManagedJavaArtifact) artifact;
195
196         assertEquals( "test", warArtifact.getRepositoryId() );
197
198         String pathPrefix = "geronimo/daytrader-web/1.1";
199         String pathArtifactVersion = "daytrader-web-1.1";
200
201         assertEquals( pathPrefix + "/" + pathArtifactVersion + ".war", warArtifact.getPath() );
202         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", warArtifact.getJavadocPath() );
203         assertNull( "should have no sources jar.", warArtifact.getSourcesPath() );
204     }
205 }