aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java')
-rw-r--r--framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java197
1 files changed, 197 insertions, 0 deletions
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java b/framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
new file mode 100644
index 00000000..0c5cd07d
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
@@ -0,0 +1,197 @@
+package org.apache.maven.project;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.maven.lifecycle.internal.stub.LoggerStub;
+import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Parent;
+import org.apache.maven.model.Profile;
+
+public class MavenProjectTest
+ extends AbstractMavenProjectTestCase
+{
+
+ public void testShouldInterpretChildPathAdjustmentBasedOnModulePaths()
+ throws IOException
+ {
+ Model parentModel = new Model();
+ parentModel.addModule( "../child" );
+
+ MavenProject parentProject = new MavenProject( parentModel );
+
+ Model childModel = new Model();
+ childModel.setArtifactId( "artifact" );
+
+ MavenProject childProject = new MavenProject( childModel );
+
+ File childFile =
+ new File( System.getProperty( "java.io.tmpdir" ), "maven-project-tests" + System.currentTimeMillis()
+ + "/child/pom.xml" );
+
+ childProject.setFile( childFile );
+
+ String adjustment = parentProject.getModulePathAdjustment( childProject );
+
+ assertNotNull( adjustment );
+
+ assertEquals( "..", adjustment );
+ }
+
+ public void testIdentityProtoInheritance()
+ {
+ Parent parent = new Parent();
+
+ parent.setGroupId( "test-group" );
+ parent.setVersion( "1000" );
+ parent.setArtifactId( "test-artifact" );
+
+ Model model = new Model();
+
+ model.setParent( parent );
+ model.setArtifactId( "real-artifact" );
+
+ MavenProject project = new MavenProject( model );
+
+ assertEquals( "groupId proto-inheritance failed.", "test-group", project.getGroupId() );
+ assertEquals( "artifactId is masked.", "real-artifact", project.getArtifactId() );
+ assertEquals( "version proto-inheritance failed.", "1000", project.getVersion() );
+
+ // draw the NPE.
+ project.getId();
+ }
+
+ public void testEmptyConstructor()
+ {
+ MavenProject project = new MavenProject();
+
+ assertEquals( MavenProject.EMPTY_PROJECT_GROUP_ID + ":" + MavenProject.EMPTY_PROJECT_ARTIFACT_ID + ":jar:"
+ + MavenProject.EMPTY_PROJECT_VERSION, project.getId() );
+ }
+
+ public void testClone()
+ throws Exception
+ {
+ File f = getFileForClasspathResource( "canonical-pom.xml" );
+ MavenProject projectToClone = getProject( f );
+
+ MavenProject clonedProject = projectToClone.clone();
+ assertEquals( "maven-core", clonedProject.getArtifactId() );
+ Map<?, ?> clonedMap = clonedProject.getManagedVersionMap();
+ assertNotNull( "ManagedVersionMap not copied", clonedMap );
+ assertTrue( "ManagedVersionMap is not empty", clonedMap.isEmpty() );
+ }
+
+ public void testCloneWithDependencyManagement()
+ throws Exception
+ {
+ File f = getFileForClasspathResource( "dependencyManagement-pom.xml" );
+ MavenProject projectToClone = getProjectWithDependencies( f );
+ DependencyManagement dep = projectToClone.getDependencyManagement();
+ assertNotNull( "No dependencyManagement", dep );
+ List<?> list = dep.getDependencies();
+ assertNotNull( "No dependencies", list );
+ assertTrue( "Empty dependency list", !list.isEmpty() );
+
+ Map<?, ?> map = projectToClone.getManagedVersionMap();
+ assertNotNull( "No ManagedVersionMap", map );
+ assertTrue( "ManagedVersionMap is empty", !map.isEmpty() );
+
+ MavenProject clonedProject = projectToClone.clone();
+ assertEquals( "maven-core", clonedProject.getArtifactId() );
+ Map<?, ?> clonedMap = clonedProject.getManagedVersionMap();
+ assertNotNull( "ManagedVersionMap not copied", clonedMap );
+ assertTrue( "ManagedVersionMap is empty", !clonedMap.isEmpty() );
+ assertTrue( "ManagedVersionMap does not contain test key",
+ clonedMap.containsKey( "maven-test:maven-test-b:jar" ) );
+ }
+
+ public void testGetModulePathAdjustment()
+ throws IOException
+ {
+ Model moduleModel = new Model();
+
+ MavenProject module = new MavenProject( moduleModel );
+ module.setFile( new File( "module-dir/pom.xml" ) );
+
+ Model parentModel = new Model();
+ parentModel.addModule( "../module-dir" );
+
+ MavenProject parent = new MavenProject( parentModel );
+ parent.setFile( new File( "parent-dir/pom.xml" ) );
+
+ String pathAdjustment = parent.getModulePathAdjustment( module );
+
+ assertEquals( "..", pathAdjustment );
+ }
+
+ public void testCloneWithDistributionManagement()
+ throws Exception
+ {
+
+ File f = getFileForClasspathResource( "distributionManagement-pom.xml" );
+ MavenProject projectToClone = getProject( f );
+
+ MavenProject clonedProject = projectToClone.clone();
+ assertNotNull( "clonedProject - distributionManagement", clonedProject.getDistributionManagementArtifactRepository() );
+ }
+
+ public void testCloneWithActiveProfile()
+ throws Exception
+ {
+
+ File f = getFileForClasspathResource( "withActiveByDefaultProfile-pom.xml" );
+ MavenProject projectToClone = getProject( f );
+ List<Profile> activeProfilesOrig = projectToClone.getActiveProfiles();
+
+ assertEquals( "Expecting 1 active profile", 1, activeProfilesOrig.size() );
+
+ MavenProject clonedProject = projectToClone.clone();
+
+ List<Profile> activeProfilesClone = clonedProject.getActiveProfiles();
+
+ assertEquals( "Expecting 1 active profile", 1, activeProfilesClone.size() );
+
+ assertNotSame( "The list of active profiles should have been cloned too but is same", activeProfilesOrig,
+ activeProfilesClone );
+ }
+
+ public void testUndefinedOutputDirectory()
+ throws Exception
+ {
+ MavenProject p = new MavenProject();
+ assertNoNulls( p.getCompileClasspathElements() );
+ assertNoNulls( p.getSystemClasspathElements() );
+ assertNoNulls( p.getRuntimeClasspathElements() );
+ assertNoNulls( p.getTestClasspathElements() );
+ }
+
+ private void assertNoNulls( List<String> elements )
+ {
+ assertFalse( elements.contains( null ) );
+ }
+
+}