1 package org.apache.maven.plugins.stage;
2
3 import org.codehaus.plexus.PlexusTestCase;
4 import org.codehaus.plexus.util.FileUtils;
5 import org.codehaus.plexus.util.IOUtil;
6 import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
7 import org.apache.maven.artifact.repository.metadata.Metadata;
8 import org.apache.maven.wagon.repository.Repository;
9
10 import java.io.File;
11 import java.io.Reader;
12 import java.io.FileReader;
13 import java.util.List;
14
15
16 public class RepositoryCopierTest
17 extends PlexusTestCase
18 {
19 private String version = "2.0.6";
20
21 private MetadataXpp3Reader reader = new MetadataXpp3Reader();
22
23 public void testCopy()
24 throws Exception
25 {
26 RepositoryCopier copier = (RepositoryCopier) lookup( RepositoryCopier.ROLE );
27
28 File targetRepoSource = new File( getBasedir(), "src/test/target-repository" );
29
30 File targetRepo = new File( getBasedir(), "target/target-repository" );
31
32 System.out.println( "Copying target stage for tests ..." );
33
34 FileUtils.copyDirectoryStructure( targetRepoSource, targetRepo );
35
36 File stagingRepo = new File( getBasedir(), "src/test/staging-repository" );
37
38 Repository sourceRepository = new Repository( "source", "file://" + stagingRepo );
39 Repository targetRepository = new Repository( "target", "scp://localhost/" + targetRepo );
40
41 copier.copy( sourceRepository, targetRepository, version );
42
43 String s[] = {
44 "maven",
45 "maven-artifact",
46 "maven-artifact-manager",
47 "maven-artifact-test",
48 "maven-core",
49 "maven-error-diagnostics",
50 "maven-model",
51 "maven-monitor",
52 "maven-plugin-api",
53 "maven-plugin-descriptor",
54 "maven-plugin-parameter-documenter",
55 "maven-plugin-registry",
56 "maven-profile",
57 "maven-project",
58 "maven-repository-metadata",
59 "maven-script",
60 "maven-script-ant",
61 "maven-script-beanshell",
62 "maven-settings" };
63
64 for ( int i = 0; i < s.length; i++ )
65 {
66 testMavenArtifact( targetRepo, s[i] );
67 }
68
69
70
71
72
73
74
75
76
77
78 }
79
80 private void testMavenArtifact( File repo, String artifact )
81 throws Exception
82 {
83 File basedir = new File( repo, "org/apache/maven/" + artifact );
84
85 File versionDir = new File( basedir, version );
86
87 assertTrue( versionDir.exists() );
88
89 Reader r = new FileReader( new File( basedir, RepositoryCopier.MAVEN_METADATA) );
90
91 Metadata metadata = reader.read( r );
92
93
94 assertEquals( version, metadata.getVersioning().getRelease() );
95
96 assertEquals( "20070327020553", metadata.getVersioning().getLastUpdated() );
97
98
99 List versions = metadata.getVersioning().getVersions();
100
101 assertTrue( versions.contains( "2.0.1" ) );
102
103 assertTrue( versions.contains( "2.0.2" ) );
104
105 assertTrue( versions.contains( "2.0.3" ) );
106
107 assertTrue( versions.contains( "2.0.4" ) );
108
109 assertTrue( versions.contains( "2.0.5" ) );
110
111 IOUtil.close( r );
112 }
113 }