From e3071d315c12a85ab8a75a6299e87b6105918fa6 Mon Sep 17 00:00:00 2001
From: Eyal Roth <eyalroth1@gmail.com>
Date: Sat, 31 Aug 2019 14:04:33 +0300
Subject: [PATCH 1/4] Add a functional test for Scala 2.13

---
 .../ScalaMultiModuleCrossVersionTest.java           | 11 +++++++++++
 .../java/org.scoverage/ScoverageFunctionalTest.java |  2 +-
 .../2_11/build.gradle                               |  2 +-
 .../2_13/build.gradle                               |  4 ++++
 .../2_13/src/main/scala/org/hello/World213.scala    |  9 +++++++++
 .../src/test/scala/org/hello/World213Suite.scala    | 13 +++++++++++++
 .../scala-multi-module-cross-version/build.gradle   |  3 ++-
 .../settings.gradle                                 |  2 +-
 8 files changed, 42 insertions(+), 4 deletions(-)
 create mode 100644 src/functionalTest/resources/projects/scala-multi-module-cross-version/2_13/build.gradle
 create mode 100644 src/functionalTest/resources/projects/scala-multi-module-cross-version/2_13/src/main/scala/org/hello/World213.scala
 create mode 100644 src/functionalTest/resources/projects/scala-multi-module-cross-version/2_13/src/test/scala/org/hello/World213Suite.scala

diff --git a/src/functionalTest/java/org.scoverage/ScalaMultiModuleCrossVersionTest.java b/src/functionalTest/java/org.scoverage/ScalaMultiModuleCrossVersionTest.java
index 224ef34..d7837f5 100644
--- a/src/functionalTest/java/org.scoverage/ScalaMultiModuleCrossVersionTest.java
+++ b/src/functionalTest/java/org.scoverage/ScalaMultiModuleCrossVersionTest.java
@@ -20,9 +20,11 @@ public void checkAndAggregateScoverage() throws Exception {
         result.assertTaskSkipped(ScoveragePlugin.getREPORT_NAME());
         result.assertTaskSucceeded("2_11:" + ScoveragePlugin.getREPORT_NAME());
         result.assertTaskSucceeded("2_12:" + ScoveragePlugin.getREPORT_NAME());
+        result.assertTaskSucceeded("2_13:" + ScoveragePlugin.getREPORT_NAME());
         result.assertTaskSucceeded(ScoveragePlugin.getCHECK_NAME());
         result.assertTaskSucceeded("2_11:" + ScoveragePlugin.getCHECK_NAME());
         result.assertTaskSucceeded("2_12:" + ScoveragePlugin.getCHECK_NAME());
+        result.assertTaskSucceeded("2_13:" + ScoveragePlugin.getCHECK_NAME());
         result.assertTaskSucceeded(ScoveragePlugin.getAGGREGATE_NAME());
 
         assertAllReportFilesExist();
@@ -33,6 +35,7 @@ private void assertAllReportFilesExist() {
 
         assert211ReportFilesExist();
         assert212ReportFilesExist();
+        assert213ReportFilesExist();
         assertAggregationFilesExist();
     }
 
@@ -41,6 +44,7 @@ private void assertAggregationFilesExist() {
         Assert.assertTrue(resolve(reportDir(), "index.html").exists());
         Assert.assertTrue(resolve(reportDir(), "2_11/src/main/scala/org/hello/World211.scala.html").exists());
         Assert.assertTrue(resolve(reportDir(), "2_12/src/main/scala/org/hello/World212.scala.html").exists());
+        Assert.assertTrue(resolve(reportDir(), "2_13/src/main/scala/org/hello/World213.scala.html").exists());
     }
 
     private void assert211ReportFilesExist() {
@@ -56,4 +60,11 @@ private void assert212ReportFilesExist() {
         Assert.assertTrue(resolve(reportDir, "index.html").exists());
         Assert.assertTrue(resolve(reportDir, "src/main/scala/org/hello/World212.scala.html").exists());
     }
+
+    private void assert213ReportFilesExist() {
+
+        File reportDir = reportDir(projectDir().toPath().resolve("2_13").toFile());
+        Assert.assertTrue(resolve(reportDir, "index.html").exists());
+        Assert.assertTrue(resolve(reportDir, "src/main/scala/org/hello/World213.scala.html").exists());
+    }
 }
diff --git a/src/functionalTest/java/org.scoverage/ScoverageFunctionalTest.java b/src/functionalTest/java/org.scoverage/ScoverageFunctionalTest.java
index af14ce5..7535319 100644
--- a/src/functionalTest/java/org.scoverage/ScoverageFunctionalTest.java
+++ b/src/functionalTest/java/org.scoverage/ScoverageFunctionalTest.java
@@ -122,7 +122,7 @@ private void configureArguments(String... arguments) {
         fullArguments.add("-PscalaVersionBuild=8");
         fullArguments.add("-PjunitVersion=5.3.2");
         fullArguments.add("-PjunitPlatformVersion=1.3.2");
-        fullArguments.add("-PscalatestVersion=3.0.5");
+        fullArguments.add("-PscalatestVersion=3.0.8");
         fullArguments.addAll(Arrays.asList(arguments));
 
         runner.withArguments(fullArguments);
diff --git a/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_11/build.gradle b/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_11/build.gradle
index 5421d5a..b110778 100644
--- a/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_11/build.gradle
+++ b/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_11/build.gradle
@@ -1,4 +1,4 @@
 dependencies {
-    compile group: 'org.scala-lang', name: 'scala-library', version: "2.11.12"
+    compile group: 'org.scala-lang', name: 'scala-library', version: "2.11.8"
     testCompile group: 'org.scalatest', name: "scalatest_2.11", version: scalatestVersion
 }
diff --git a/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_13/build.gradle b/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_13/build.gradle
new file mode 100644
index 0000000..9b4471e
--- /dev/null
+++ b/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_13/build.gradle
@@ -0,0 +1,4 @@
+dependencies {
+    compile group: 'org.scala-lang', name: 'scala-library', version: "2.13.0"
+    testCompile group: 'org.scalatest', name: "scalatest_2.13", version: scalatestVersion
+}
\ No newline at end of file
diff --git a/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_13/src/main/scala/org/hello/World213.scala b/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_13/src/main/scala/org/hello/World213.scala
new file mode 100644
index 0000000..64059eb
--- /dev/null
+++ b/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_13/src/main/scala/org/hello/World213.scala
@@ -0,0 +1,9 @@
+package org.hello
+
+class World213 {
+
+  def foo(): String = {
+    val s = "2" + "13"
+    s
+  }
+}
\ No newline at end of file
diff --git a/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_13/src/test/scala/org/hello/World213Suite.scala b/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_13/src/test/scala/org/hello/World213Suite.scala
new file mode 100644
index 0000000..655032b
--- /dev/null
+++ b/src/functionalTest/resources/projects/scala-multi-module-cross-version/2_13/src/test/scala/org/hello/World213Suite.scala
@@ -0,0 +1,13 @@
+package org.hello
+
+import org.junit.runner.RunWith
+import org.scalatest.FunSuite
+import org.scalatest.junit.JUnitRunner
+
+@RunWith(classOf[JUnitRunner])
+class World213Suite extends FunSuite {
+
+  test("foo") {
+    new World213().foo()
+  }
+}
\ No newline at end of file
diff --git a/src/functionalTest/resources/projects/scala-multi-module-cross-version/build.gradle b/src/functionalTest/resources/projects/scala-multi-module-cross-version/build.gradle
index 4a024a0..0226018 100644
--- a/src/functionalTest/resources/projects/scala-multi-module-cross-version/build.gradle
+++ b/src/functionalTest/resources/projects/scala-multi-module-cross-version/build.gradle
@@ -33,4 +33,5 @@ scoverage {
     minimumRate = 0.5
 }
 
-project(":2_11").tasks.reportScoverage.mustRunAfter(project(":2_12").tasks.reportScoverage)
\ No newline at end of file
+project(":2_11").tasks.reportScoverage.mustRunAfter(project(":2_12").tasks.reportScoverage)
+project(":2_12").tasks.reportScoverage.mustRunAfter(project(":2_13").tasks.reportScoverage)
\ No newline at end of file
diff --git a/src/functionalTest/resources/projects/scala-multi-module-cross-version/settings.gradle b/src/functionalTest/resources/projects/scala-multi-module-cross-version/settings.gradle
index 6d138e6..174d3b1 100644
--- a/src/functionalTest/resources/projects/scala-multi-module-cross-version/settings.gradle
+++ b/src/functionalTest/resources/projects/scala-multi-module-cross-version/settings.gradle
@@ -1 +1 @@
-include '2_11', '2_12'
\ No newline at end of file
+include '2_11', '2_12', '2_13'
\ No newline at end of file

From affa56f745b83e476cd126d8f168ef333200783b Mon Sep 17 00:00:00 2001
From: Eyal Roth <eyalroth1@gmail.com>
Date: Sat, 31 Aug 2019 14:05:24 +0300
Subject: [PATCH 2/4] Remove redundant functional test for Scala 2.11

---
 .../java/org.scoverage/ScalaSingleModuleTest.java        | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/src/functionalTest/java/org.scoverage/ScalaSingleModuleTest.java b/src/functionalTest/java/org.scoverage/ScalaSingleModuleTest.java
index d53881b..f93e184 100644
--- a/src/functionalTest/java/org.scoverage/ScalaSingleModuleTest.java
+++ b/src/functionalTest/java/org.scoverage/ScalaSingleModuleTest.java
@@ -133,15 +133,6 @@ public void reportScoverageWithoutNormalCompilationAndWithExcludedClasses() thro
         Assert.assertFalse(resolve(buildDir(), "classes/scala/scoverage/org/hello/World.class").exists());
     }
 
-    @Test
-    public void reportScoverageUnder2_11() throws Exception {
-        run("clean", ScoveragePlugin.getREPORT_NAME(),
-                "-PscalaVersionMinor=11",
-                "-PscalaVersionBuild=8",
-                "-Pscoverage.scoverageScalaVersion=2_11");
-        assertReportFilesExist();
-    }
-
     private void assertReportFilesExist() {
 
         Assert.assertTrue(resolve(reportDir(), "index.html").exists());

From 8338469ca26d7e1cc0dd46535f77c0adb281b4ac Mon Sep 17 00:00:00 2001
From: Eyal Roth <eyalroth1@gmail.com>
Date: Sat, 31 Aug 2019 14:06:26 +0300
Subject: [PATCH 3/4] Move from JavaConversions to JavaConverters as it is not
 available in Scala 2.13

---
 src/main/groovy/org/scoverage/ScoverageAggregate.groovy | 8 ++++----
 src/main/groovy/org/scoverage/ScoverageReport.groovy    | 6 +++---
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/main/groovy/org/scoverage/ScoverageAggregate.groovy b/src/main/groovy/org/scoverage/ScoverageAggregate.groovy
index e41d16b..a496dca 100644
--- a/src/main/groovy/org/scoverage/ScoverageAggregate.groovy
+++ b/src/main/groovy/org/scoverage/ScoverageAggregate.groovy
@@ -6,8 +6,8 @@ import org.gradle.api.provider.Property
 import org.gradle.api.tasks.Input
 import org.gradle.api.tasks.OutputDirectory
 import org.gradle.api.tasks.TaskAction
-// don't use scala.collection.JavaConverters as it breaks backward compatibility with scala 2.11
-import scala.collection.JavaConversions
+// don't use scala.collection.JavaConversions as it doesn't exist in Scala 2.13
+import scala.collection.JavaConverters
 import scoverage.IOUtils
 import scoverage.report.CoverageAggregator
 
@@ -48,9 +48,9 @@ class ScoverageAggregate extends DefaultTask {
                 coverage = CoverageAggregator.aggregate(rootDir, deleteReportsOnAggregation.get())
             } else {
                 def reportFiles = dirsToAggregateFrom.get().collectMany {
-                    JavaConversions.seqAsJavaList(IOUtils.reportFileSearch(it, IOUtils.isReportFile()))
+                    JavaConverters.seqAsJavaList(IOUtils.reportFileSearch(it, IOUtils.isReportFile()))
                 }
-                coverage = CoverageAggregator.aggregate(JavaConversions.asScalaBuffer(reportFiles), deleteReportsOnAggregation.get())
+                coverage = CoverageAggregator.aggregate(JavaConverters.asScalaBuffer(reportFiles), deleteReportsOnAggregation.get())
             }
 
             reportDir.get().deleteDir()
diff --git a/src/main/groovy/org/scoverage/ScoverageReport.groovy b/src/main/groovy/org/scoverage/ScoverageReport.groovy
index d5c5691..ab3f51a 100644
--- a/src/main/groovy/org/scoverage/ScoverageReport.groovy
+++ b/src/main/groovy/org/scoverage/ScoverageReport.groovy
@@ -6,8 +6,8 @@ import org.gradle.api.tasks.CacheableTask
 import org.gradle.api.tasks.Input
 import org.gradle.api.tasks.OutputDirectory
 import org.gradle.api.tasks.TaskAction
-// don't use scala.collection.JavaConverters as it breaks backward compatibility with scala 2.11
-import scala.collection.JavaConversions
+// don't use scala.collection.JavaConversions as it doesn't exist in Scala 2.13
+import scala.collection.JavaConverters
 import scala.collection.Seq
 import scala.collection.Set
 import scoverage.Coverage
@@ -48,7 +48,7 @@ class ScoverageReport extends DefaultTask {
                 project.logger.info("[scoverage] Could not find coverage file, skipping...")
             } else {
                 File[] array = IOUtils.findMeasurementFiles(dataDir.get())
-                Seq<File> measurementFiles = JavaConversions.asScalaBuffer(Arrays.asList(array))
+                Seq<File> measurementFiles = JavaConverters.asScalaBuffer(Arrays.asList(array)).toSeq()
 
                 Coverage coverage = Serializer.deserialize(coverageFile)
 

From 64ad30efbe4d99e2624c64ee6ed56bfcf077fbc4 Mon Sep 17 00:00:00 2001
From: Eyal Roth <eyalroth1@gmail.com>
Date: Sat, 31 Aug 2019 14:08:21 +0300
Subject: [PATCH 4/4] Remove ScalaSingleMultiLangModuleTest as multi-language
 support is already covered by ScalaJavaMultiModuleTest

---
 .../ScalaSingleMultiLangModuleTest.java       | 145 ------------------
 .../build.gradle                              |  33 ----
 .../settings.gradle                           |   0
 .../src/main/java/org/hello/JavaWorld.java    |   7 -
 .../src/main/scala/org/hello/World.scala      |  14 --
 .../scala/org/hello/TestNothingSuite.scala    |  12 --
 .../src/test/scala/org/hello/WorldSuite.scala |  17 --
 7 files changed, 228 deletions(-)
 delete mode 100644 src/functionalTest/java/org.scoverage/ScalaSingleMultiLangModuleTest.java
 delete mode 100644 src/functionalTest/resources/projects/scala-single-multi-lang-module/build.gradle
 delete mode 100644 src/functionalTest/resources/projects/scala-single-multi-lang-module/settings.gradle
 delete mode 100644 src/functionalTest/resources/projects/scala-single-multi-lang-module/src/main/java/org/hello/JavaWorld.java
 delete mode 100644 src/functionalTest/resources/projects/scala-single-multi-lang-module/src/main/scala/org/hello/World.scala
 delete mode 100644 src/functionalTest/resources/projects/scala-single-multi-lang-module/src/test/scala/org/hello/TestNothingSuite.scala
 delete mode 100644 src/functionalTest/resources/projects/scala-single-multi-lang-module/src/test/scala/org/hello/WorldSuite.scala

diff --git a/src/functionalTest/java/org.scoverage/ScalaSingleMultiLangModuleTest.java b/src/functionalTest/java/org.scoverage/ScalaSingleMultiLangModuleTest.java
deleted file mode 100644
index 3f8dd76..0000000
--- a/src/functionalTest/java/org.scoverage/ScalaSingleMultiLangModuleTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-package org.scoverage;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-public class ScalaSingleMultiLangModuleTest extends ScoverageFunctionalTest {
-
-    public ScalaSingleMultiLangModuleTest() { super("scala-single-multi-lang-module"); }
-
-    @Test
-    public void test() {
-
-        AssertableBuildResult result = dryRun("clean", "test");
-
-        result.assertTaskDoesntExist(ScoveragePlugin.getCOMPILE_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getREPORT_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getCHECK_NAME());
-    }
-
-    @Test
-    public void build() {
-
-        AssertableBuildResult result = dryRun("clean", "build");
-
-        result.assertTaskDoesntExist(ScoveragePlugin.getCOMPILE_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getREPORT_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getCHECK_NAME());
-    }
-
-    @Test
-    public void reportScoverage() {
-
-        AssertableBuildResult result = dryRun("clean", ScoveragePlugin.getREPORT_NAME());
-
-        result.assertTaskExists(ScoveragePlugin.getCOMPILE_NAME());
-        result.assertTaskExists(ScoveragePlugin.getREPORT_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getCHECK_NAME());
-    }
-
-    @Test
-    public void aggregateScoverage() {
-
-        AssertableBuildResult result = runAndFail("clean", ScoveragePlugin.getAGGREGATE_NAME());
-
-        result.assertNoTasks();
-    }
-
-    @Test
-    public void checkScoverage() throws Exception {
-
-        AssertableBuildResult result = run("clean", ScoveragePlugin.getCHECK_NAME());
-
-        result.assertTaskSucceeded(ScoveragePlugin.getCOMPILE_NAME());
-        result.assertTaskSucceeded(ScoveragePlugin.getREPORT_NAME());
-        result.assertTaskSucceeded(ScoveragePlugin.getCHECK_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
-
-        assertReportFilesExist();
-        assertCoverage(66.7);
-    }
-
-    @Test
-    public void checkScoverageFails() throws Exception {
-
-        AssertableBuildResult result = runAndFail("clean", ScoveragePlugin.getCHECK_NAME(),
-                "test", "--tests", "org.hello.TestNothingSuite");
-
-        result.assertTaskSucceeded(ScoveragePlugin.getCOMPILE_NAME());
-        result.assertTaskSucceeded(ScoveragePlugin.getREPORT_NAME());
-        result.assertTaskFailed(ScoveragePlugin.getCHECK_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
-
-        assertReportFilesExist();
-        assertCoverage(0.0);
-    }
-
-    @Test
-    public void reportScoverageWithExcludedClasses() throws Exception {
-
-        AssertableBuildResult result = run("clean", ScoveragePlugin.getREPORT_NAME(),
-                "-PexcludedFile=.*");
-
-        result.assertTaskSucceeded(ScoveragePlugin.getCOMPILE_NAME());
-        result.assertTaskSucceeded(ScoveragePlugin.getREPORT_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getCHECK_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
-
-        Assert.assertTrue(resolve(reportDir(), "index.html").exists());
-        Assert.assertFalse(resolve(reportDir(), "src/main/scala/org/hello/World.scala.html").exists());
-        assertCoverage(100.0); // coverage is 100 since no classes are covered
-
-        // compiled class should exist in the default classes directory, but not in scoverage
-        Assert.assertTrue(resolve(buildDir(), "classes/scala/main/org/hello/World.class").exists());
-        Assert.assertFalse(resolve(buildDir(), "classes/scala/scoverage/org/hello/World.class").exists());
-    }
-
-    @Test
-    public void reportScoverageWithoutNormalCompilation() throws Exception {
-
-        AssertableBuildResult result = run("clean", ScoveragePlugin.getREPORT_NAME(),
-                "-x", "compileScala");
-
-        result.assertTaskSkipped("compileScala");
-        result.assertTaskSucceeded(ScoveragePlugin.getCOMPILE_NAME());
-        result.assertTaskSucceeded(ScoveragePlugin.getREPORT_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getCHECK_NAME());
-        result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
-
-        assertReportFilesExist();
-        assertCoverage(66.7);
-
-        Assert.assertTrue(resolve(reportDir(), "index.html").exists());
-        Assert.assertTrue(resolve(reportDir(), "src/main/scala/org/hello/World.scala.html").exists());
-        Assert.assertFalse(resolve(reportDir(), "src/main/java/org/hello/JavaWorld.java.html").exists());
-
-        Assert.assertTrue(resolve(buildDir(), "classes/java/main/org/hello/JavaWorld.class").exists());
-        Assert.assertTrue(resolve(buildDir(), "classes/java/scoverage/org/hello/JavaWorld.class").exists());
-        Assert.assertTrue(resolve(buildDir(), "classes/scala/main/org/hello/World.class").exists());
-        Assert.assertFalse(resolve(buildDir(), "classes/scala/scoverage/org/hello/World.class").exists());
-    }
-
-    @Test
-    public void reportScoverageWithoutNormalCompilationAndWithExcludedClasses() throws Exception {
-
-        AssertableBuildResult result = run("clean", ScoveragePlugin.getREPORT_NAME(),
-                "-PexcludedFile=.*", "-x", "compileScala");
-
-        Assert.assertTrue(resolve(reportDir(), "index.html").exists());
-        Assert.assertFalse(resolve(reportDir(), "src/main/scala/org/hello/World.scala.html").exists());
-        assertCoverage(100.0); // coverage is 100 since no classes are covered
-
-        // compiled class should exist in the default classes directory, but not in scoverage
-        Assert.assertTrue(resolve(buildDir(), "classes/scala/main/org/hello/World.class").exists());
-        Assert.assertFalse(resolve(buildDir(), "classes/scala/scoverage/org/hello/World.class").exists());
-    }
-
-
-    private void assertReportFilesExist() {
-        Assert.assertTrue(resolve(reportDir(), "index.html").exists());
-        Assert.assertTrue(resolve(reportDir(), "src/main/scala/org/hello/World.scala.html").exists());
-    }
-}
diff --git a/src/functionalTest/resources/projects/scala-single-multi-lang-module/build.gradle b/src/functionalTest/resources/projects/scala-single-multi-lang-module/build.gradle
deleted file mode 100644
index c7ebff2..0000000
--- a/src/functionalTest/resources/projects/scala-single-multi-lang-module/build.gradle
+++ /dev/null
@@ -1,33 +0,0 @@
-plugins {
-    id 'org.scoverage'
-}
-
-repositories {
-    jcenter()
-}
-
-description = 'a single-module Scala project with java and scala sources'
-
-apply plugin: 'java'
-apply plugin: 'scala'
-
-dependencies {
-    compile group: 'org.scala-lang', name: 'scala-library', version: "${scalaVersionMajor}.${scalaVersionMinor}.${scalaVersionBuild}"
-
-    testRuntime group: 'org.junit.vintage', name: 'junit-vintage-engine', version: junitVersion
-    testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: junitPlatformVersion
-
-    testCompile group: 'org.scalatest', name: "scalatest_${scalaVersionMajor}.${scalaVersionMinor}", version: scalatestVersion
-}
-
-test {
-    useJUnitPlatform()
-}
-
-scoverage {
-    minimumRate = 0.3
-}
-
-if (hasProperty("excludedFile")) {
-    scoverage.excludedFiles = [excludedFile]
-}
diff --git a/src/functionalTest/resources/projects/scala-single-multi-lang-module/settings.gradle b/src/functionalTest/resources/projects/scala-single-multi-lang-module/settings.gradle
deleted file mode 100644
index e69de29..0000000
diff --git a/src/functionalTest/resources/projects/scala-single-multi-lang-module/src/main/java/org/hello/JavaWorld.java b/src/functionalTest/resources/projects/scala-single-multi-lang-module/src/main/java/org/hello/JavaWorld.java
deleted file mode 100644
index 2f199c5..0000000
--- a/src/functionalTest/resources/projects/scala-single-multi-lang-module/src/main/java/org/hello/JavaWorld.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.hello;
-
-public class JavaWorld {
-    public static void hello() {
-        System.out.println("Hello, World!");
-    }
-}
diff --git a/src/functionalTest/resources/projects/scala-single-multi-lang-module/src/main/scala/org/hello/World.scala b/src/functionalTest/resources/projects/scala-single-multi-lang-module/src/main/scala/org/hello/World.scala
deleted file mode 100644
index b7090dc..0000000
--- a/src/functionalTest/resources/projects/scala-single-multi-lang-module/src/main/scala/org/hello/World.scala
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.hello
-
-class World {
-
-  def foo(): String = {
-    val s = "a" + "b"
-    s
-  }
-
-  // not covered by tests
-  def bar(): String = "y"
-
-  def helloFromJava(): Unit = JavaWorld.hello()
-}
diff --git a/src/functionalTest/resources/projects/scala-single-multi-lang-module/src/test/scala/org/hello/TestNothingSuite.scala b/src/functionalTest/resources/projects/scala-single-multi-lang-module/src/test/scala/org/hello/TestNothingSuite.scala
deleted file mode 100644
index b8599be..0000000
--- a/src/functionalTest/resources/projects/scala-single-multi-lang-module/src/test/scala/org/hello/TestNothingSuite.scala
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.hello
-
-import org.junit.runner.RunWith
-import org.scalatest.FunSuite
-import org.scalatest.junit.JUnitRunner
-
-@RunWith(classOf[JUnitRunner])
-class TestNothingSuite extends FunSuite {
-
-  test("nothing") {
-  }
-}
diff --git a/src/functionalTest/resources/projects/scala-single-multi-lang-module/src/test/scala/org/hello/WorldSuite.scala b/src/functionalTest/resources/projects/scala-single-multi-lang-module/src/test/scala/org/hello/WorldSuite.scala
deleted file mode 100644
index 2e90b74..0000000
--- a/src/functionalTest/resources/projects/scala-single-multi-lang-module/src/test/scala/org/hello/WorldSuite.scala
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.hello
-
-import org.junit.runner.RunWith
-import org.scalatest.FunSuite
-import org.scalatest.junit.JUnitRunner
-
-@RunWith(classOf[JUnitRunner])
-class WorldSuite extends FunSuite {
-
-  test("foo") {
-    new World().foo()
-  }
-
-  test("helloFromJava") {
-    new World().helloFromJava()
-  }
-}