1 package org.apache.maven.archiva.repository.project.resolvers;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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 ( ProjectModelException e )
75 {
76 fail( "A ProjectModelException should not have occurred. Instead, the latest timestamp should have been found!" );
77 }
78 }
79
80 public void testResolveSnapshotGenericVersionPresent()
81 throws Exception
82 {
83 VersionedReference ref = new VersionedReference();
84 ref.setGroupId( "org.apache.archiva" );
85 ref.setArtifactId( "generic-version" );
86 ref.setVersion( "1.0-SNAPSHOT" );
87
88 ArchivaProjectModel model = resolver.resolveProjectModel( ref );
89
90 assertNotNull( model );
91 assertEquals( "org.apache.archiva", model.getGroupId() );
92 assertEquals( "generic-version", model.getArtifactId() );
93 assertEquals( "1.0-SNAPSHOT", model.getVersion() );
94 }
95
96 public void testResolveSuccessful()
97 throws Exception
98 {
99 VersionedReference ref = new VersionedReference();
100 ref.setGroupId( "org.apache.archiva" );
101 ref.setArtifactId( "released-version" );
102 ref.setVersion( "1.0" );
103
104 ArchivaProjectModel model = resolver.resolveProjectModel( ref );
105
106 assertNotNull( model );
107 assertEquals( "org.apache.archiva", model.getGroupId() );
108 assertEquals( "released-version", model.getArtifactId() );
109 assertEquals( "1.0", model.getVersion() );
110 }
111
112 public void testResolveNotFound()
113 throws Exception
114 {
115 VersionedReference ref = new VersionedReference();
116 ref.setGroupId( "org.apache.archiva" );
117 ref.setArtifactId( "non-existant" );
118 ref.setVersion( "2.0" );
119
120 try
121 {
122 resolver.resolveProjectModel( ref );
123 fail( "A ProjectModelException should have been thrown." );
124 }
125 catch( ProjectModelException e )
126 {
127 assertTrue( true );
128 }
129 }
130
131 class MockFileTypes
132 extends FileTypes
133 {
134 public boolean matchesArtifactPattern( String relativePath )
135 {
136 return true;
137 }
138 }
139 }