diff --git a/build.gradle.kts b/build.gradle.kts index ee0883ecd..8c1255170 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -66,6 +66,9 @@ val testPluginClasspath by configurations.registering { description = "Plugins used in integration tests could be resolved in classpath." } +val testKit by sourceSets.creating +val testKitImplementation by configurations.getting + configurations.configureEach { when (name) { API_ELEMENTS_CONFIGURATION_NAME, @@ -115,6 +118,8 @@ dependencies { implementation(libs.plexus.utils) implementation(libs.plexus.xml) + testKitImplementation(libs.assertk) + testPluginClasspath(libs.foojayResolver) testPluginClasspath(libs.develocity) testPluginClasspath(libs.kotlin.kmp) @@ -172,6 +177,7 @@ testing.suites { withType().configureEach { useJUnitJupiter(libs.junit.bom.map { requireNotNull(it.version) }) dependencies { + implementation(testKit.output) implementation(libs.assertk) } targets.configureEach { diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/ApplicationPluginTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/ApplicationPluginTest.kt index 1cf0f0b8a..96d56543f 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/ApplicationPluginTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/ApplicationPluginTest.kt @@ -9,11 +9,11 @@ import assertk.assertions.isEqualTo import com.github.jengelman.gradle.plugins.shadow.ShadowApplicationPlugin.Companion.DISTRIBUTION_NAME import com.github.jengelman.gradle.plugins.shadow.internal.classPathAttributeKey import com.github.jengelman.gradle.plugins.shadow.internal.mainClassAttributeKey +import com.github.jengelman.gradle.plugins.shadow.testkit.JarPath +import com.github.jengelman.gradle.plugins.shadow.testkit.containsAtLeast +import com.github.jengelman.gradle.plugins.shadow.testkit.getContent +import com.github.jengelman.gradle.plugins.shadow.testkit.getMainAttr import com.github.jengelman.gradle.plugins.shadow.util.Issue -import com.github.jengelman.gradle.plugins.shadow.util.JarPath -import com.github.jengelman.gradle.plugins.shadow.util.containsAtLeast -import com.github.jengelman.gradle.plugins.shadow.util.getContent -import com.github.jengelman.gradle.plugins.shadow.util.getMainAttr import com.github.jengelman.gradle.plugins.shadow.util.isWindows import com.github.jengelman.gradle.plugins.shadow.util.runProcess import java.nio.file.Path diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/BasePluginTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/BasePluginTest.kt index 549f34ee9..40217f1d9 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/BasePluginTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/BasePluginTest.kt @@ -8,13 +8,13 @@ import assertk.assertions.isEqualTo import assertk.assertions.isNotNull import com.github.jengelman.gradle.plugins.shadow.ShadowApplicationPlugin.Companion.SHADOW_INSTALL_TASK_NAME import com.github.jengelman.gradle.plugins.shadow.ShadowApplicationPlugin.Companion.SHADOW_RUN_TASK_NAME -import com.github.jengelman.gradle.plugins.shadow.internal.requireResourceAsPath import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar.Companion.SHADOW_JAR_TASK_NAME +import com.github.jengelman.gradle.plugins.shadow.testkit.JarPath +import com.github.jengelman.gradle.plugins.shadow.testkit.requireResourceAsPath import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer import com.github.jengelman.gradle.plugins.shadow.util.AppendableMavenRepository import com.github.jengelman.gradle.plugins.shadow.util.JarBuilder -import com.github.jengelman.gradle.plugins.shadow.util.JarPath import com.github.jengelman.gradle.plugins.shadow.util.JvmLang import java.io.Closeable import java.nio.file.Path diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/CachingTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/CachingTest.kt index d2eba7dd6..f2accb91e 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/CachingTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/CachingTest.kt @@ -6,12 +6,12 @@ import assertk.assertions.isEmpty import assertk.assertions.isEqualTo import com.github.jengelman.gradle.plugins.shadow.internal.MinimizeDependencyFilter import com.github.jengelman.gradle.plugins.shadow.internal.mainClassAttributeKey +import com.github.jengelman.gradle.plugins.shadow.testkit.JarPath +import com.github.jengelman.gradle.plugins.shadow.testkit.containsOnly +import com.github.jengelman.gradle.plugins.shadow.testkit.getMainAttr import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer import com.github.jengelman.gradle.plugins.shadow.transformers.ServiceFileTransformer import com.github.jengelman.gradle.plugins.shadow.util.Issue -import com.github.jengelman.gradle.plugins.shadow.util.JarPath -import com.github.jengelman.gradle.plugins.shadow.util.containsOnly -import com.github.jengelman.gradle.plugins.shadow.util.getMainAttr import kotlin.io.path.ExperimentalPathApi import kotlin.io.path.appendText import kotlin.io.path.isDirectory diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/FilteringTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/FilteringTest.kt index ff35a1e78..04aa43ede 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/FilteringTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/FilteringTest.kt @@ -1,8 +1,8 @@ package com.github.jengelman.gradle.plugins.shadow import assertk.assertThat +import com.github.jengelman.gradle.plugins.shadow.testkit.containsOnly import com.github.jengelman.gradle.plugins.shadow.util.Issue -import com.github.jengelman.gradle.plugins.shadow.util.containsOnly import kotlin.io.path.appendText import kotlin.io.path.writeText import org.junit.jupiter.api.BeforeEach diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/GroovyPluginTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/GroovyPluginTest.kt index bea1706d9..9b406fefa 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/GroovyPluginTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/GroovyPluginTest.kt @@ -1,8 +1,8 @@ package com.github.jengelman.gradle.plugins.shadow import assertk.assertThat +import com.github.jengelman.gradle.plugins.shadow.testkit.containsOnly import com.github.jengelman.gradle.plugins.shadow.util.JvmLang -import com.github.jengelman.gradle.plugins.shadow.util.containsOnly import kotlin.io.path.appendText import kotlin.io.path.writeText import org.junit.jupiter.api.BeforeEach diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/JavaPluginsTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/JavaPluginsTest.kt index 400d843da..90cea057d 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/JavaPluginsTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/JavaPluginsTest.kt @@ -23,13 +23,13 @@ import com.github.jengelman.gradle.plugins.shadow.internal.runtimeConfiguration import com.github.jengelman.gradle.plugins.shadow.legacy.LegacyShadowPlugin import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar.Companion.SHADOW_JAR_TASK_NAME +import com.github.jengelman.gradle.plugins.shadow.testkit.containsAtLeast +import com.github.jengelman.gradle.plugins.shadow.testkit.containsNone +import com.github.jengelman.gradle.plugins.shadow.testkit.containsOnly +import com.github.jengelman.gradle.plugins.shadow.testkit.getContent +import com.github.jengelman.gradle.plugins.shadow.testkit.getMainAttr +import com.github.jengelman.gradle.plugins.shadow.testkit.getStream import com.github.jengelman.gradle.plugins.shadow.util.Issue -import com.github.jengelman.gradle.plugins.shadow.util.containsAtLeast -import com.github.jengelman.gradle.plugins.shadow.util.containsNone -import com.github.jengelman.gradle.plugins.shadow.util.containsOnly -import com.github.jengelman.gradle.plugins.shadow.util.getContent -import com.github.jengelman.gradle.plugins.shadow.util.getMainAttr -import com.github.jengelman.gradle.plugins.shadow.util.getStream import com.github.jengelman.gradle.plugins.shadow.util.runProcess import kotlin.io.path.appendText import kotlin.io.path.invariantSeparatorsPathString diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/KotlinPluginsTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/KotlinPluginsTest.kt index ad41a3b9d..1122e76de 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/KotlinPluginsTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/KotlinPluginsTest.kt @@ -5,11 +5,11 @@ import assertk.assertions.contains import assertk.assertions.isEqualTo import com.github.jengelman.gradle.plugins.shadow.internal.mainClassAttributeKey import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar.Companion.SHADOW_JAR_TASK_NAME +import com.github.jengelman.gradle.plugins.shadow.testkit.containsAtLeast +import com.github.jengelman.gradle.plugins.shadow.testkit.containsOnly +import com.github.jengelman.gradle.plugins.shadow.testkit.getMainAttr import com.github.jengelman.gradle.plugins.shadow.util.Issue import com.github.jengelman.gradle.plugins.shadow.util.JvmLang -import com.github.jengelman.gradle.plugins.shadow.util.containsAtLeast -import com.github.jengelman.gradle.plugins.shadow.util.containsOnly -import com.github.jengelman.gradle.plugins.shadow.util.getMainAttr import kotlin.io.path.appendText import kotlin.io.path.writeText import org.junit.jupiter.api.BeforeEach diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/MinimizeTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/MinimizeTest.kt index b0fda4b83..c33269841 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/MinimizeTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/MinimizeTest.kt @@ -2,10 +2,10 @@ package com.github.jengelman.gradle.plugins.shadow import assertk.assertThat import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar.Companion.SHADOW_JAR_TASK_NAME +import com.github.jengelman.gradle.plugins.shadow.testkit.containsAtLeast +import com.github.jengelman.gradle.plugins.shadow.testkit.containsNone +import com.github.jengelman.gradle.plugins.shadow.testkit.containsOnly import com.github.jengelman.gradle.plugins.shadow.util.Issue -import com.github.jengelman.gradle.plugins.shadow.util.containsAtLeast -import com.github.jengelman.gradle.plugins.shadow.util.containsNone -import com.github.jengelman.gradle.plugins.shadow.util.containsOnly import kotlin.io.path.appendText import kotlin.io.path.writeText import org.junit.jupiter.api.Test diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/PublishingTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/PublishingTest.kt index f3a6c138f..58f3eb93c 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/PublishingTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/PublishingTest.kt @@ -11,14 +11,14 @@ import assertk.assertions.single import com.github.jengelman.gradle.plugins.shadow.ShadowJavaPlugin.Companion.SHADOW_RUNTIME_ELEMENTS_CONFIGURATION_NAME import com.github.jengelman.gradle.plugins.shadow.internal.classPathAttributeKey import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar +import com.github.jengelman.gradle.plugins.shadow.testkit.JarPath +import com.github.jengelman.gradle.plugins.shadow.testkit.containsAtLeast +import com.github.jengelman.gradle.plugins.shadow.testkit.containsNone +import com.github.jengelman.gradle.plugins.shadow.testkit.containsOnly +import com.github.jengelman.gradle.plugins.shadow.testkit.getMainAttr import com.github.jengelman.gradle.plugins.shadow.util.GradleModuleMetadata import com.github.jengelman.gradle.plugins.shadow.util.Issue -import com.github.jengelman.gradle.plugins.shadow.util.JarPath -import com.github.jengelman.gradle.plugins.shadow.util.containsAtLeast -import com.github.jengelman.gradle.plugins.shadow.util.containsNone -import com.github.jengelman.gradle.plugins.shadow.util.containsOnly import com.github.jengelman.gradle.plugins.shadow.util.coordinate -import com.github.jengelman.gradle.plugins.shadow.util.getMainAttr import com.squareup.moshi.JsonAdapter import com.squareup.moshi.Moshi import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/RelocationTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/RelocationTest.kt index b4a56bc68..e2e89cd3b 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/RelocationTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/RelocationTest.kt @@ -9,9 +9,9 @@ import assertk.assertions.isNotEmpty import assertk.fail import com.github.jengelman.gradle.plugins.shadow.internal.mainClassAttributeKey import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowCopyAction.Companion.CONSTANT_TIME_FOR_ZIP_ENTRIES +import com.github.jengelman.gradle.plugins.shadow.testkit.containsOnly +import com.github.jengelman.gradle.plugins.shadow.testkit.getBytes import com.github.jengelman.gradle.plugins.shadow.util.Issue -import com.github.jengelman.gradle.plugins.shadow.util.containsOnly -import com.github.jengelman.gradle.plugins.shadow.util.getBytes import com.github.jengelman.gradle.plugins.shadow.util.runProcess import java.net.URLClassLoader import kotlin.io.path.appendText diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/ScalaPluginTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/ScalaPluginTest.kt index e732701ae..9be358b36 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/ScalaPluginTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/ScalaPluginTest.kt @@ -1,8 +1,8 @@ package com.github.jengelman.gradle.plugins.shadow import assertk.assertThat +import com.github.jengelman.gradle.plugins.shadow.testkit.containsOnly import com.github.jengelman.gradle.plugins.shadow.util.JvmLang -import com.github.jengelman.gradle.plugins.shadow.util.containsOnly import kotlin.io.path.appendText import kotlin.io.path.writeText import org.junit.jupiter.api.BeforeEach diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/AppendingTransformerTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/AppendingTransformerTest.kt index 63bdea05e..a770165b1 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/AppendingTransformerTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/AppendingTransformerTest.kt @@ -2,7 +2,7 @@ package com.github.jengelman.gradle.plugins.shadow.transformers import assertk.assertThat import assertk.assertions.isEqualTo -import com.github.jengelman.gradle.plugins.shadow.util.getContent +import com.github.jengelman.gradle.plugins.shadow.testkit.getContent import kotlin.io.path.appendText import org.junit.jupiter.params.ParameterizedTest import org.junit.jupiter.params.provider.ValueSource diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/GroovyExtensionModuleTransformerTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/GroovyExtensionModuleTransformerTest.kt index 2abdc7d52..6b717adce 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/GroovyExtensionModuleTransformerTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/GroovyExtensionModuleTransformerTest.kt @@ -2,6 +2,8 @@ package com.github.jengelman.gradle.plugins.shadow.transformers import assertk.assertThat import assertk.assertions.isEqualTo +import com.github.jengelman.gradle.plugins.shadow.testkit.JarPath +import com.github.jengelman.gradle.plugins.shadow.testkit.getContent import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionModuleTransformer.Companion.KEY_EXTENSION_CLASSES import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionModuleTransformer.Companion.KEY_MODULE_NAME import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionModuleTransformer.Companion.KEY_MODULE_VERSION @@ -10,8 +12,6 @@ import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionMo import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionModuleTransformer.Companion.MERGED_MODULE_VERSION import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionModuleTransformer.Companion.PATH_GROOVY_EXTENSION_MODULE_DESCRIPTOR import com.github.jengelman.gradle.plugins.shadow.transformers.GroovyExtensionModuleTransformer.Companion.PATH_LEGACY_GROOVY_EXTENSION_MODULE_DESCRIPTOR -import com.github.jengelman.gradle.plugins.shadow.util.JarPath -import com.github.jengelman.gradle.plugins.shadow.util.getContent import java.nio.file.Path import kotlin.io.path.appendText import org.junit.jupiter.api.Test diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/PropertiesFileTransformerTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/PropertiesFileTransformerTest.kt index f7057d3a8..525f7174f 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/PropertiesFileTransformerTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/PropertiesFileTransformerTest.kt @@ -3,9 +3,9 @@ package com.github.jengelman.gradle.plugins.shadow.transformers import assertk.assertThat import assertk.assertions.contains import assertk.assertions.isEqualTo +import com.github.jengelman.gradle.plugins.shadow.testkit.getContent import com.github.jengelman.gradle.plugins.shadow.transformers.PropertiesFileTransformer.MergeStrategy import com.github.jengelman.gradle.plugins.shadow.util.Issue -import com.github.jengelman.gradle.plugins.shadow.util.getContent import kotlin.io.path.appendText import org.junit.jupiter.api.Test import org.junit.jupiter.params.ParameterizedTest diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ServiceFileTransformerTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ServiceFileTransformerTest.kt index 6b1d2fe41..a80d4af57 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ServiceFileTransformerTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ServiceFileTransformerTest.kt @@ -3,8 +3,8 @@ package com.github.jengelman.gradle.plugins.shadow.transformers import assertk.assertThat import assertk.assertions.containsMatch import assertk.assertions.isEqualTo +import com.github.jengelman.gradle.plugins.shadow.testkit.getContent import com.github.jengelman.gradle.plugins.shadow.util.Issue -import com.github.jengelman.gradle.plugins.shadow.util.getContent import kotlin.io.path.appendText import kotlin.io.path.writeText import org.gradle.api.file.DuplicatesStrategy diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/TransformersTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/TransformersTest.kt index d25b713a3..37224074a 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/TransformersTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/TransformersTest.kt @@ -6,12 +6,12 @@ import assertk.assertions.isEqualTo import assertk.assertions.isNotEqualTo import assertk.assertions.isNotNull import com.github.jengelman.gradle.plugins.shadow.internal.mainClassAttributeKey -import com.github.jengelman.gradle.plugins.shadow.internal.requireResourceAsPath +import com.github.jengelman.gradle.plugins.shadow.testkit.containsAtLeast +import com.github.jengelman.gradle.plugins.shadow.testkit.containsOnly +import com.github.jengelman.gradle.plugins.shadow.testkit.getContent +import com.github.jengelman.gradle.plugins.shadow.testkit.getStream +import com.github.jengelman.gradle.plugins.shadow.testkit.requireResourceAsPath import com.github.jengelman.gradle.plugins.shadow.util.Issue -import com.github.jengelman.gradle.plugins.shadow.util.containsAtLeast -import com.github.jengelman.gradle.plugins.shadow.util.containsOnly -import com.github.jengelman.gradle.plugins.shadow.util.getContent -import com.github.jengelman.gradle.plugins.shadow.util.getStream import java.util.jar.Attributes as JarAttribute import kotlin.io.path.appendText import kotlin.io.path.invariantSeparatorsPathString diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/XmlAppendingTransformerTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/XmlAppendingTransformerTest.kt index d35ae4d48..446a9f5c5 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/XmlAppendingTransformerTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/XmlAppendingTransformerTest.kt @@ -2,8 +2,8 @@ package com.github.jengelman.gradle.plugins.shadow.transformers import assertk.assertThat import assertk.assertions.isEqualTo +import com.github.jengelman.gradle.plugins.shadow.testkit.getContent import com.github.jengelman.gradle.plugins.shadow.util.Issue -import com.github.jengelman.gradle.plugins.shadow.util.getContent import kotlin.io.path.appendText import org.junit.jupiter.api.Test diff --git a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/Utils.kt b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/Utils.kt index 0acc755eb..708c05efd 100644 --- a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/Utils.kt +++ b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/Utils.kt @@ -3,13 +3,9 @@ package com.github.jengelman.gradle.plugins.shadow.internal import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowCopyAction import java.io.ByteArrayInputStream import java.io.ByteArrayOutputStream -import java.io.InputStream import java.nio.charset.Charset -import java.nio.file.NoSuchFileException -import java.nio.file.Path import java.util.Properties import java.util.jar.Attributes.Name as JarAttributeName -import kotlin.io.path.toPath import org.apache.tools.zip.ZipEntry /** @@ -59,16 +55,3 @@ internal fun Properties.inputStream( } return os.toByteArray().inputStream() } - -internal fun requireResourceAsStream(name: String): InputStream { - return Utils::class.java.classLoader.getResourceAsStream(name) - ?: throw NoSuchFileException("Resource $name not found.") -} - -internal fun requireResourceAsPath(name: String): Path { - val resource = Utils::class.java.classLoader.getResource(name) - ?: throw NoSuchFileException("Resource $name not found.") - return resource.toURI().toPath() -} - -private object Utils diff --git a/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/BaseTransformerTest.kt b/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/BaseTransformerTest.kt index 6e7373e76..e3232b680 100644 --- a/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/BaseTransformerTest.kt +++ b/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/BaseTransformerTest.kt @@ -1,13 +1,13 @@ package com.github.jengelman.gradle.plugins.shadow.transformers -import com.github.jengelman.gradle.plugins.shadow.internal.requireResourceAsStream +import com.github.jengelman.gradle.plugins.shadow.testkit.JarPath +import com.github.jengelman.gradle.plugins.shadow.testkit.getStream +import com.github.jengelman.gradle.plugins.shadow.testkit.noOpDelegate +import com.github.jengelman.gradle.plugins.shadow.testkit.requireResourceAsStream +import com.github.jengelman.gradle.plugins.shadow.testkit.testObjectFactory import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer.Companion.create -import com.github.jengelman.gradle.plugins.shadow.util.noOpDelegate -import com.github.jengelman.gradle.plugins.shadow.util.testObjectFactory import java.lang.reflect.ParameterizedType -import java.nio.file.Path import java.util.Locale -import java.util.zip.ZipFile import kotlin.io.path.createTempFile import kotlin.io.path.outputStream import org.apache.tools.zip.ZipOutputStream @@ -41,22 +41,19 @@ abstract class BaseTransformerTest { return canTransformResource(element) } - fun readFrom(jarPath: Path, resourceName: String = MANIFEST_NAME): List { - return ZipFile(jarPath.toFile()).use { zip -> - val entry = zip.getEntry(resourceName) ?: return emptyList() - zip.getInputStream(entry).bufferedReader().readLines() - } + fun JarPath.readContentLines(resourceName: String = MANIFEST_NAME): List { + return use { it.getStream(resourceName).bufferedReader().readLines() } } fun doTransformAndGetTransformedPath( transformer: ResourceTransformer, preserveFileTimestamps: Boolean, - ): Path { + ): JarPath { val testableZipPath = createTempFile("testable-zip-file-", ".jar") - ZipOutputStream(testableZipPath.outputStream().buffered()).use { zipOutputStream -> + ZipOutputStream(testableZipPath.outputStream()).use { zipOutputStream -> transformer.modifyOutputStream(zipOutputStream, preserveFileTimestamps) } - return testableZipPath + return JarPath(testableZipPath) } /** diff --git a/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ComponentsXmlResourceTransformerTest.kt b/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ComponentsXmlResourceTransformerTest.kt index a610285f2..3abea396c 100644 --- a/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ComponentsXmlResourceTransformerTest.kt +++ b/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ComponentsXmlResourceTransformerTest.kt @@ -2,7 +2,7 @@ package com.github.jengelman.gradle.plugins.shadow.transformers import assertk.assertThat import assertk.assertions.isTrue -import com.github.jengelman.gradle.plugins.shadow.internal.requireResourceAsStream +import com.github.jengelman.gradle.plugins.shadow.testkit.requireResourceAsStream import org.custommonkey.xmlunit.XMLUnit import org.junit.jupiter.api.Test diff --git a/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/Log4j2PluginsCacheFileTransformerTest.kt b/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/Log4j2PluginsCacheFileTransformerTest.kt index af582e74f..45ea7c5fb 100644 --- a/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/Log4j2PluginsCacheFileTransformerTest.kt +++ b/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/Log4j2PluginsCacheFileTransformerTest.kt @@ -8,11 +8,11 @@ import assertk.assertions.isNotEqualTo import assertk.assertions.isTrue import assertk.assertions.startsWith import assertk.fail -import com.github.jengelman.gradle.plugins.shadow.internal.requireResourceAsPath -import com.github.jengelman.gradle.plugins.shadow.internal.requireResourceAsStream import com.github.jengelman.gradle.plugins.shadow.relocation.Relocator import com.github.jengelman.gradle.plugins.shadow.relocation.SimpleRelocator -import com.github.jengelman.gradle.plugins.shadow.util.zipOutputStream +import com.github.jengelman.gradle.plugins.shadow.testkit.requireResourceAsPath +import com.github.jengelman.gradle.plugins.shadow.testkit.requireResourceAsStream +import com.github.jengelman.gradle.plugins.shadow.testkit.zipOutputStream import java.io.ByteArrayOutputStream import java.net.URI import java.net.URL diff --git a/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ManifestAppenderTransformerTest.kt b/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ManifestAppenderTransformerTest.kt index d4de4d1d3..53a0c690f 100644 --- a/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ManifestAppenderTransformerTest.kt +++ b/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ManifestAppenderTransformerTest.kt @@ -6,7 +6,7 @@ import assertk.assertions.isFalse import assertk.assertions.isGreaterThan import assertk.assertions.isNotEmpty import assertk.assertions.isTrue -import com.github.jengelman.gradle.plugins.shadow.internal.requireResourceAsStream +import com.github.jengelman.gradle.plugins.shadow.testkit.requireResourceAsStream import org.junit.jupiter.api.Test class ManifestAppenderTransformerTest : BaseTransformerTest() { @@ -44,9 +44,7 @@ class ManifestAppenderTransformerTest : BaseTransformerTest() transformer.modifyOutputStream(zos, false) } - val transformedContent = ZipFile(tempJar.toFile()).use { it.getContent(contentResourceShaded) } + val transformedContent = JarPath(tempJar).use { it.getContent(contentResourceShaded) } assertThat(transformedContent).isEqualTo("borg.foo.Service\norg.foo.exclude.OtherService") } @@ -105,7 +105,7 @@ class ServiceFileTransformerTest : BaseTransformerTest() transformer.modifyOutputStream(zos, false) } - val transformedContent = ZipFile(tempJar.toFile()).use { it.getContent(contentResourceShaded) } + val transformedContent = JarPath(tempJar).use { it.getContent(contentResourceShaded) } assertThat(transformedContent).isEqualTo("borg.foo.Service\norg.foo.exclude.OtherService") } @@ -122,7 +122,7 @@ class ServiceFileTransformerTest : BaseTransformerTest() transformer.modifyOutputStream(zos, false) } - val transformedContent = ZipFile(tempJar.toFile()).use { it.getContent(contentResource) } + val transformedContent = JarPath(tempJar).use { it.getContent(contentResource) } assertThat(transformedContent).isEqualTo("org.eclipse1234.osgi.launch.EquinoxFactory") } @@ -144,7 +144,7 @@ class ServiceFileTransformerTest : BaseTransformerTest() transformer.modifyOutputStream(zos, false) } - val transformedContent = ZipFile(tempJar.toFile()).use { it.getContent(contentResource) } + val transformedContent = JarPath(tempJar).use { it.getContent(contentResource) } assertThat(transformedContent).isEqualTo("borg.foo.Service\norg.blah.Service") } @@ -153,15 +153,6 @@ class ServiceFileTransformerTest : BaseTransformerTest() return TransformerContext(path, input.byteInputStream(), relocators = relocators.toSet()) } - fun ZipFile.getContent(entryName: String): String { - return getStream(entryName).bufferedReader().use { it.readText() } - } - - fun ZipFile.getStream(entryName: String): InputStream { - val entry = requireNotNull(getEntry(entryName)) { "Entry $entryName not found in all entries: ${entries().toList()}" } - return getInputStream(entry) - } - @JvmStatic fun resourceProvider() = listOf( // path, exclude, expected diff --git a/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/util/Utils.kt b/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/util/Utils.kt index 0f7168379..53e52179c 100644 --- a/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/util/Utils.kt +++ b/src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/util/Utils.kt @@ -1,4 +1,4 @@ -package com.github.jengelman.gradle.plugins.shadow.util +package com.github.jengelman.gradle.plugins.shadow.testkit import java.io.OutputStream import java.lang.reflect.InvocationHandler diff --git a/src/test/resources/META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat b/src/test/resources/META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat deleted file mode 100644 index fbe6359f1..000000000 Binary files a/src/test/resources/META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat and /dev/null differ diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/util/JarPath.kt b/src/testKit/kotlin/com/github/jengelman/gradle/plugins/shadow/testkit/JarPath.kt similarity index 97% rename from src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/util/JarPath.kt rename to src/testKit/kotlin/com/github/jengelman/gradle/plugins/shadow/testkit/JarPath.kt index 214edce89..a213bc939 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/util/JarPath.kt +++ b/src/testKit/kotlin/com/github/jengelman/gradle/plugins/shadow/testkit/JarPath.kt @@ -1,4 +1,4 @@ -package com.github.jengelman.gradle.plugins.shadow.util +package com.github.jengelman.gradle.plugins.shadow.testkit import assertk.Assert import assertk.assertions.containsAtLeast diff --git a/src/testKit/kotlin/com/github/jengelman/gradle/plugins/shadow/testkit/Resource.kt b/src/testKit/kotlin/com/github/jengelman/gradle/plugins/shadow/testkit/Resource.kt new file mode 100644 index 000000000..0f20ebee3 --- /dev/null +++ b/src/testKit/kotlin/com/github/jengelman/gradle/plugins/shadow/testkit/Resource.kt @@ -0,0 +1,19 @@ +package com.github.jengelman.gradle.plugins.shadow.testkit + +import java.io.InputStream +import java.nio.file.NoSuchFileException +import java.nio.file.Path +import kotlin.io.path.toPath + +fun requireResourceAsStream(name: String): InputStream { + return Utils::class.java.classLoader.getResourceAsStream(name) + ?: throw NoSuchFileException("Resource $name not found.") +} + +fun requireResourceAsPath(name: String): Path { + val resource = Utils::class.java.classLoader.getResource(name) + ?: throw NoSuchFileException("Resource $name not found.") + return resource.toURI().toPath() +} + +private object Utils diff --git a/src/functionalTest/resources/META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat b/src/testKit/resources/META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat similarity index 100% rename from src/functionalTest/resources/META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat rename to src/testKit/resources/META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat