diff options
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.java | 197 |
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 ) ); + } + +} |