1 package org.apache.maven.artifact.repository.metadata;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.artifact.Artifact;
23 import org.apache.maven.artifact.repository.ArtifactRepository;
24 import org.apache.maven.artifact.testutils.MockManager;
25 import org.apache.maven.artifact.testutils.TestFileManager;
26 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
27 import org.easymock.MockControl;
28
29 import java.io.File;
30 import java.io.IOException;
31
32 import junit.framework.TestCase;
33
34 public class AbstractRepositoryMetadataTest
35 extends TestCase
36 {
37
38 private MockManager mm = new MockManager();
39 private TestFileManager fileManager = new TestFileManager( "AbstractRepositoryMetadataTest.test.", "" );
40
41 public void tearDown() throws IOException
42 {
43 fileManager.cleanUp();
44 }
45
46 public void testUpdateRepositoryMetadata_NoVersionTagIfMainVersionIsLATEST()
47 throws IOException, XmlPullParserException
48 {
49 MockAndControlForArtifactRepository local = new MockAndControlForArtifactRepository();
50 MockAndControlForArtifactRepository remote = new MockAndControlForArtifactRepository();
51
52 File basedir = fileManager.createTempDir();
53
54 String path = "metadata.xml";
55
56 Metadata m = new Metadata();
57 m.setVersion( Artifact.LATEST_VERSION );
58
59 TestRepoMetadata trm = new TestRepoMetadata( m );
60
61 local.expectGetBasedir( basedir );
62 local.expectPathOfLocalRepositoryMetadata( trm, remote.repository, path );
63
64 mm.replayAll();
65
66 trm.updateRepositoryMetadata( local.repository, remote.repository );
67
68 fileManager.assertFileExistence( basedir, path, true );
69 assertTrue( fileManager.getFileContents( new File( basedir, path ) ).indexOf( "<version>"
70 + Artifact.LATEST_VERSION + "</version>" ) < 0 );
71
72 mm.verifyAll();
73 }
74
75 public void testUpdateRepositoryMetadata_NoVersionTagIfVersionIsRELEASE()
76 throws IOException, XmlPullParserException
77 {
78 MockAndControlForArtifactRepository local = new MockAndControlForArtifactRepository();
79 MockAndControlForArtifactRepository remote = new MockAndControlForArtifactRepository();
80
81 File basedir = fileManager.createTempDir();
82
83 String path = "metadata.xml";
84
85 Metadata m = new Metadata();
86 m.setVersion( Artifact.RELEASE_VERSION );
87
88 TestRepoMetadata trm = new TestRepoMetadata( m );
89
90 local.expectGetBasedir( basedir );
91 local.expectPathOfLocalRepositoryMetadata( trm, remote.repository, path );
92
93 mm.replayAll();
94
95 trm.updateRepositoryMetadata( local.repository, remote.repository );
96
97 fileManager.assertFileExistence( basedir, path, true );
98 assertTrue( fileManager.getFileContents( new File( basedir, path ) ).indexOf( "<version>"
99 + Artifact.RELEASE_VERSION + "</version>" ) < 0 );
100
101 mm.verifyAll();
102 }
103
104 private final class MockAndControlForArtifactRepository
105 {
106 MockControl control;
107
108 ArtifactRepository repository;
109
110 public MockAndControlForArtifactRepository()
111 {
112 control = MockControl.createControl( ArtifactRepository.class );
113 mm.add( control );
114
115 repository = ( ArtifactRepository ) control.getMock();
116 }
117
118 public void expectPathOfLocalRepositoryMetadata( TestRepoMetadata trm, ArtifactRepository remote, String path )
119 {
120 repository.pathOfLocalRepositoryMetadata( trm, remote );
121 control.setReturnValue( path, MockControl.ONE_OR_MORE );
122 }
123
124 public void expectGetBasedir( File basedir )
125 {
126 repository.getBasedir();
127 control.setReturnValue( basedir.getAbsolutePath(), MockControl.ONE_OR_MORE );
128 }
129 }
130
131 private static final class TestRepoMetadata
132 extends AbstractRepositoryMetadata
133 {
134
135 protected TestRepoMetadata( Metadata metadata )
136 {
137 super( metadata );
138 }
139
140 public boolean isSnapshot()
141 {
142 return false;
143 }
144
145 public void setRepository( ArtifactRepository remoteRepository )
146 {
147 }
148
149 public String getArtifactId()
150 {
151 return null;
152 }
153
154 public String getBaseVersion()
155 {
156 return null;
157 }
158
159 public String getGroupId()
160 {
161 return null;
162 }
163
164 public Object getKey()
165 {
166 return null;
167 }
168
169 public boolean storedInArtifactVersionDirectory()
170 {
171 return false;
172 }
173
174 public boolean storedInGroupDirectory()
175 {
176 return false;
177 }
178
179 }
180
181 }