mirror of https://github.com/apache/maven.git
[MNG-3482] Adding an integration test to verify this fix.
git-svn-id: https://svn.apache.org/repos/asf/maven/core-integration-testing/trunk@649331 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
54ddb58b1e
commit
d91bd35abe
|
@ -67,6 +67,7 @@ public class IntegrationTestSuite
|
|||
|
||||
suite.addTestSuite( MavenITmng3498ForkToOtherMojoTest.class );
|
||||
suite.addTestSuite( MavenITmng3485OverrideWagonExtensionTest.class );
|
||||
suite.addTestSuite( MavenITmng3482DependencyPomInterpolationTest.class );
|
||||
suite.addTestSuite( MavenITmng3473PluginReportCrash.class );
|
||||
suite.addTestSuite( MavenITmng3428PluginDescriptorArtifactsIncompleteTest.class );
|
||||
suite.addTestSuite( MavenITmng3426PluginsClasspathOverrideTest.class );
|
||||
|
|
|
@ -0,0 +1,160 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package org.apache.maven.integrationtests;
|
||||
|
||||
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
|
||||
import org.apache.maven.it.Verifier;
|
||||
import org.apache.maven.it.util.IOUtil;
|
||||
import org.apache.maven.it.util.ResourceExtractor;
|
||||
import org.apache.maven.it.util.StringUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.io.Writer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* This is a test set for <a href="http://jira.codehaus.org/browse/MNG-3482">MNG-3482</a>.
|
||||
*
|
||||
* @todo Fill in a better description of what this test verifies!
|
||||
*
|
||||
* @author <a href="mailto:brianf@apache.org">Brian Fox</a>
|
||||
* @author jdcasey
|
||||
*
|
||||
*/
|
||||
public class MavenITmng3482DependencyPomInterpolationTest
|
||||
extends AbstractMavenIntegrationTestCase
|
||||
{
|
||||
public MavenITmng3482DependencyPomInterpolationTest()
|
||||
throws InvalidVersionSpecificationException
|
||||
{
|
||||
super( "(2.0.8,)" ); // only test in 2.0.9+
|
||||
}
|
||||
|
||||
public void testitMNG3482()
|
||||
throws Exception
|
||||
{
|
||||
// The testdir is computed from the location of this
|
||||
// file.
|
||||
File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-3482" );
|
||||
|
||||
File settings = writeSettings( testDir );
|
||||
|
||||
Verifier verifier;
|
||||
|
||||
/*
|
||||
* We must first make sure that any artifact created
|
||||
* by this test has been removed from the local
|
||||
* repository. Failing to do this could cause
|
||||
* unstable test results. Fortunately, the verifier
|
||||
* makes it easy to do this.
|
||||
*/
|
||||
verifier = new Verifier( testDir.getAbsolutePath() );
|
||||
|
||||
verifier.deleteArtifact( "org.apache.maven.its.mng3482", "mng-3482", "1", "pom" );
|
||||
verifier.deleteArtifact( "org.apache.maven.its.mng3482", "mng-3482", "1", "jar" );
|
||||
verifier.deleteArtifact( "test", "dep", "1", "pom" );
|
||||
verifier.deleteArtifact( "test", "dep2", "1", "pom" );
|
||||
verifier.deleteArtifact( "test", "dep2", "1", "jar" );
|
||||
|
||||
/*
|
||||
* The Command Line Options (CLI) are passed to the
|
||||
* verifier as a list. This is handy for things like
|
||||
* redefining the local repository if needed. In
|
||||
* this case, we use the -N flag so that Maven won't
|
||||
* recurse. We are only installing the parent pom to
|
||||
* the local repo here.
|
||||
*/
|
||||
List cliOptions = new ArrayList();
|
||||
|
||||
cliOptions.add( "-s" );
|
||||
cliOptions.add( settings.getAbsolutePath() );
|
||||
cliOptions.add( "-X" );
|
||||
|
||||
verifier.setCliOptions( cliOptions );
|
||||
|
||||
verifier.executeGoal( "compile" );
|
||||
|
||||
/*
|
||||
* This is the simplest way to check a build
|
||||
* succeeded. It is also the simplest way to create
|
||||
* an IT test: make the build pass when the test
|
||||
* should pass, and make the build fail when the
|
||||
* test should fail. There are other methods
|
||||
* supported by the verifier. They can be seen here:
|
||||
* http://maven.apache.org/shared/maven-verifier/apidocs/index.html
|
||||
*/
|
||||
verifier.verifyErrorFreeLog();
|
||||
|
||||
/*
|
||||
* Reset the streams before executing the verifier
|
||||
* again.
|
||||
*/
|
||||
verifier.resetStreams();
|
||||
}
|
||||
|
||||
private File writeSettings( File testDir )
|
||||
throws IOException
|
||||
{
|
||||
File settingsIn = new File( testDir, "settings.xml.in" );
|
||||
|
||||
String settingsContent = null;
|
||||
Reader reader = null;
|
||||
try
|
||||
{
|
||||
reader = new FileReader( settingsIn );
|
||||
settingsContent = IOUtil.toString( reader );
|
||||
}
|
||||
finally
|
||||
{
|
||||
IOUtil.close( reader );
|
||||
}
|
||||
|
||||
settingsContent = StringUtils.replace( settingsContent,
|
||||
"@TESTDIR@",
|
||||
testDir.getAbsolutePath() );
|
||||
|
||||
File settingsOut = new File( testDir, "settings.xml" );
|
||||
|
||||
System.out.println( "Writing tets settings to: " + settingsOut );
|
||||
|
||||
if ( settingsOut.exists() )
|
||||
{
|
||||
settingsOut.delete();
|
||||
}
|
||||
|
||||
Writer writer = null;
|
||||
try
|
||||
{
|
||||
writer = new FileWriter( settingsOut );
|
||||
IOUtil.copy( settingsContent, writer );
|
||||
}
|
||||
finally
|
||||
{
|
||||
IOUtil.close( writer );
|
||||
}
|
||||
|
||||
return settingsOut;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.apache.maven.its.mng3482</groupId>
|
||||
<artifactId>mng-3482</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1</version>
|
||||
|
||||
<name>Integration Test Project for MNG-3482</name>
|
||||
<description>
|
||||
This project verifies that MNG-3482 is fixed. It is controlled by a JUnit test called org.apache.maven.integrationtests.MNG3482Test
|
||||
</description>
|
||||
|
||||
<url>http://jira.codehaus.org/browse/MNG-3482</url>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>test</groupId>
|
||||
<artifactId>dep</artifactId>
|
||||
<version>1</version>
|
||||
<type>pom</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -0,0 +1 @@
|
|||
Fill this in with a description of the scenario this test attempts to check. Also include instructions for running the test manually from the command line.
|
|
@ -0,0 +1,14 @@
|
|||
<project>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>test</groupId>
|
||||
<artifactId>dep</artifactId>
|
||||
<version>1</version>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>test</groupId>
|
||||
<artifactId>dep2</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
Binary file not shown.
|
@ -0,0 +1,7 @@
|
|||
<project>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>test</groupId>
|
||||
<artifactId>dep2</artifactId>
|
||||
<version>1</version>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,22 @@
|
|||
<settings>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>remote-repository</id>
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>testing-repo</id>
|
||||
<url>file://@TESTDIR@/repo</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>testing-repo</id>
|
||||
<url>file://@TESTDIR@/repo</url>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
</profile>
|
||||
</profiles>
|
||||
<activeProfiles>
|
||||
<activeProfile>remote-repository</activeProfile>
|
||||
</activeProfiles>
|
||||
</settings>
|
|
@ -0,0 +1,5 @@
|
|||
package tests.mng3482;
|
||||
|
||||
import test.dep2.App;
|
||||
|
||||
public class AppMNG3482{}
|
Loading…
Reference in New Issue