You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2006/07/12 21:43:54 UTC

svn commit: r421390 - /maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java

Author: jdcasey
Date: Wed Jul 12 12:43:54 2006
New Revision: 421390

URL: http://svn.apache.org/viewvc?rev=421390&view=rev
Log:
Adding tests to verify that super-POM is injected with active profiles when used in standalone fasion.

Added:
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java   (with props)

Added: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java?rev=421390&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java (added)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java Wed Jul 12 12:43:54 2006
@@ -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;
+    }
+}

Propchange: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"