/* * This source file was generated by the Gradle 'init' task */ package org.example import java.io.File import kotlin.test.assertTrue import kotlin.test.Test import org.gradle.testkit.runner.GradleRunner import org.junit.jupiter.api.io.TempDir import java.net.URI /** * A simple functional test for the 'org.example.greeting' plugin. */ class GradleFunctionalTestPluginFunctionalTest { @field:TempDir lateinit var projectDir: File private val buildFile by lazy { projectDir.resolve("build.gradle.kts") } private val settingsFile by lazy { projectDir.resolve("settings.gradle.kts") } @Test fun `can run task dot seven`() { // Set up the test build settingsFile.writeText("") buildFile.writeText(""" import org.example.helloWorld plugins { id("org.example.greeting") } greeting { test = "hello" } helloWorld() """.trimIndent()) // Run the build val runner = GradleRunner.create() runner.forwardOutput() runner.withPluginClasspath() runner.withArguments("greeting") runner.withProjectDir(projectDir) runner.withGradleVersion("8.7") runner.withDebug(true) val result = runner.build() // Verify the result assertTrue(result.output.contains("Hello from plugin 'org.example.greeting'")) } @Test fun `can run task dot eight`() { // Set up the test build settingsFile.writeText("") buildFile.writeText(""" import org.example.helloWorld plugins { id("org.example.greeting") } greeting { test = "hello" } helloWorld() """.trimIndent()) // Run the build val runner = GradleRunner.create() runner.forwardOutput() runner.withPluginClasspath() runner.withArguments("greeting") runner.withProjectDir(projectDir) runner.withGradleVersion("8.8") runner.withDebug(true) val result = runner.build() // Verify the result assertTrue(result.output.contains("Hello from plugin 'org.example.greeting'")) } @Test fun `can run task dot nine rc`() { // Set up the test build settingsFile.writeText("") buildFile.writeText(""" import org.example.helloWorld plugins { id("org.example.greeting") } greeting { test = "hello" } helloWorld() """.trimIndent()) // Run the build val runner = GradleRunner.create() runner.forwardOutput() runner.withPluginClasspath() runner.withArguments("greeting") runner.withProjectDir(projectDir) runner.withGradleDistribution(URI.create("https://services.gradle.org/distributions/gradle-8.9-rc-1-bin.zip")) runner.withDebug(true) val result = runner.build() // Verify the result assertTrue(result.output.contains("Hello from plugin 'org.example.greeting'")) } }