]> source.dussan.org Git - archiva.git/blob
db40272ca8d30591e8d8c08dc1231b2345f547f0
[archiva.git] /
1 package org.apache.maven.archiva.repository.project.resolvers;
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 java.io.File;
23
24 import org.apache.maven.archiva.configuration.FileTypes;
25 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
26 import org.apache.maven.archiva.model.ArchivaProjectModel;
27 import org.apache.maven.archiva.model.VersionedReference;
28 import org.apache.maven.archiva.repository.content.ManagedDefaultRepositoryContent;
29 import org.apache.maven.archiva.repository.project.ProjectModelException;
30 import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader;
31 import org.codehaus.plexus.spring.PlexusInSpringTestCase;
32
33 public class ManagedRepositoryProjectResolverTest
34     extends PlexusInSpringTestCase
35 {
36     private ManagedRepositoryProjectResolver resolver;
37     
38     public void setUp() throws Exception
39     {
40         super.setUp();
41         
42         FileTypes fileTypes = new MockFileTypes();
43         
44         ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration();
45         repoConfig.setId( "test-repo" );
46         repoConfig.setLocation( new File( getBasedir(), "target/test-classes/test-repo" ).getPath() );
47         repoConfig.setName( "Test Repository" );
48         
49         ManagedDefaultRepositoryContent repository = new ManagedDefaultRepositoryContent();
50         repository.setRepository( repoConfig );
51         repository.setFiletypes( fileTypes );
52         
53         resolver = new ManagedRepositoryProjectResolver( repository, new ProjectModel400Reader() );        
54     }
55     
56     public void testResolveSnapshotUniqueVersionPresent()
57         throws Exception
58     {
59         VersionedReference ref = new VersionedReference();
60         ref.setGroupId( "org.apache.archiva" );
61         ref.setArtifactId( "unique-version" );
62         ref.setVersion( "1.0-SNAPSHOT" );
63         
64         try
65         {
66             ArchivaProjectModel model = resolver.resolveProjectModel( ref );
67             
68             assertNotNull( model );
69             assertEquals( "org.apache.archiva", model.getGroupId() );
70             assertEquals( "unique-version", model.getArtifactId() );
71             assertEquals( "1.0-SNAPSHOT", model.getVersion() );
72             assertEquals( "Unique Version Snapshot - Build 3", model.getName() );            
73         } 
74         catch ( Exception e )
75         {
76             if( e instanceof ProjectModelException )
77             {
78                 fail( "A ProjectModelException should not have occurred. Instead, the latest timestamp should have been found!" );
79             }
80             else
81             {
82                 throw e;
83             }
84         }
85     }
86     
87     public void testResolveSnapshotGenericVersionPresent()
88         throws Exception
89     {
90         VersionedReference ref = new VersionedReference();
91         ref.setGroupId( "org.apache.archiva" );
92         ref.setArtifactId( "generic-version" );
93         ref.setVersion( "1.0-SNAPSHOT" );
94         
95         ArchivaProjectModel model = resolver.resolveProjectModel( ref );
96         
97         assertNotNull( model );
98         assertEquals( "org.apache.archiva", model.getGroupId() );
99         assertEquals( "generic-version", model.getArtifactId() );
100         assertEquals( "1.0-SNAPSHOT", model.getVersion() );
101     }
102     
103     public void testResolveSuccessful()
104         throws Exception
105     {
106         VersionedReference ref = new VersionedReference();
107         ref.setGroupId( "org.apache.archiva" );
108         ref.setArtifactId( "released-version" );
109         ref.setVersion( "1.0" );
110         
111         ArchivaProjectModel model = resolver.resolveProjectModel( ref );
112         
113         assertNotNull( model );
114         assertEquals( "org.apache.archiva", model.getGroupId() );
115         assertEquals( "released-version", model.getArtifactId() );
116         assertEquals( "1.0", model.getVersion() );
117     }
118     
119     public void testResolveNotFound()
120         throws Exception
121     {
122         VersionedReference ref = new VersionedReference();
123         ref.setGroupId( "org.apache.archiva" );
124         ref.setArtifactId( "non-existant" );
125         ref.setVersion( "2.0" );
126         
127         try
128         {
129             resolver.resolveProjectModel( ref );
130             fail( "A ProjectModelException should have been thrown." );
131         }
132         catch( Exception e )
133         {
134             assertTrue( e instanceof ProjectModelException );
135         }
136     }    
137     
138     class MockFileTypes
139         extends FileTypes
140     {
141         public boolean matchesArtifactPattern( String relativePath )
142         {
143             return true;
144         }
145     }
146 }