From 6887dfc9e6824544e074b9c36a8a082ba0ad44a0 Mon Sep 17 00:00:00 2001 From: John Dennis Casey Date: Wed, 16 Jul 2008 17:00:26 +0000 Subject: [PATCH] [MNG-3667] integration test to make sure bad version in the pom content doesn't foul the build process for consumers of that pom. git-svn-id: https://svn.apache.org/repos/asf/maven/core-integration-testing/trunk@677339 13f79535-47bb-0310-9956-ffa450edef68 --- ...g3667ResolveDepsWithBadPomVersionTest.java | 92 +++++++++++++++++++ .../project/pom.xml | 22 +++++ .../project/src/main/java/testing/App.java | 13 +++ .../src/test/java/testing/AppTest.java | 38 ++++++++ .../repo/mng3667/bad-dep/1/bad-dep-1.jar | 8 ++ .../repo/mng3667/bad-dep/1/bad-dep-1.pom | 8 ++ 6 files changed, 181 insertions(+) create mode 100644 its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3667ResolveDepsWithBadPomVersionTest.java create mode 100644 its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/project/pom.xml create mode 100644 its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/project/src/main/java/testing/App.java create mode 100644 its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/project/src/test/java/testing/AppTest.java create mode 100644 its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/repo/mng3667/bad-dep/1/bad-dep-1.jar create mode 100644 its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/repo/mng3667/bad-dep/1/bad-dep-1.pom diff --git a/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3667ResolveDepsWithBadPomVersionTest.java b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3667ResolveDepsWithBadPomVersionTest.java new file mode 100644 index 0000000000..f8b9bd1d60 --- /dev/null +++ b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3667ResolveDepsWithBadPomVersionTest.java @@ -0,0 +1,92 @@ +/* + * 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 java.io.File; +import java.util.ArrayList; +import java.util.List; + +import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; +import org.apache.maven.integrationtests.AbstractMavenIntegrationTestCase; +import org.apache.maven.it.Verifier; +import org.apache.maven.it.util.FileUtils; +import org.apache.maven.it.util.ResourceExtractor; + +/** + * This is a test set for MNG-3667. + * + * @todo Fill in a better description of what this test verifies! + * + * @author Brian Fox + * @author jdcasey + * + */ +public class MavenITmng3667ResolveDepsWithBadPomVersionTest + extends AbstractMavenIntegrationTestCase +{ + public MavenITmng3667ResolveDepsWithBadPomVersionTest() + throws InvalidVersionSpecificationException + { + super( "(2.0.9,)" ); // only test in 2.0.9+ + } + + public void testitMNG3667 () + throws Exception + { + // The testdir is computed from the location of this + // file. + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-3667-resolveDepsWithBadPomVersion" ); + File repoDir = new File( testDir, "repo" ); + File projectDir = new File( testDir, "project" ); + + 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( projectDir.getAbsolutePath() ); + + File localRepoDir = new File( verifier.localRepo ); + FileUtils.copyDirectoryStructure( repoDir, localRepoDir ); + + 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(); + } +} diff --git a/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/project/pom.xml b/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/project/pom.xml new file mode 100644 index 0000000000..ff5df7a907 --- /dev/null +++ b/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/project/pom.xml @@ -0,0 +1,22 @@ + + 4.0.0 + org.apache.maven.its.mng3667 + mng-3667-resolveDepsWithBadPomVersion + jar + 1 + + + + mng3667 + bad-dep + 1 + + + junit + junit + 3.8.1 + test + + + diff --git a/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/project/src/main/java/testing/App.java b/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/project/src/main/java/testing/App.java new file mode 100644 index 0000000000..217a19b5d0 --- /dev/null +++ b/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/project/src/main/java/testing/App.java @@ -0,0 +1,13 @@ +package testing; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/project/src/test/java/testing/AppTest.java b/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/project/src/test/java/testing/AppTest.java new file mode 100644 index 0000000000..3a8780ff89 --- /dev/null +++ b/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/project/src/test/java/testing/AppTest.java @@ -0,0 +1,38 @@ +package testing; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/repo/mng3667/bad-dep/1/bad-dep-1.jar b/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/repo/mng3667/bad-dep/1/bad-dep-1.jar new file mode 100644 index 0000000000..ac71fb63e4 --- /dev/null +++ b/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/repo/mng3667/bad-dep/1/bad-dep-1.jar @@ -0,0 +1,8 @@ + + 4.0.0 + mng3667 + bad-dep + jar + SNAPSHOT + diff --git a/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/repo/mng3667/bad-dep/1/bad-dep-1.pom b/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/repo/mng3667/bad-dep/1/bad-dep-1.pom new file mode 100644 index 0000000000..ac71fb63e4 --- /dev/null +++ b/its/core-integration-tests/src/test/resources/mng-3667-resolveDepsWithBadPomVersion/repo/mng3667/bad-dep/1/bad-dep-1.pom @@ -0,0 +1,8 @@ + + 4.0.0 + mng3667 + bad-dep + jar + SNAPSHOT +