mirror of https://github.com/apache/maven.git
Adding tests to verify that super-POM is injected with active profiles when used in standalone fasion.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@421390 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
cc859f5cfb
commit
0712f84f81
|
@ -0,0 +1,145 @@
|
|||
package org.apache.maven.project;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.apache.maven.model.Profile;
|
||||
import org.apache.maven.model.Repository;
|
||||
import org.apache.maven.profiles.DefaultProfileManager;
|
||||
import org.apache.maven.profiles.ProfileManager;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
import org.codehaus.plexus.util.FileUtils;
|
||||
|
||||
public class DefaultMavenProjectBuilderTest
|
||||
extends PlexusTestCase
|
||||
{
|
||||
|
||||
private List filesToDelete = new ArrayList();
|
||||
|
||||
private File localRepoDir;
|
||||
|
||||
private DefaultMavenProjectBuilder projectBuilder;
|
||||
|
||||
public void setUp()
|
||||
throws Exception
|
||||
{
|
||||
super.setUp();
|
||||
|
||||
projectBuilder = (DefaultMavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
|
||||
|
||||
localRepoDir = new File( System.getProperty( "java.io.tmpdir" ), "local-repo." + System.currentTimeMillis() );
|
||||
localRepoDir.mkdirs();
|
||||
|
||||
filesToDelete.add( localRepoDir );
|
||||
}
|
||||
|
||||
public void tearDown()
|
||||
throws Exception
|
||||
{
|
||||
super.tearDown();
|
||||
|
||||
if ( !filesToDelete.isEmpty() )
|
||||
{
|
||||
for ( Iterator it = filesToDelete.iterator(); it.hasNext(); )
|
||||
{
|
||||
File file = (File) it.next();
|
||||
|
||||
if ( file.exists() )
|
||||
{
|
||||
if ( file.isDirectory() )
|
||||
{
|
||||
FileUtils.deleteDirectory( file );
|
||||
}
|
||||
else
|
||||
{
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void testShouldInjectOneProfileToStandaloneSuperPom()
|
||||
throws Exception
|
||||
{
|
||||
ProfileManager pm = new DefaultProfileManager( getContainer(), new Properties() );
|
||||
|
||||
String profileId = "test-profile";
|
||||
String key = "test";
|
||||
String value = "value";
|
||||
|
||||
Profile profile = new Profile();
|
||||
profile.setId( profileId );
|
||||
profile.addProperty( key, value );
|
||||
|
||||
pm.addProfile( profile );
|
||||
pm.explicitlyActivate( profileId );
|
||||
|
||||
MavenProject project = projectBuilder.buildStandaloneSuperProject( getLocalRepository(), pm );
|
||||
|
||||
assertEquals( value, project.getProperties().getProperty( key ) );
|
||||
}
|
||||
|
||||
public void testShouldInjectProfileWithRepositoryToStandaloneSuperPom()
|
||||
throws Exception
|
||||
{
|
||||
ProfileManager pm = new DefaultProfileManager( getContainer(), new Properties() );
|
||||
|
||||
String profileId = "test-profile";
|
||||
String repoId = "test-repo";
|
||||
|
||||
Profile profile = new Profile();
|
||||
profile.setId( profileId );
|
||||
|
||||
Repository repo = new Repository();
|
||||
repo.setId( repoId );
|
||||
repo.setUrl( "http://www.google.com" );
|
||||
|
||||
profile.addRepository( repo );
|
||||
|
||||
pm.addProfile( profile );
|
||||
pm.explicitlyActivate( profileId );
|
||||
|
||||
MavenProject project = projectBuilder.buildStandaloneSuperProject( getLocalRepository(), pm );
|
||||
|
||||
List repositories = project.getRepositories();
|
||||
|
||||
assertNotNull( repositories );
|
||||
|
||||
Repository result = null;
|
||||
|
||||
for ( Iterator it = repositories.iterator(); it.hasNext(); )
|
||||
{
|
||||
Repository candidate = (Repository) it.next();
|
||||
|
||||
if ( repoId.equals( candidate.getId() ) )
|
||||
{
|
||||
result = candidate;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
assertNotNull( "Profile-injected repository not found in super-POM.", result );
|
||||
|
||||
assertEquals( "Profile-injected repository was not first in repo list within super-POM", repoId,
|
||||
( (Repository) repositories.get( 0 ) ).getId() );
|
||||
}
|
||||
|
||||
protected ArtifactRepository getLocalRepository()
|
||||
throws Exception
|
||||
{
|
||||
ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE,
|
||||
"legacy" );
|
||||
|
||||
ArtifactRepository r = new DefaultArtifactRepository( "local", "file://" + localRepoDir.getAbsolutePath(),
|
||||
repoLayout );
|
||||
|
||||
return r;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue