From 11b947b25df91dd4b5778c97c70f8115b32de608 Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Sun, 19 Oct 2025 18:48:24 -0400 Subject: [PATCH] Fix and re-enable functional test --- gradle/libs.versions.toml | 5 -- plugin/build.gradle | 22 ++++++++ .../AdbstartPluginPluginFunctionalTest.java | 56 ++++++++++--------- 3 files changed, 52 insertions(+), 31 deletions(-) delete mode 100644 gradle/libs.versions.toml diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml deleted file mode 100644 index cd64955..0000000 --- a/gradle/libs.versions.toml +++ /dev/null @@ -1,5 +0,0 @@ -[versions] -junit-jupiter = "5.12.1" - -[libraries] -junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit-jupiter" } diff --git a/plugin/build.gradle b/plugin/build.gradle index a7cbb72..a5e77e1 100644 --- a/plugin/build.gradle +++ b/plugin/build.gradle @@ -41,3 +41,25 @@ gradlePlugin { } } } + +sourceSets { + functionalTest { + } +} + +configurations.functionalTestImplementation.extendsFrom(configurations.testImplementation) +configurations.functionalTestRuntimeOnly.extendsFrom(configurations.testRuntimeOnly) + +tasks.register('functionalTest', Test) { + description = 'Runs functional tests.' + group = 'verification' + testClassesDirs = sourceSets.functionalTest.output.classesDirs + classpath = sourceSets.functionalTest.runtimeClasspath + shouldRunAfter test +} + +gradlePlugin.testSourceSets.add(sourceSets.functionalTest) + +tasks.named('check') { + dependsOn(tasks.functionalTest) +} diff --git a/plugin/src/functionalTest/java/org/fbluemle/AdbstartPluginPluginFunctionalTest.java b/plugin/src/functionalTest/java/org/fbluemle/AdbstartPluginPluginFunctionalTest.java index c9cd33e..1968779 100644 --- a/plugin/src/functionalTest/java/org/fbluemle/AdbstartPluginPluginFunctionalTest.java +++ b/plugin/src/functionalTest/java/org/fbluemle/AdbstartPluginPluginFunctionalTest.java @@ -1,43 +1,47 @@ package org.fbluemle; +import org.gradle.testkit.runner.BuildResult; +import org.gradle.testkit.runner.GradleRunner; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; + import java.io.File; +import java.io.FileWriter; import java.io.IOException; import java.io.Writer; -import java.io.FileWriter; -import org.gradle.testkit.runner.GradleRunner; -import org.gradle.testkit.runner.BuildResult; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.Assert.assertTrue; -class AdbstartPluginPluginFunctionalTest { - @TempDir - File projectDir; +public class AdbstartPluginPluginFunctionalTest { + @Rule + public TemporaryFolder testProjectDir = new TemporaryFolder(); - private File getBuildFile() { - return new File(projectDir, "build.gradle"); + private File getBuildFile() throws IOException { + return testProjectDir.newFile("build.gradle"); } - private File getSettingsFile() { - return new File(projectDir, "settings.gradle"); + private File getSettingsFile() throws IOException { + return testProjectDir.newFile("settings.gradle"); } - @Test void canRunTask() throws IOException { + @Test + public void appliesPluginAndBuildsHelpTask() throws IOException { writeString(getSettingsFile(), ""); writeString(getBuildFile(), - "plugins {" + - " id('org.example.greeting')" + - "}"); - - GradleRunner runner = GradleRunner.create(); - runner.forwardOutput(); - runner.withPluginClasspath(); - runner.withArguments("greeting"); - runner.withProjectDir(projectDir); - BuildResult result = runner.build(); - - assertTrue(result.getOutput().contains("Hello from plugin 'org.example.greeting'")); + "plugins {\n" + + " id 'org.fbluemle.adbstart'\n" + + "}\n"); + + BuildResult result = GradleRunner.create() + .withProjectDir(testProjectDir.getRoot()) + .withArguments("help") + .withPluginClasspath() + .forwardOutput() + .build(); + + // If the plugin applies cleanly, the 'help' task should complete successfully + assertTrue(result.getOutput().contains("BUILD SUCCESSFUL")); } private void writeString(File file, String string) throws IOException {