o the extension test with checkstyle now passes on 2.0.4 and fails with trunk and 2.0.x so now time to fix

git-svn-id: https://svn.apache.org/repos/asf/maven/core-integration-testing/trunk@494678 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2007-01-10 01:23:33 +00:00
parent e189ad21fb
commit f5d9d86ae5
7 changed files with 238 additions and 17 deletions

View File

@ -117,6 +117,8 @@ public class IntegrationTestSuite
// suite.addTestSuite(MavenIT0106Test.class); // suite.addTestSuite(MavenIT0106Test.class);
// suite.addTestSuite(MavenIT0107Test.class); // suite.addTestSuite(MavenIT0107Test.class);
suite.addTestSuite( MavenIT0109SnapshotUpdateTest.class ); suite.addTestSuite( MavenIT0109SnapshotUpdateTest.class );
suite.addTestSuite( MavenIT0110PluginDependenciesComeFromPluginReposTest.class );
suite.addTestSuite( MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest.class );
return suite; return suite;
} }
} }

View File

@ -0,0 +1,135 @@
package org.apache.maven.integrationtests;
/*
* 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 org.apache.maven.it.Verifier;
import org.apache.maven.it.util.FileUtils;
import org.apache.maven.it.util.ResourceExtractor;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* Test to verify that a release can be updated.
*/
public class MavenIT0108ReleaseUpdateTest
extends AbstractMavenIntegrationTestCase
{
private static final String GROUPID = "org.apache.maven.it";
private static final String ARTIFACTID = "maven-it-release-update";
private static final String TYPE = "jar";
private static final String POM_TYPE = "pom";
private static final String OLD_VERSION = "1.0";
private static final String NEW_VERSION = "1.1";
public void testReleaseUpdated()
throws Exception
{
File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/it0109-releaseUpdate" );
Verifier verifier = new Verifier( testDir.getAbsolutePath() );
verifier.deleteArtifact( GROUPID, ARTIFACTID, OLD_VERSION, TYPE );
verifier.deleteArtifact( GROUPID, ARTIFACTID, OLD_VERSION, POM_TYPE );
verifier.deleteArtifact( GROUPID, ARTIFACTID, NEW_VERSION, TYPE );
verifier.deleteArtifact( GROUPID, ARTIFACTID, NEW_VERSION, POM_TYPE );
writeMetadata( new File( verifier.localRepo ), "maven-metadata-it.releases.xml", OLD_VERSION,
"20051230031110" );
// create a repository (TODO: into verifier)
File repository = new File( testDir, "repository" );
repository.mkdirs();
// create artifact in repository (TODO: into verifier)
writeArtifact( repository, OLD_VERSION );
writeArtifact( repository, NEW_VERSION );
writeMetadata( repository, "maven-metadata.xml", NEW_VERSION, "20061230031110" );
verifier.assertArtifactNotPresent( GROUPID, ARTIFACTID, OLD_VERSION, TYPE );
verifier.assertArtifactNotPresent( GROUPID, ARTIFACTID, NEW_VERSION, TYPE );
Map m = new HashMap();
/*
m.put( "MAVEN_OPTS",
"-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" );
*/
verifier.executeGoal( "package", m );
verifier.assertArtifactNotPresent( GROUPID, ARTIFACTID, OLD_VERSION, TYPE );
verifier.assertArtifactPresent( GROUPID, ARTIFACTID, NEW_VERSION, TYPE );
verifier.verifyErrorFreeLog();
verifier.resetStreams();
}
private static void writeMetadata( File repository, String fileName, String version, String timestamp )
throws IOException
{
File metadata = new File( repository, GROUPID.replace( '.', '/' ) + "/" + ARTIFACTID + "/" + fileName );
metadata.getParentFile().mkdirs();
StringBuffer content = new StringBuffer();
content.append( "<?xml version=\"1.0\"?><metadata>\n" );
content.append( " <groupId>" + GROUPID + "</groupId>\n" );
content.append( " <artifactId>" + ARTIFACTID + "</artifactId>\n" );
content.append( " <versioning>\n" );
content.append( " <latest>" + version + "</latest>\n" );
content.append( " <release>" + version + "</release>\n" );
content.append( " <versions>\n" );
content.append( " <version>" + OLD_VERSION + "</version>\n" );
content.append( " <version>" + NEW_VERSION + "</version>\n" );
content.append( " </versions>\n" );
content.append( " <lastUpdated>" + timestamp + "</lastUpdated>\n" );
content.append( " </versioning>\n" );
content.append( "</metadata>" );
FileUtils.fileWrite( metadata.getAbsolutePath(), content.toString() );
}
private static void writeArtifact( File repository, String version )
throws IOException
{
/*
File artifact = new File( repository, GROUPID.replace( '.', '/' ) + "/" + ARTIFACTID + "/" + version + "/" +
ARTIFACTID + "-" + version + "." + TYPE );
artifact.getParentFile().mkdirs();
FileUtils.fileWrite( artifact.getAbsolutePath(), version );
StringBuffer content = new StringBuffer();
content.append( "<?xml version=\"1.0\"?><project>\n" );
content.append( " <modelVersion>4.0.0</modelVersion>\n" );
content.append( " <groupId>" + GROUPID + "</groupId>\n" );
content.append( " <artifactId>" + ARTIFACTID + "</artifactId>\n" );
content.append( " <version>" + version + "</version>\n" );
content.append( " <packaging>maven-plugin</packaging>\n" );
content.append( "</project>" );
artifact = new File( artifact.getParentFile(), ARTIFACTID + "-" + version + "." + POM_TYPE );
FileUtils.fileWrite( artifact.getAbsolutePath(), content.toString() );
*/
}
}

View File

@ -0,0 +1,73 @@
package org.apache.maven.integrationtests;
/*
* Copyright 2004-2006 The Apache Software Foundation.
*
* Licensed 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 org.apache.maven.it.Verifier;
import org.apache.maven.it.util.FileUtils;
import org.apache.maven.it.util.ResourceExtractor;
import java.io.File;
/**
* Downloads a snapshot dependency that was deployed with uniqueVersion = false, and checks it can be
* updated. See MNG-1908.
*/
public class MavenIT0109SnapshotUpdateTest
extends AbstractMavenIntegrationTestCase
{
public void testSnapshotUpdated()
throws Exception
{
File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/it0108-snapshotUpdate" );
Verifier verifier = new Verifier( testDir.getAbsolutePath() );
verifier.deleteArtifact( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar" );
// create a repository (TODO: into verifier)
File repository = new File( testDir, "repository" );
repository.mkdirs();
// create artifact in repository (TODO: into verifier)
File artifact = new File( repository,
"org/apache/maven/maven-core-it-support/1.0-SNAPSHOT/maven-core-it-support-1.0-SNAPSHOT.jar" );
artifact.getParentFile().mkdirs();
FileUtils.fileWrite( artifact.getAbsolutePath(), "originalArtifact" );
verifier.assertArtifactNotPresent( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar" );
verifier.executeGoal( "package" );
verifier.assertArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar" );
verifier.assertArtifactContents( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar",
"originalArtifact" );
File localRepoFile =
new File( verifier.getArtifactPath( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar" ) );
// set in the past to ensure it is downloaded
localRepoFile.setLastModified( System.currentTimeMillis() - 5000 );
FileUtils.fileWrite( artifact.getAbsolutePath(), "updatedArtifact" );
verifier.executeGoal( "package" );
verifier.assertArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar" );
verifier.assertArtifactContents( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar",
"updatedArtifact" );
verifier.verifyErrorFreeLog();
verifier.resetStreams();
}
}

View File

@ -5,22 +5,16 @@ import org.apache.maven.it.util.ResourceExtractor;
import java.io.File; import java.io.File;
/** #it0104 Commenting out, not fixed until post-2.0.4, due to dependency on new plexus-container-default version. */
public class MavenIT0110PluginDependenciesComeFromPluginReposTest public class MavenIT0110PluginDependenciesComeFromPluginReposTest
extends AbstractMavenIntegrationTestCase extends AbstractMavenIntegrationTestCase
{ {
/**
* Verify that plugin configurations are resolved correctly, particularly
* when they contain ${project.build.directory} in the string value of a
* Map.Entry.
*/
public void testit0110() public void testit0110()
throws Exception throws Exception
{ {
File testDir = File testDir =
ResourceExtractor.simpleExtractResources( getClass(), "/it0110-pluginDependenciesComeFromPluginRepos" ); ResourceExtractor.simpleExtractResources( getClass(), "/it0110-pluginDependenciesComeFromPluginRepos" );
Verifier verifier = new Verifier( testDir.getAbsolutePath() ); Verifier verifier = new Verifier( testDir.getAbsolutePath() );
verifier.deleteArtifact( "org.apache.maven.it", "mail", "1.3.2", "jar" );
verifier.executeGoal( "clean" ); verifier.executeGoal( "clean" );
verifier.verifyErrorFreeLog(); verifier.verifyErrorFreeLog();
verifier.resetStreams(); verifier.resetStreams();

View File

@ -1,29 +1,44 @@
package org.apache.maven.integrationtests; package org.apache.maven.integrationtests;
import java.io.File; import java.io.File;
import java.util.List;
import java.util.ArrayList;
import org.apache.maven.it.Verifier; import org.apache.maven.it.Verifier;
import org.apache.maven.it.util.ResourceExtractor; import org.apache.maven.it.util.ResourceExtractor;
/** #it0104 Commenting out, not fixed until post-2.0.4, due to dependency on new plexus-container-default version. */
public class MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest public class MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest
extends AbstractMavenIntegrationTestCase extends AbstractMavenIntegrationTestCase
{ {
/**
* Verify that plugin configurations are resolved correctly, particularly
* when they contain ${project.build.directory} in the string value of a
* Map.Entry.
*/
public void testit0111() public void testit0111()
throws Exception throws Exception
{ {
File testDir = File testDir =
ResourceExtractor.simpleExtractResources( getClass(), "/it0111-pluginThatRequiresResourceFromAnExtension" ); ResourceExtractor.simpleExtractResources( getClass(), "/it0111-pluginThatRequiresResourceFromAnExtension" );
Verifier verifier = new Verifier( testDir.getAbsolutePath() );
Verifier verifier;
// Install the parent POM
verifier = new Verifier( testDir.getAbsolutePath() );
verifier.deleteArtifact( "org.apache.maven.its.it0111", "parent", "1.0", "pom" );
verifier.deleteArtifact( "org.apache.maven.its.it0111", "checkstyle-test", "1.0", "jar" );
verifier.deleteArtifact( "org.apache.maven.its.it0111", "checkstyle-assembly", "1.0", "jar" );
List cliOptions = new ArrayList();
cliOptions.add( "-N" );
verifier.executeGoal( "install" ); verifier.executeGoal( "install" );
verifier.verifyErrorFreeLog(); verifier.verifyErrorFreeLog();
verifier.resetStreams(); verifier.resetStreams();
// Install the extension with the resources required for the test
verifier = new Verifier( new File( testDir.getAbsolutePath(), "checkstyle-assembly" ).getAbsolutePath() );
verifier.executeGoal( "install" );
verifier.verifyErrorFreeLog();
verifier.resetStreams();
// Run the whole test
verifier = new Verifier( new File( testDir.getAbsolutePath(), "checkstyle-test" ).getAbsolutePath() );
verifier.executeGoal( "install" );
verifier.verifyErrorFreeLog();
verifier.resetStreams();
} }
} }

View File

@ -12,21 +12,21 @@
<issue>MNG-2539</issue> <issue>MNG-2539</issue>
</properties> </properties>
<!--
<repositories> <repositories>
<repository> <repository>
<id>javamail-local</id> <id>javamail-local</id>
<url>file://${basedir}/repository</url> <url>file://${basedir}/repository</url>
</repository> </repository>
</repositories> </repositories>
-->
<!--
<pluginRepositories> <pluginRepositories>
<pluginRepository> <pluginRepository>
<id>javamail-local</id> <id>javamail-local</id>
<url>file://${basedir}/repository</url> <url>file://${basedir}/repository</url>
</pluginRepository> </pluginRepository>
</pluginRepositories> </pluginRepositories>
-->
<build> <build>
<plugins> <plugins>

View File

@ -5,8 +5,10 @@
<packaging>pom</packaging> <packaging>pom</packaging>
<version>1</version> <version>1</version>
<name>Checkstyle</name> <name>Checkstyle</name>
<!--
<modules> <modules>
<module>checkstyle-assembly</module> <module>checkstyle-assembly</module>
<module>checkstyle-test</module> <module>checkstyle-test</module>
</modules> </modules>
-->
</project> </project>