@@ -9,7 +9,8 @@ class GradleBuildToolSuite extends BaseBuildToolSuite {
99
1010 val Gradle8 = " 8.1.1"
1111 val Gradle7 = " 7.6.1"
12- val Gradle67 = " 6.7"
12+ val Gradle67 = " 6.7" // Introduced toolchains
13+ val Gradle5 = " 5.6.4"
1314
1415 val allGradle = List (Gradle8 , Gradle7 , Gradle67 )
1516 val allJava = List (" 8" , " 11" , " 17" )
@@ -42,7 +43,7 @@ class GradleBuildToolSuite extends BaseBuildToolSuite {
4243 {
4344 val testName = title.withName(title.name + s " -gradle $gradleV" )
4445 checkBuild(
45- if (gradleV.startsWith(" 6." ))
46+ if (gradleV.startsWith(" 6." ) || gradleV.startsWith( " 5. " ) )
4647 testName.tag(Java8Only )
4748 else
4849 testName,
@@ -56,37 +57,61 @@ class GradleBuildToolSuite extends BaseBuildToolSuite {
5657 }
5758 }
5859
59- List (" latest" -> " implementation" , " 4.0" -> " compile" ).foreach {
60- case (version, config) =>
61- checkBuild(
62- if (version == " latest" )
63- " basic-latest"
64- else
65- s " basic- $version" .tag(Java8Only ),
66- s """ |/build.gradle
67- |apply plugin: 'java'
68- |repositories {
69- | mavenCentral()
70- |}
71- |dependencies {
72- | $config 'junit:junit:4.13.1'
73- |}
74- |/src/main/java/Example.java
75- |import org.junit.Assert;
76- |public class Example {}
77- |/src/test/java/ExampleSuite.java
78- |public class ExampleSuite {}
79- | """ .stripMargin,
80- expectedSemanticdbFiles = 2 ,
81- expectedPackages =
82- """ |maven:junit:junit:4.13.1
83- |maven:org.hamcrest:hamcrest-core:1.3
84- |""" .stripMargin,
85- initCommand = {
86- gradleVersion(version)
87- }
88- )
89- }
60+ // This is the most basic test for Java/Scala support
61+ // We run it for an extended list of Gradle versions
62+ checkGradleBuild(
63+ " basic" ,
64+ """ |/build.gradle
65+ |plugins {
66+ | // Apply the application plugin to add support for building a CLI application in Java.
67+ | id 'application'
68+ | id 'java'
69+ | id 'scala'
70+ |}
71+
72+ |repositories {
73+ | // Use Maven Central for resolving dependencies.
74+ | mavenCentral()
75+ |}
76+
77+ |dependencies {
78+ | // This dependency is used by the application.
79+ | implementation 'com.google.guava:guava:31.1-jre'
80+ | implementation 'org.scala-lang:scala-library:2.13.8'
81+ | testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
82+ | testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
83+ |}
84+
85+ |test {
86+ | useJUnitPlatform()
87+ |}
88+ |/src/main/java/App.java
89+ | package gradle.sample.project;
90+ | public class App {
91+ | public String getGreeting() {
92+ | return "Hello World!";
93+ | }
94+ | public static void main(String[] args) {
95+ | System.out.println(new App().getGreeting());
96+ | }
97+ | }
98+ |/src/test/java/AppTest.java
99+ | package gradle.sample.project;
100+ | import org.junit.jupiter.api.Test;
101+ | import static org.junit.jupiter.api.Assertions.assertEquals;
102+ | import static org.junit.jupiter.api.Assertions.assertNotNull;
103+ | public class AppTest {
104+ | @Test public void appHasAGreeting() {
105+ | App classUnderTest = new App();
106+ | assertNotNull("app should have a greeting", classUnderTest.getGreeting());
107+ | }
108+ | }
109+ |/src/main/scala/Howdy.scala
110+ |case class Howdy(a: Int)
111+ |""" .stripMargin,
112+ expectedSemanticdbFiles = 3 ,
113+ gradleVersions = allGradle :+ Gradle5
114+ )
90115
91116 List (" 3.3" , " 2.2.1" ).foreach { version =>
92117 checkBuild(
0 commit comments