Skip to content

Commit 8f34964

Browse files
committed
Fix testing code to support latest Gradle build script
Signed-off-by: Daniel Lacasse <[email protected]>
1 parent 43d01aa commit 8f34964

11 files changed

+261
-233
lines changed

Diff for: subprojects/gradle-plugin-development/src/functionalTest/groovy/dev/gradleplugins/GradlePluginDevelopmentDependenciesFunctionalTests.java

+8-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dev.gradleplugins;
22

33
import dev.gradleplugins.buildscript.ast.ExpressionBuilder;
4+
import dev.gradleplugins.buildscript.ast.expressions.Expression;
45
import dev.gradleplugins.buildscript.io.GradleBuildFile;
56
import dev.gradleplugins.buildscript.io.GradleSettingsFile;
67
import dev.gradleplugins.runnerkit.GradleExecutor;
@@ -18,6 +19,7 @@
1819

1920
import java.nio.file.Path;
2021

22+
import static dev.gradleplugins.buildscript.syntax.Syntax.groovyDsl;
2123
import static dev.gradleplugins.buildscript.syntax.Syntax.literal;
2224

2325

@@ -50,8 +52,8 @@ public GradleBuildFile buildFile() {
5052
}
5153

5254
@Override
53-
public String gradleApiDsl(String version) {
54-
return "gradlePlugin.dependencies.gradleApi('" + version + "')";
55+
public Expression gradleApiDsl(String version) {
56+
return groovyDsl("gradlePlugin.dependencies.gradleApi('" + version + "')");
5557
}
5658
}
5759

@@ -73,13 +75,13 @@ public GradleSettingsFile settingsFile() {
7375
}
7476

7577
@Override
76-
public String projectDsl(String projectPath) {
77-
return "gradlePlugin.dependencies.project('" + projectPath + "')";
78+
public Expression projectDsl(String projectPath) {
79+
return groovyDsl("gradlePlugin.dependencies.project('" + projectPath + "')");
7880
}
7981

8082
@Override
81-
public String projectDsl() {
82-
return "gradlePlugin.dependencies.project()";
83+
public Expression projectDsl() {
84+
return groovyDsl("gradlePlugin.dependencies.project()");
8385
}
8486
}
8587

Diff for: subprojects/gradle-plugin-development/src/functionalTest/groovy/dev/gradleplugins/GradlePluginDevelopmentTestSuiteFunctionalTests.java

+15-2
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,12 @@ void givenProject() throws IOException {
4646
it.id("dev.gradleplugins.gradle-plugin-testing-base");
4747
it.id("java-gradle-plugin");
4848
});
49-
buildFile.append(val("testSuiteUnderTest", assign(call("testSuiteFactory.create", string("foo")))));
49+
buildFile.append(val("_testSuiteUnderTest_", assign(call("testSuiteFactory.create", string("foo")))));
5050
}
5151

5252
@Test
5353
void hasMainSourceSetAsTestedSourceSetConvention() {
54+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
5455
buildFile.append(groovyDsl(
5556
"testSuiteUnderTest.testedSourceSet = null",
5657
"tasks.register('verify') {",
@@ -65,6 +66,7 @@ void hasMainSourceSetAsTestedSourceSetConvention() {
6566

6667
@Test
6768
void usesDevelPluginSourceSetAsTestedSourceSetConvention() {
69+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
6870
buildFile.append(groovyDsl(
6971
"gradlePlugin.pluginSourceSet(sourceSets.create('anotherMain'))",
7072
"testSuiteUnderTest.testedSourceSet = null",
@@ -80,6 +82,7 @@ void usesDevelPluginSourceSetAsTestedSourceSetConvention() {
8082

8183
@Test
8284
void disallowChangesToSourceSetProperty() {
85+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
8386
buildFile.append(groovyDsl(
8487
"afterEvaluate {",
8588
" testSuiteUnderTest.sourceSet = null", // expect failure
@@ -94,6 +97,7 @@ void disallowChangesToSourceSetProperty() {
9497

9598
@Test
9699
void disallowChangesToTestedSourceSetProperty() {
100+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
97101
buildFile.append(groovyDsl(
98102
"afterEvaluate {",
99103
" testSuiteUnderTest.testedSourceSet = null", // expect failure
@@ -108,6 +112,7 @@ void disallowChangesToTestedSourceSetProperty() {
108112

109113
@Test
110114
void disallowChangesToTestingStrategiesProperty() {
115+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
111116
buildFile.append(groovyDsl(
112117
"afterEvaluate {",
113118
" testSuiteUnderTest.testingStrategies = null", // expect failure
@@ -122,6 +127,7 @@ void disallowChangesToTestingStrategiesProperty() {
122127

123128
@Test
124129
void returnsTestTasksOnTaskViewElementQuery() {
130+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
125131
buildFile.append(groovyDsl(
126132
"testSuiteUnderTest.with {",
127133
" testingStrategies = [strategies.coverageForGradleVersion('6.8'), strategies.coverageForGradleVersion('7.1')]",
@@ -139,6 +145,7 @@ void returnsTestTasksOnTaskViewElementQuery() {
139145

140146
@Test
141147
void includesPluginUnderTestMetadataConfigurationDependencies() {
148+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
142149
buildFile.append(groovyDsl(
143150
"testSuiteUnderTest.dependencies.pluginUnderTestMetadata files('my/own/dep.jar')",
144151
"",
@@ -154,6 +161,7 @@ void includesPluginUnderTestMetadataConfigurationDependencies() {
154161

155162
@Test
156163
void addsPluginUnderTestMetadataAsRuntimeOnlyDependency() {
164+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
157165
buildFile.append(groovyDsl(
158166
"tasks.register('verify') {",
159167
" doLast {",
@@ -169,6 +177,7 @@ void addsPluginUnderTestMetadataAsRuntimeOnlyDependency() {
169177

170178
@Test
171179
void doesNotIncludesSourceSetInDevelTestSourceSets() {
180+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
172181
buildFile.append(groovyDsl(
173182
"tasks.register('verify') {",
174183
" doLast {",
@@ -182,6 +191,7 @@ void doesNotIncludesSourceSetInDevelTestSourceSets() {
182191

183192
@Test
184193
void createsDefaultSourceSetOnSourceSetPropertyQueryOfConvention() {
194+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
185195
buildFile.append(groovyDsl(
186196
"testSuiteUnderTest.sourceSet = null // reset value to convention",
187197
"assert testSuiteUnderTest.sourceSet.get().name == 'foo'",
@@ -195,6 +205,7 @@ void createsDefaultSourceSetOnSourceSetPropertyQueryOfConvention() {
195205

196206
@Test
197207
void createsDefaultSourceSetWhenProjectConfigured() {
208+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
198209
buildFile.append(groovyDsl(
199210
"tasks.register('verify') {",
200211
" doLast {",
@@ -209,6 +220,7 @@ void createsDefaultSourceSetWhenProjectConfigured() {
209220

210221
@Test
211222
void doesNotCreateDefaultSourceSetWhenSourceSetPropertyOverridden() {
223+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
212224
buildFile.append(groovyDsl(
213225
"testSuiteUnderTest.sourceSet = sourceSets.create('kiel')",
214226
"tasks.register('verify') {",
@@ -225,6 +237,7 @@ void doesNotCreateDefaultSourceSetWhenSourceSetPropertyOverridden() {
225237

226238
@Test
227239
void doesNotCreateDefaultSourceSetOnTestSuiteCreation() {
240+
buildFile.append(val("testSuiteUnderTest", assign(literal("_testSuiteUnderTest_"))));
228241
buildFile.append(groovyDsl(
229242
"assert sourceSets.findByName('foo') == null : 'not yet created until sourceSet property realized'",
230243
"",
@@ -243,7 +256,7 @@ public GradleRunner runner() {
243256

244257
@Override
245258
public ExpressionBuilder<?> testSuiteDsl() {
246-
return literal("testSuiteUnderTest");
259+
return literal("_testSuiteUnderTest_");
247260
}
248261

249262
@Override

Diff for: subprojects/gradle-plugin-development/src/functionalTest/groovy/dev/gradleplugins/ProjectDependenciesExtensionFunctionalTests.java

+9-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package dev.gradleplugins;
22

3+
import dev.gradleplugins.buildscript.ast.expressions.Expression;
34
import dev.gradleplugins.buildscript.io.GradleBuildFile;
45
import dev.gradleplugins.runnerkit.GradleExecutor;
56
import dev.gradleplugins.runnerkit.GradleRunner;
@@ -13,6 +14,8 @@
1314

1415
import java.nio.file.Path;
1516

17+
import static dev.gradleplugins.buildscript.syntax.Syntax.groovyDsl;
18+
1619
class ProjectDependenciesExtensionFunctionalTests {
1720
@TempDir(cleanup = CleanupMode.ON_SUCCESS) Path testDirectory;
1821
GradleRunner runner = GradleRunner.create(GradleExecutor.gradleTestKit()).withGradleVersion(System.getProperty("dev.gradleplugins.defaultGradleVersion")).withPluginClasspath().inDirectory(() -> testDirectory);
@@ -37,8 +40,8 @@ public GradleBuildFile buildFile() {
3740
}
3841

3942
@Override
40-
public String gradleApiDsl(String version) {
41-
return "dependencies.gradleApi('" + version + "')";
43+
public Expression gradleApiDsl(String version) {
44+
return groovyDsl("dependencies.gradleApi('" + version + "')");
4245
}
4346
}
4447

@@ -55,13 +58,13 @@ public GradleBuildFile buildFile() {
5558
}
5659

5760
@Override
58-
public String gradleTestKitDsl(String version) {
59-
return "dependencies.gradleTestKit('" + version + "')";
61+
public Expression gradleTestKitDsl(String version) {
62+
return groovyDsl("dependencies.gradleTestKit('" + version + "')");
6063
}
6164

6265
@Override
63-
public String gradleTestKitDsl() {
64-
return "dependencies.gradleTestKit()";
66+
public Expression gradleTestKitDsl() {
67+
return groovyDsl("dependencies.gradleTestKit()");
6568
}
6669
}
6770

Diff for: subprojects/gradle-plugin-development/src/functionalTest/groovy/dev/gradleplugins/testers/DependencyBucketTester.java

+47-45
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,16 @@
22

33
import dev.gradleplugins.buildscript.ast.ExpressionBuilder;
44
import dev.gradleplugins.buildscript.ast.expressions.Expression;
5-
import dev.gradleplugins.buildscript.ast.type.ReferenceType;
65
import dev.gradleplugins.buildscript.io.GradleBuildFile;
76
import dev.gradleplugins.buildscript.io.GradleSettingsFile;
87
import dev.gradleplugins.runnerkit.GradleRunner;
9-
import org.gradle.api.artifacts.ExternalModuleDependency;
10-
import org.gradle.api.artifacts.FileCollectionDependency;
11-
import org.gradle.api.artifacts.ProjectDependency;
128
import org.junit.jupiter.api.BeforeEach;
139
import org.junit.jupiter.api.Nested;
1410
import org.junit.jupiter.api.Test;
1511

16-
import static dev.gradleplugins.buildscript.ast.expressions.ItExpression.it;
17-
import static dev.gradleplugins.buildscript.ast.expressions.MethodCallExpression.call;
18-
import static dev.gradleplugins.buildscript.ast.type.UnknownType.unknownType;
19-
import static dev.gradleplugins.buildscript.blocks.GradleBuildScriptBlocks.doLast;
20-
import static dev.gradleplugins.buildscript.blocks.GradleBuildScriptBlocks.registerTask;
21-
import static dev.gradleplugins.buildscript.syntax.Syntax.assertTrue;
22-
import static dev.gradleplugins.buildscript.syntax.Syntax.lambda;
23-
import static dev.gradleplugins.buildscript.syntax.Syntax.literal;
24-
import static dev.gradleplugins.buildscript.syntax.Syntax.setOf;
12+
import static dev.gradleplugins.buildscript.ast.expressions.AssignmentExpression.assign;
13+
import static dev.gradleplugins.buildscript.ast.expressions.VariableDeclarationExpression.val;
14+
import static dev.gradleplugins.buildscript.syntax.Syntax.groovyDsl;
2515
import static dev.gradleplugins.buildscript.syntax.Syntax.string;
2616

2717
public abstract class DependencyBucketTester {
@@ -39,56 +29,68 @@ private abstract class Tester {
3929
@Test
4030
void testGroupArtifactVersionNotation() {
4131
buildFile().append(bucketDsl(string("com.example:foo:1.0")));
42-
buildFile().append(registerTask("verify", taskBlock -> {
43-
taskBlock.add(doLast(it -> {
44-
it.add(assertTrue(DependencyBucketTester.this.bucketDsl().call("asConfiguration.get().dependencies.any", lambda(anyBlock -> {
45-
anyBlock.add(it().instanceOf(ExternalModuleDependency.class).and(string("com.example:foo:1.0").equalTo(literal("\"${it.group}:${it.name}:${it.version}\""))));
46-
}))));
47-
}));
48-
}));
32+
buildFile().append(val("bucketUnderTest", assign(DependencyBucketTester.this.bucketDsl())));
33+
buildFile().append(groovyDsl(
34+
"tasks.register('verify') {",
35+
" doLast {",
36+
" assert bucketUnderTest.asConfiguration.get().dependencies.any {",
37+
" it instanceof ExternalModuleDependency && 'com.example:foo:1.0' == \"${it.group}:${it.name}:${it.version}\"",
38+
" }",
39+
" }",
40+
"}"
41+
));
4942

5043
runner().withTasks("verify").build();
5144
}
5245

5346
@Test
5447
void testProjectNotation() {
55-
settingsFile().append(call("include", string("other-project")));
56-
buildFile().append(bucketDsl(call("project", string(":other-project"))));
57-
buildFile().append(registerTask("verify", taskBlock -> {
58-
taskBlock.add(doLast(it ->{
59-
it.add(assertTrue(DependencyBucketTester.this.bucketDsl().call("asConfiguration.get().dependencies.any", lambda(anyBlock -> {
60-
anyBlock.add(it().instanceOf(ProjectDependency.class).and(string(":other-project").equalTo(it().dot("dependencyProject.path"))));
61-
}))));
62-
}));
63-
}));
48+
settingsFile().append(groovyDsl("include 'other-project'"));
49+
buildFile().append(bucketDsl(groovyDsl("project(':other-project')")));
50+
buildFile().append(val("bucketUnderTest", assign(DependencyBucketTester.this.bucketDsl())));
51+
buildFile().append(groovyDsl(
52+
"tasks.register('verify') {",
53+
" doLast {",
54+
" assert bucketUnderTest.asConfiguration.get().dependencies.any {",
55+
" it instanceof ProjectDependency && ':other-project' == it.dependencyProject.path",
56+
" }",
57+
" }",
58+
"}"
59+
));
6460

6561
runner().withTasks("verify").build();
6662
}
6763

6864
@Test
6965
void testLocalProjectNotation() {
70-
buildFile().append(bucketDsl(literal("project")));
71-
buildFile().append(registerTask("verify", taskBlock -> {
72-
taskBlock.add(doLast(doLastBlock -> {
73-
doLastBlock.add(assertTrue(DependencyBucketTester.this.bucketDsl().call("asConfiguration.get().dependencies.any", lambda(anyBlock -> {
74-
anyBlock.add(it().instanceOf(ProjectDependency.class).and(literal("project.path").equalTo(it().dot("dependencyProject.path"))));
75-
}))));
76-
}));
77-
}));
66+
buildFile().append(bucketDsl(groovyDsl("project")));
67+
buildFile().append(val("bucketUnderTest", assign(DependencyBucketTester.this.bucketDsl())));
68+
buildFile().append(groovyDsl(
69+
"tasks.register('verify') {",
70+
" doLast {",
71+
" assert bucketUnderTest.asConfiguration.get().dependencies.any {",
72+
" it instanceof ProjectDependency && project.path == it.dependencyProject.path",
73+
" }",
74+
" }",
75+
"}"
76+
));
7877

7978
runner().withTasks("verify").build();
8079
}
8180

8281
@Test
8382
void testFileCollectionNotation() {
84-
buildFile().append(bucketDsl(call("files", string("my-path"))));
85-
buildFile().append(registerTask("verify", taskBlock -> {
86-
taskBlock.add(doLast(doLastBlock -> {
87-
doLastBlock.add(assertTrue(DependencyBucketTester.this.bucketDsl().call("asConfiguration.get().dependencies.any", lambda(anyBlock -> {
88-
anyBlock.add(it().instanceOf(FileCollectionDependency.class).and(setOf(call("project.file", string("my-path"))).equalTo(it().dot("files.files"))));
89-
}))));
90-
}));
91-
}));
83+
buildFile().append(bucketDsl(groovyDsl("files('my-path')")));
84+
buildFile().append(val("bucketUnderTest", assign(DependencyBucketTester.this.bucketDsl())));
85+
buildFile().append(groovyDsl(
86+
"tasks.register('verify') {",
87+
" doLast {",
88+
" assert bucketUnderTest.asConfiguration.get().dependencies.any {",
89+
" it instanceof FileCollectionDependency && [project.file('my-path')] as Set == it.files.files",
90+
" }",
91+
" }",
92+
"}"
93+
));
9294

9395
runner().withTasks("verify").build();
9496
}

0 commit comments

Comments
 (0)