From e04914fd85526e3b0f3f135624adb805e4b65452 Mon Sep 17 00:00:00 2001 From: David Phillips Date: Sun, 4 Feb 2024 13:37:19 -0800 Subject: [PATCH] Add test for transitive dependency with local test scope This example project has a direct dependencies on Guice in compile scope and Guava in test scope. Guice depends on Guava, so the runtime classpath should include Guava, as it is required at runtime. --- .../provisio/ProvisioningIntegrationTest.java | 60 +++++++++++++++++++ .../src/test/projects/transitive-test/pom.xml | 37 ++++++++++++ .../src/main/provisio/provisio.xml | 3 + 3 files changed, 100 insertions(+) create mode 100644 provisio-maven-plugin/src/test/java/ca/vanzyl/maven/plugins/provisio/ProvisioningIntegrationTest.java create mode 100644 provisio-maven-plugin/src/test/projects/transitive-test/pom.xml create mode 100644 provisio-maven-plugin/src/test/projects/transitive-test/src/main/provisio/provisio.xml diff --git a/provisio-maven-plugin/src/test/java/ca/vanzyl/maven/plugins/provisio/ProvisioningIntegrationTest.java b/provisio-maven-plugin/src/test/java/ca/vanzyl/maven/plugins/provisio/ProvisioningIntegrationTest.java new file mode 100644 index 0000000..5ada744 --- /dev/null +++ b/provisio-maven-plugin/src/test/java/ca/vanzyl/maven/plugins/provisio/ProvisioningIntegrationTest.java @@ -0,0 +1,60 @@ +/** + * Copyright (C) 2015-2020 Jason van Zyl + *

+ * 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. + */ +package ca.vanzyl.maven.plugins.provisio; + +import io.takari.maven.testing.TestResources; +import io.takari.maven.testing.executor.MavenRuntime; +import io.takari.maven.testing.executor.MavenRuntime.MavenRuntimeBuilder; +import io.takari.maven.testing.executor.MavenVersions; +import io.takari.maven.testing.executor.junit.MavenJUnitTestRunner; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.io.File; + +import static org.junit.Assert.assertTrue; + +@RunWith(MavenJUnitTestRunner.class) +@MavenVersions({"3.6.3", "3.8.4", "3.9.6"}) +@SuppressWarnings({"JUnitTestNG", "PublicField"}) +public class ProvisioningIntegrationTest +{ + @Rule + public final TestResources resources = new TestResources(); + + public final MavenRuntime maven; + + public ProvisioningIntegrationTest(MavenRuntimeBuilder mavenBuilder) + throws Exception + { + this.maven = mavenBuilder.withCliOptions("-B", "-U").build(); + } + + @Test + public void testTransitiveWithLocalTestScope() + throws Exception + { + File basedir = resources.getBasedir("transitive-test"); + maven.forProject(basedir) + .execute("provisio:provision") + .assertErrorFreeLog(); + + File libdir = new File(basedir, "target/test-1.0/lib"); + assertTrue("guice exists", new File(libdir, "guice-7.0.0.jar").isFile()); + assertTrue("guava exists", new File(libdir, "guava-31.0.1-jre.jar").isFile()); + } +} diff --git a/provisio-maven-plugin/src/test/projects/transitive-test/pom.xml b/provisio-maven-plugin/src/test/projects/transitive-test/pom.xml new file mode 100644 index 0000000..05cad66 --- /dev/null +++ b/provisio-maven-plugin/src/test/projects/transitive-test/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + ca.vanzyl.provisio.maven.plugins.its + test + 1.0 + provisio + + + UTF-8 + + + + + com.google.inject + guice + 7.0.0 + + + com.google.guava + guava + 31.0.1-jre + test + + + + + + + ca.vanzyl.provisio.maven.plugins + provisio-maven-plugin + ${it-plugin.version} + true + + + + diff --git a/provisio-maven-plugin/src/test/projects/transitive-test/src/main/provisio/provisio.xml b/provisio-maven-plugin/src/test/projects/transitive-test/src/main/provisio/provisio.xml new file mode 100644 index 0000000..05d7faa --- /dev/null +++ b/provisio-maven-plugin/src/test/projects/transitive-test/src/main/provisio/provisio.xml @@ -0,0 +1,3 @@ + + +