Skip to content

Commit 1c4ea7f

Browse files
committed
Add detection of scala version via 'implementation' and 'compileOnly' configurations
1 parent 924bf49 commit 1c4ea7f

File tree

11 files changed

+133
-29
lines changed

11 files changed

+133
-29
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package org.scoverage;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
import org.junit.runner.RunWith;
6+
import org.junit.runners.Parameterized;
7+
8+
import java.util.Arrays;
9+
import java.util.Collection;
10+
11+
@RunWith(Parameterized.class)
12+
public class DetectScalaLibraryTest extends ScoverageFunctionalTest {
13+
14+
private static final String SCALA_VERSION = "0.0";
15+
private static final String SCALA_LIBRARY_PARAMETER = "-PdetectedScalaLibraryVersion=" + SCALA_VERSION + ".0";
16+
private static final String EXPECTED_OUTPUT = "Using scoverage scalac plugin version '" + SCALA_VERSION;
17+
18+
@Parameterized.Parameter(0)
19+
public String projectDir;
20+
21+
@Parameterized.Parameters(name = "{index}: Project {0} ")
22+
public static Collection<Object[]> data() {
23+
Object[][] data = new Object[][]{{"/compile"}, {"/compileOnly"}, {"/implementation"}, {"/dependency-management"}};
24+
return Arrays.asList(data);
25+
}
26+
27+
public DetectScalaLibraryTest() {
28+
super(null);
29+
}
30+
31+
@Test
32+
public void test() {
33+
setProjectName("detect-scala-library" + projectDir);
34+
35+
// build supposed to fail since repositories are not configured
36+
AssertableBuildResult result = runAndFail("clean", SCALA_LIBRARY_PARAMETER, "--info");
37+
38+
// all we want to know is that the plugin detected our configured library version
39+
String output = result.getResult().getOutput();
40+
Assert.assertTrue(output.contains(EXPECTED_OUTPUT));
41+
}
42+
43+
}

src/functionalTest/java/org.scoverage/ScoverageFunctionalTest.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,12 @@
2323

2424
public abstract class ScoverageFunctionalTest {
2525

26-
private final String projectName;
27-
private final GradleRunner runner;
26+
private String projectName;
27+
private GradleRunner runner;
2828
private final XmlParser parser;
2929

3030
protected ScoverageFunctionalTest(String projectName) {
31-
32-
this.projectName = projectName;
33-
this.runner = GradleRunner.create()
34-
.withProjectDir(projectDir())
35-
.withPluginClasspath()
36-
.forwardOutput();
37-
31+
setProjectName(projectName);
3832
try {
3933
this.parser = new XmlParser();
4034
parser.setFeature("http://apache.org/xml/features/disallow-doctype-decl", false);
@@ -44,6 +38,16 @@ protected ScoverageFunctionalTest(String projectName) {
4438
}
4539
}
4640

41+
protected void setProjectName(String projectName) {
42+
if (projectName != null) {
43+
this.projectName = projectName;
44+
this.runner = GradleRunner.create()
45+
.withProjectDir(projectDir())
46+
.withPluginClasspath()
47+
.forwardOutput();
48+
}
49+
}
50+
4751
protected File projectDir() {
4852

4953
return new File("src/functionalTest/resources/projects/" + projectName);
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
plugins {
2+
id 'org.scoverage'
3+
}
4+
5+
description = 'defines scala library using the "compile" configuration'
6+
7+
dependencies {
8+
compile group: 'org.scala-lang', name: 'scala-library', version: "${detectedScalaLibraryVersion}"
9+
}

src/functionalTest/resources/projects/detect-scala-library/compile/settings.gradle

Whitespace-only changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
plugins {
2+
id 'org.scoverage'
3+
}
4+
5+
description = 'defines scala library using the "compileOnly" configuration'
6+
7+
dependencies {
8+
compileOnly group: 'org.scala-lang', name: 'scala-library', version: "${detectedScalaLibraryVersion}"
9+
}

src/functionalTest/resources/projects/detect-scala-library/compileOnly/settings.gradle

Whitespace-only changes.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
plugins {
2+
id 'io.spring.dependency-management' version "1.0.4.RELEASE"
3+
id 'org.scoverage'
4+
}
5+
6+
description = 'defines scala library using the "implementation" configuration and the dependency-management plugin'
7+
8+
dependencyManagement {
9+
dependencies {
10+
dependency group: 'org.scala-lang', name: 'scala-library', version: "${detectedScalaLibraryVersion}"
11+
}
12+
}
13+
14+
dependencies {
15+
implementation group: 'org.scala-lang', name: 'scala-library'
16+
}

src/functionalTest/resources/projects/detect-scala-library/dependency-management/settings.gradle

Whitespace-only changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
plugins {
2+
id 'org.scoverage'
3+
}
4+
5+
description = 'defines scala library using the "implementation" configuration'
6+
7+
dependencies {
8+
implementation group: 'org.scala-lang', name: 'scala-library', version: "${detectedScalaLibraryVersion}"
9+
}

src/functionalTest/resources/projects/detect-scala-library/implementation/settings.gradle

Whitespace-only changes.

0 commit comments

Comments
 (0)