1 package org.apache.maven.project;
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 import java.io.IOException;
24 import java.util.List;
25 import java.util.Map;
26
27 import org.apache.maven.model.DependencyManagement;
28 import org.apache.maven.model.Model;
29 import org.apache.maven.model.Parent;
30
31 public class MavenProjectTest
32 extends AbstractMavenProjectTestCase
33 {
34
35 public void testShouldInterpretChildPathAdjustmentBasedOnModulePaths()
36 throws IOException
37 {
38 Model parentModel = new Model();
39 parentModel.addModule( "../child" );
40
41 MavenProject parentProject = new MavenProject( parentModel );
42
43 Model childModel = new Model();
44 childModel.setArtifactId( "artifact" );
45
46 MavenProject childProject = new MavenProject( childModel );
47
48 File childFile = new File( System.getProperty( "java.io.tmpdir" ), "maven-project-tests" + System.currentTimeMillis() + "/child/pom.xml" );
49
50 childProject.setFile( childFile );
51
52 String adjustment = parentProject.getModulePathAdjustment( childProject );
53
54 assertNotNull( adjustment );
55
56 assertEquals( "..", adjustment );
57 }
58
59 public void testIdentityProtoInheritance()
60 {
61 Parent parent = new Parent();
62
63 parent.setGroupId( "test-group" );
64 parent.setVersion( "1000" );
65 parent.setArtifactId( "test-artifact" );
66
67 Model model = new Model();
68
69 model.setParent( parent );
70 model.setArtifactId( "real-artifact" );
71
72 MavenProject project = new MavenProject( model );
73
74 assertEquals( "groupId proto-inheritance failed.", "test-group", project.getGroupId() );
75 assertEquals( "artifactId is masked.", "real-artifact", project.getArtifactId() );
76 assertEquals( "version proto-inheritance failed.", "1000", project.getVersion() );
77
78
79 project.getId();
80 }
81
82 public void testEmptyConstructor()
83 {
84 MavenProject project = new MavenProject();
85
86 assertEquals( MavenProject.EMPTY_PROJECT_GROUP_ID + ":" + MavenProject.EMPTY_PROJECT_ARTIFACT_ID + ":jar:"
87 + MavenProject.EMPTY_PROJECT_VERSION, project.getId() );
88 }
89
90 public void testClone()
91 throws Exception
92 {
93 File f = getFileForClasspathResource( "canonical-pom.xml" );
94 MavenProject projectToClone = getProject( f );
95
96 MavenProject clonedProject = (MavenProject) projectToClone.clone();
97 assertEquals( "maven-core", clonedProject.getArtifactId() );
98 Map clonedMap = clonedProject.getManagedVersionMap();
99 assertNotNull( "ManagedVersionMap not copied", clonedMap );
100 assertTrue( "ManagedVersionMap is not empty", clonedMap.isEmpty() );
101 }
102
103 public void testCloneWithDependencyManagement()
104 throws Exception
105 {
106 File f = getFileForClasspathResource( "dependencyManagement-pom.xml" );
107 MavenProject projectToClone = getProjectWithDependencies( f );
108 DependencyManagement dep = projectToClone.getDependencyManagement();
109 assertNotNull( "No dependencyManagement", dep );
110 List list = dep.getDependencies();
111 assertNotNull( "No dependencies", list );
112 assertTrue( "Empty dependency list", !list.isEmpty() );
113
114 Map map = projectToClone.getManagedVersionMap();
115 assertNotNull( "No ManagedVersionMap", map );
116 assertTrue( "ManagedVersionMap is empty", !map.isEmpty() );
117
118 MavenProject clonedProject = (MavenProject) projectToClone.clone();
119 assertEquals( "maven-core", clonedProject.getArtifactId() );
120 Map clonedMap = clonedProject.getManagedVersionMap();
121 assertNotNull( "ManagedVersionMap not copied", clonedMap );
122 assertTrue( "ManagedVersionMap is empty", !clonedMap.isEmpty() );
123 assertTrue( "ManagedVersionMap does not contain test key",
124 clonedMap.containsKey( "maven-test:maven-test-b:jar" ) );
125 }
126
127 public void testGetModulePathAdjustment()
128 throws IOException
129 {
130 Model moduleModel = new Model();
131
132 MavenProject module = new MavenProject( moduleModel );
133 module.setFile( new File( "module-dir/pom.xml" ) );
134
135 Model parentModel = new Model();
136 parentModel.addModule( "../module-dir" );
137
138 MavenProject parent = new MavenProject( parentModel );
139 parent.setFile( new File( "parent-dir/pom.xml" ) );
140
141 String pathAdjustment = parent.getModulePathAdjustment( module );
142
143 assertEquals( "..", pathAdjustment );
144 }
145
146 public void testCloneWithDistributionManagement() throws Exception
147 {
148
149 File f = getFileForClasspathResource( "distributionManagement-pom.xml" );
150 MavenProject projectToClone = getProject( f );
151
152 MavenProject clonedProject = (MavenProject) projectToClone.clone();
153 assertNotNull( "clonedProject - distributionManagement", clonedProject.getDistributionManagementArtifactRepository() );
154 }
155 }