Skip to content

Commit 213239b

Browse files
committed
Add a functional test for a multi-module project mixed with both scala and java
1 parent 269b17c commit 213239b

File tree

14 files changed

+206
-0
lines changed

14 files changed

+206
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package org.scoverage;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
6+
import java.io.File;
7+
8+
public class ScalaJavaMultiModuleTest extends ScoverageFunctionalTest {
9+
10+
public ScalaJavaMultiModuleTest() {
11+
super("scala-java-multi-module");
12+
}
13+
14+
@Test
15+
public void checkAndAggregateScoverage() throws Exception {
16+
17+
AssertableBuildResult result = run("clean", ScoveragePlugin.getCHECK_NAME(),
18+
ScoveragePlugin.getAGGREGATE_NAME());
19+
20+
result.assertTaskSkipped(ScoveragePlugin.getREPORT_NAME());
21+
result.assertTaskSucceeded("scala_only:" + ScoveragePlugin.getREPORT_NAME());
22+
result.assertTaskSucceeded("mixed_scala_java:" + ScoveragePlugin.getREPORT_NAME());
23+
result.assertTaskDoesntExist("java_only:" + ScoveragePlugin.getREPORT_NAME());
24+
result.assertTaskSucceeded(ScoveragePlugin.getCHECK_NAME());
25+
result.assertTaskSucceeded("scala_only:" + ScoveragePlugin.getCHECK_NAME());
26+
result.assertTaskSucceeded("mixed_scala_java:" + ScoveragePlugin.getCHECK_NAME());
27+
result.assertTaskDoesntExist("java_only:" + ScoveragePlugin.getCHECK_NAME());
28+
result.assertTaskSucceeded(ScoveragePlugin.getAGGREGATE_NAME());
29+
30+
assertAllReportFilesExist();
31+
assertCoverage(100.0);
32+
}
33+
34+
private void assertAllReportFilesExist() {
35+
36+
Assert.assertTrue(resolve(reportDir(), "index.html").exists());
37+
38+
assertScalaOnlyReportFilesExist();
39+
assertMixedScalaJavaReportFilesExist();
40+
assertAggregationFilesExist();
41+
}
42+
43+
private void assertAggregationFilesExist() {
44+
45+
Assert.assertTrue(resolve(reportDir(), "scala_only/src/main/scala/org/hello/WorldScalaOnly.scala.html").exists());
46+
Assert.assertTrue(resolve(reportDir(), "mixed_scala_java/src/main/scala/org/hello/WorldScala.scala.html").exists());
47+
}
48+
49+
private void assertScalaOnlyReportFilesExist() {
50+
51+
File reportDir = reportDir(projectDir().toPath().resolve("scala_only").toFile());
52+
Assert.assertTrue(resolve(reportDir, "index.html").exists());
53+
Assert.assertTrue(resolve(reportDir, "src/main/scala/org/hello/WorldScalaOnly.scala.html").exists());
54+
}
55+
56+
private void assertMixedScalaJavaReportFilesExist() {
57+
58+
File reportDir = reportDir(projectDir().toPath().resolve("mixed_scala_java").toFile());
59+
Assert.assertTrue(resolve(reportDir, "index.html").exists());
60+
Assert.assertTrue(resolve(reportDir, "src/main/scala/org/hello/WorldScala.scala.html").exists());
61+
}
62+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
plugins {
2+
id 'org.scoverage' apply false
3+
}
4+
5+
allprojects {
6+
repositories {
7+
jcenter()
8+
}
9+
}
10+
11+
description = 'a multi-module Scala and Java project that builds successfully with 100% coverage'
12+
13+
apply plugin: 'org.scoverage'
14+
15+
allprojects {
16+
17+
dependencies {
18+
testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: junitPlatformVersion
19+
}
20+
21+
test {
22+
useJUnitPlatform()
23+
}
24+
25+
scoverage {
26+
minimumRate = 0.5
27+
}
28+
}
29+
30+
scoverage {
31+
minimumRate = 0.5
32+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apply plugin: 'java'
2+
3+
dependencies {
4+
5+
testRuntime group: 'org.junit.vintage', name: 'junit-vintage-engine', version: junitVersion
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.hello;
2+
3+
public class WorldJavaOnly {
4+
5+
public String foo() {
6+
String s = "java_only" + "a";
7+
return s;
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.hello;
2+
3+
import org.junit.Test;
4+
5+
public class WorldJavaOnlyTest {
6+
7+
@Test
8+
public void foo() {
9+
new WorldJavaOnly().foo();
10+
}
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apply plugin: 'java'
2+
apply plugin: 'scala'
3+
apply plugin: 'org.scoverage'
4+
5+
dependencies {
6+
compile group: 'org.scala-lang', name: 'scala-library', version: "${scalaVersionMajor}.${scalaVersionMinor}.${scalaVersionBuild}"
7+
8+
testRuntime group: 'org.junit.vintage', name: 'junit-vintage-engine', version: junitVersion
9+
10+
testCompile group: 'org.scalatest', name: "scalatest_${scalaVersionMajor}.${scalaVersionMinor}", version: scalatestVersion
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.hello;
2+
3+
public class WorldJava {
4+
5+
public String foo() {
6+
String s = "java" + "a";
7+
return s;
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.hello
2+
3+
class WorldScala {
4+
5+
def foo(): String = {
6+
val s = "scala" + "a"
7+
s
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.hello;
2+
3+
import org.junit.Test;
4+
5+
public class WorldJavaTest {
6+
7+
@Test
8+
public void foo() {
9+
new WorldJava().foo();
10+
}
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.hello
2+
3+
import org.junit.runner.RunWith
4+
import org.scalatest.FunSuite
5+
import org.scalatest.junit.JUnitRunner
6+
7+
@RunWith(classOf[JUnitRunner])
8+
class WorldScalaSuite extends FunSuite {
9+
10+
test("foo") {
11+
new WorldScala().foo()
12+
}
13+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apply plugin: 'scala'
2+
apply plugin: 'org.scoverage'
3+
4+
dependencies {
5+
compile group: 'org.scala-lang', name: 'scala-library', version: "${scalaVersionMajor}.${scalaVersionMinor}.${scalaVersionBuild}"
6+
7+
testRuntime group: 'org.junit.vintage', name: 'junit-vintage-engine', version: junitVersion
8+
9+
testCompile group: 'org.scalatest', name: "scalatest_${scalaVersionMajor}.${scalaVersionMinor}", version: scalatestVersion
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.hello
2+
3+
class WorldScalaOnly {
4+
5+
def foo(): String = {
6+
val s = "scala_only" + "a"
7+
s
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.hello
2+
3+
import org.junit.runner.RunWith
4+
import org.scalatest.FunSuite
5+
import org.scalatest.junit.JUnitRunner
6+
7+
@RunWith(classOf[JUnitRunner])
8+
class WorldScalaOnlySuite extends FunSuite {
9+
10+
test("foo") {
11+
new WorldScalaOnly().foo()
12+
}
13+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
include 'java_only', 'scala_only', 'mixed_scala_java'

0 commit comments

Comments
 (0)