Skip to content

Commit 74af4a7

Browse files
authored
Remove usages of kotlinx serialization from test code (#466)
* Remove usages of kotlinx serialization from test code * Remove SaveExtensionConfigTask
1 parent eff2111 commit 74af4a7

File tree

10 files changed

+201
-381
lines changed

10 files changed

+201
-381
lines changed

gradle-plugin/plugin/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ dependencies {
133133

134134
functionalTestImplementation(project(":plugin"))
135135
functionalTestImplementation(libs.okhttp.mockwebserver)
136-
functionalTestImplementation(libs.kotlinx.serialization)
137136
functionalTestImplementation(libs.junit5.jupiter)
138137
functionalTestImplementation(libs.google.truth)
139138

Lines changed: 63 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,74 @@
11
package com.emergetools.android.gradle
22

3-
import com.emergetools.android.gradle.base.EmergeGradleRunner
4-
import com.emergetools.android.gradle.utils.EnvUtils.withGitHubPREvent
5-
import org.junit.jupiter.api.Assertions
3+
import com.autonomousapps.kit.truth.TestKitTruth.Companion.assertThat
4+
import com.emergetools.android.gradle.base.EmergeGradleRunner2
5+
import com.emergetools.android.gradle.projects.SimpleGradleProject
66
import org.junit.jupiter.api.Test
77

88
class LoggingEmergePluginTest : EmergePluginTest() {
99
// Write a test that verifies that executing the task 'logExtension' prints the extension to the console.
1010
@Test
1111
fun logExtension() {
12-
val result =
13-
EmergeGradleRunner.create("simple")
14-
.withArguments("logExtension")
15-
.withGitHubPREvent()
16-
.build()
17-
.assertSuccessfulTask(":logExtension")
12+
val project = SimpleGradleProject.createWithVcsInExtension(this)
13+
val runner = EmergeGradleRunner2(project.gradleProject.rootDir)
14+
.withArguments("logExtension")
15+
.withGithubPR()
16+
.build()
1817

19-
Assertions.assertTrue(
20-
result.output.contains(
21-
"╔══════════════════════╗\n" +
22-
"║ Emerge configuration ║\n" +
23-
"╠══════════════════════╝\n" +
24-
"╠═ apiToken: *****\n" +
25-
"╠═ includeDependencyInformation: true\n" +
26-
"╠═ dryRun (optional): false\n" +
27-
"╠═ verbose (optional): false\n" +
28-
"╔══════╗\n" +
29-
"║ size ║\n" +
30-
"╠══════╝\n" +
31-
"╠═ tag (optional): \n" +
32-
"╚═ enabled: true\n" +
33-
"╔═══════════╗\n" +
34-
"║ snapshots ║\n" +
35-
"╠═══════════╝\n" +
36-
"╠═ snapshotsStorageDirectory: \n" +
37-
"╠═ apiVersion: \n" +
38-
"╠═ includePrivatePreviews: \n" +
39-
"╠═ includePreviewParamPreviews: \n" +
40-
"╠═ tag (optional): \n" +
41-
"╠═ enabled: true\n" +
42-
"╚═ profile: false\n" +
43-
"╔════════╗\n" +
44-
"║ reaper ║\n" +
45-
"╠════════╝\n" +
46-
"╠═ enabledVariants: []\n" +
47-
"╠═ publishableApiKey: MISSING\n" +
48-
"╚═ tag (optional): \n" +
49-
"╔═════════════╗\n" +
50-
"║ performance ║\n" +
51-
"╠═════════════╝\n" +
52-
"╠═ projectPath: \n" +
53-
"╠═ tag (optional): \n" +
54-
"╚═ enabled: true\n" +
55-
"╔═══════════════════════════════════════════════╗\n" +
56-
"║ vcsOptions (optional, defaults to Git values) ║\n" +
57-
"╠═══════════════════════════════════════════════╝\n" +
58-
"╠═ sha: testSha\n" +
59-
"╠═ baseSha: testBaseSha\n" +
60-
"╠═ previousSha: testPreviousSha\n" +
61-
"╠═ branchName: testBranchName\n" +
62-
"╠═ prNumber: 123\n" +
63-
"╠═ gitHubOptions\n" +
64-
"╠═ repoOwner: repoOwner\n" +
65-
"╠═ repoName: repoName\n" +
66-
"╠═ includeEventInformation: true\n" +
67-
"╠═ gitLabOptions\n" +
68-
"╚═ projectId: ",
69-
),
70-
)
18+
assertThat(runner).apply {
19+
task(":app:logExtension").succeeded()
20+
// Unfortunately, we can't use a raw string here because the trailing whitespaces would be removed
21+
// Not sure if it is being done by the IDE or by the function `.trimIndent()`
22+
output().contains(
23+
"╔══════════════════════╗\n" +
24+
"║ Emerge configuration ║\n" +
25+
"╠══════════════════════╝\n" +
26+
"╠═ apiToken: *****\n" +
27+
"╠═ includeDependencyInformation: true\n" +
28+
"╠═ dryRun (optional): false\n" +
29+
"╠═ verbose (optional): false\n" +
30+
"╔══════╗\n" +
31+
"║ size ║\n" +
32+
"╠══════╝\n" +
33+
"╠═ tag (optional): \n" +
34+
"╚═ enabled: true\n" +
35+
"╔═══════════╗\n" +
36+
"║ snapshots ║\n" +
37+
"╠═══════════╝\n" +
38+
"╠═ snapshotsStorageDirectory: \n" +
39+
"╠═ apiVersion: \n" +
40+
"╠═ includePrivatePreviews: \n" +
41+
"╠═ includePreviewParamPreviews: \n" +
42+
"╠═ tag (optional): \n" +
43+
"╠═ enabled: true\n" +
44+
"╚═ profile: false\n" +
45+
"╔════════╗\n" +
46+
"║ reaper ║\n" +
47+
"╠════════╝\n" +
48+
"╠═ enabledVariants: []\n" +
49+
"╠═ publishableApiKey: MISSING\n" +
50+
"╚═ tag (optional): \n" +
51+
"╔═════════════╗\n" +
52+
"║ performance ║\n" +
53+
"╠═════════════╝\n" +
54+
"╠═ projectPath: \n" +
55+
"╠═ tag (optional): \n" +
56+
"╚═ enabled: true\n" +
57+
"╔═══════════════════════════════════════════════╗\n" +
58+
"║ vcsOptions (optional, defaults to Git values) ║\n" +
59+
"╠═══════════════════════════════════════════════╝\n" +
60+
"╠═ sha: testSha\n" +
61+
"╠═ baseSha: testBaseSha\n" +
62+
"╠═ previousSha: testPreviousSha\n" +
63+
"╠═ branchName: testBranchName\n" +
64+
"╠═ prNumber: 123\n" +
65+
"╠═ gitHubOptions\n" +
66+
"╠═ repoOwner: repoOwner\n" +
67+
"╠═ repoName: repoName\n" +
68+
"╠═ includeEventInformation: true\n" +
69+
"╠═ gitLabOptions\n" +
70+
"╚═ projectId: ",
71+
)
72+
}
7173
}
7274
}

gradle-plugin/plugin/src/functionalTest/kotlin/com/emergetools/android/gradle/NoVcsEmergePluginTest.kt

Lines changed: 40 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
package com.emergetools.android.gradle
22

3+
import com.autonomousapps.kit.truth.TestKitTruth.Companion.assertThat
34
import com.emergetools.android.gradle.base.EmergeGradleRunner
5+
import com.emergetools.android.gradle.base.EmergeGradleRunner2
46
import com.emergetools.android.gradle.mocks.assertSuccessfulUploadRequests
5-
import com.emergetools.android.gradle.tasks.internal.SaveExtensionConfigTask.Companion.EmergePluginExtensionData
6-
import com.emergetools.android.gradle.utils.EnvUtils.withGitHubPREvent
7-
import com.emergetools.android.gradle.utils.EnvUtils.withGitHubPushEvent
8-
import kotlinx.serialization.json.Json
9-
import kotlinx.serialization.json.decodeFromStream
10-
import org.junit.Assert.assertEquals
11-
import org.junit.Assert.assertNull
7+
import com.emergetools.android.gradle.projects.SimpleGradleProject
128
import org.junit.jupiter.api.Test
13-
import java.io.File
149

1510
class NoVcsEmergePluginTest : EmergePluginTest() {
1611
@Test
@@ -78,59 +73,53 @@ class NoVcsEmergePluginTest : EmergePluginTest() {
7873

7974
@Test
8075
fun `Assert GitHub PR sha overwrites sha`() {
81-
val runner = EmergeGradleRunner.create("no-vcs-params")
82-
val configurationJson = File(runner.tempProjectDir, "emerge_config.json")
83-
84-
runner
85-
.withArguments(
86-
"saveExtensionConfig",
87-
"--outputPath",
88-
configurationJson.path,
89-
)
90-
.withDebugTasks()
91-
.withGitHubPREvent()
92-
.assert { result, _ ->
93-
result.assertSuccessfulTask(":saveExtensionConfig")
94-
}
76+
val project = SimpleGradleProject.createWithoutVcsInExtension(this)
77+
val runner = EmergeGradleRunner2(project.gradleProject.rootDir)
78+
.withArguments("logExtension")
79+
.withGithubPR()
80+
.withJavaVersionFromAgp(project.agpVersion)
9581
.build()
9682

97-
val configuration =
98-
Json.decodeFromStream<EmergePluginExtensionData>(
99-
configurationJson.inputStream(),
100-
)
83+
assertThat(runner).task(":app:logExtension").succeeded()
84+
85+
assertThat(runner).output().contains("""
86+
╔═══════════════════════════════════════════════╗
87+
║ vcsOptions (optional, defaults to Git values) ║
88+
╠═══════════════════════════════════════════════╝
89+
╠═ sha: github_head_sha
90+
╠═ baseSha: github_base_sha
91+
╠═ previousSha:
92+
""".trimIndent())
10193

102-
assertEquals("github_head_sha", configuration.vcsOptions!!.sha)
103-
assertEquals("github_base_sha", configuration.vcsOptions!!.baseSha)
104-
assertEquals(null, configuration.vcsOptions!!.previousSha)
105-
assertEquals("123", configuration.vcsOptions!!.prNumber)
94+
assertThat(runner).output().contains("""
95+
╠═ prNumber: 123
96+
""".trimIndent())
10697
}
10798

10899
@Test
109100
fun `Assert GitHub push env sha overwrites sha`() {
110-
val runner = EmergeGradleRunner.create("no-vcs-params")
111-
val configurationJson = File(runner.tempProjectDir, "emerge_config.json")
112-
113-
runner
114-
.withArguments(
115-
"saveExtensionConfig",
116-
"--outputPath",
117-
configurationJson.path,
118-
)
119-
.withDebugTasks()
101+
val project = SimpleGradleProject.createWithoutVcsInExtension(this)
102+
val runner = EmergeGradleRunner2(project.gradleProject.rootDir)
103+
.withArguments("logExtension")
120104
.withGitHubPushEvent()
121-
.assert { result, _ ->
122-
result.assertSuccessfulTask(":saveExtensionConfig")
123-
}
105+
.withJavaVersionFromAgp(project.agpVersion)
124106
.build()
125107

126-
val configuration =
127-
Json.decodeFromStream<EmergePluginExtensionData>(
128-
configurationJson.inputStream(),
129-
)
108+
assertThat(runner).apply {
109+
task(":app:logExtension").succeeded()
110+
output().contains("""
111+
╔═══════════════════════════════════════════════╗
112+
║ vcsOptions (optional, defaults to Git values) ║
113+
╠═══════════════════════════════════════════════╝
114+
╠═ sha: github_env_sha
115+
""".trimIndent())
116+
117+
output().contains("╠═ baseSha: \n")
118+
119+
output().contains("""
120+
╠═ previousSha: github_previous_sha
130121
131-
assertEquals("github_env_sha", configuration.vcsOptions!!.sha)
132-
assertEquals("github_previous_sha", configuration.vcsOptions!!.previousSha)
133-
// BaseSha not set by default
134-
assertNull(configuration.vcsOptions!!.baseSha)
122+
""".trimIndent())
123+
}
135124
}
136125
}

gradle-plugin/plugin/src/functionalTest/kotlin/com/emergetools/android/gradle/SimpleEmergePluginTest.kt

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,16 @@ import com.emergetools.android.gradle.base.EmergeGradleRunner.Companion.LATEST_A
55
import com.emergetools.android.gradle.base.EmergeGradleRunner2
66
import com.emergetools.android.gradle.mocks.assertSuccessfulUploadRequests
77
import com.emergetools.android.gradle.projects.SimpleGradleProject
8-
import com.google.common.truth.Truth.assertThat
98
import org.gradle.util.GradleVersion
109
import org.junit.jupiter.api.Test
11-
import java.io.File
1210

1311
class SimpleEmergePluginTest : EmergePluginTest() {
1412
@Test
1513
fun simpleBundle() {
16-
val project = SimpleGradleProject.create(this)
14+
val project = SimpleGradleProject.createWithVcsInExtension(this)
1715
val runner = EmergeGradleRunner2(project.gradleProject.rootDir)
1816
.withArguments("emergeUploadReleaseAab")
17+
.withJavaVersionFromAgp(project.agpVersion)
1918
.build()
2019

2120
assertSuccessfulUploadRequests(server)
@@ -24,9 +23,10 @@ class SimpleEmergePluginTest : EmergePluginTest() {
2423

2524
@Test
2625
fun simpleBundleAgp7_3_0() {
27-
val project = SimpleGradleProject.create(this, LATEST_AGP_7_VERSION)
26+
val project = SimpleGradleProject.createWithVcsInExtension(this, LATEST_AGP_7_VERSION)
2827
val runner = EmergeGradleRunner2(project.gradleProject.rootDir, GradleVersion.version("7.5.1"))
2928
.withArguments("emergeUploadReleaseAab")
29+
.withJavaVersionFromAgp(LATEST_AGP_7_VERSION)
3030
.build()
3131

3232
assertSuccessfulUploadRequests(server)
@@ -36,19 +36,21 @@ class SimpleEmergePluginTest : EmergePluginTest() {
3636
@Test
3737
fun simpleBundleTimeout() {
3838
enableServerTimeout()
39-
val project = SimpleGradleProject.create(this)
39+
val project = SimpleGradleProject.createWithVcsInExtension(this)
4040
val runner = EmergeGradleRunner2(project.gradleProject.rootDir)
4141
.withArguments("emergeUploadReleaseAab")
42+
.withJavaVersionFromAgp(project.agpVersion)
4243
.buildAndFail()
4344

4445
assertThat(runner).task(":app:emergeUploadReleaseAab").failed()
4546
}
4647

4748
@Test
4849
fun simpleAssemble() {
49-
val project = SimpleGradleProject.create(this)
50+
val project = SimpleGradleProject.createWithVcsInExtension(this)
5051
val runner = EmergeGradleRunner2(project.gradleProject.rootDir)
5152
.withArguments("emergeUploadReleaseApk")
53+
.withJavaVersionFromAgp(project.agpVersion)
5254
.build()
5355

5456
assertSuccessfulUploadRequests(server)
@@ -58,25 +60,27 @@ class SimpleEmergePluginTest : EmergePluginTest() {
5860
@Test
5961
fun simpleAssembleTimeout() {
6062
enableServerTimeout()
61-
val project = SimpleGradleProject.create(this)
63+
val project = SimpleGradleProject.createWithVcsInExtension(this)
6264
val runner = EmergeGradleRunner2(project.gradleProject.rootDir)
6365
.withArguments("emergeUploadReleaseApk")
66+
.withJavaVersionFromAgp(project.agpVersion)
6467
.buildAndFail()
6568

6669
assertThat(runner).task(":app:emergeUploadReleaseApk").failed()
6770
}
6871

6972
@Test
7073
fun `Assert explicit sha overwrites GitHub convention sha`() {
71-
val project = SimpleGradleProject.create(this)
74+
val project = SimpleGradleProject.createWithVcsInExtension(this)
7275
val runner = EmergeGradleRunner2(project.gradleProject.rootDir)
7376
.withArguments("logExtension")
77+
.withJavaVersionFromAgp(project.agpVersion)
7478
.withGithubPR()
7579
.build()
7680

7781
assertThat(runner).task(":app:logExtension").succeeded()
7882

79-
assertThat(runner.output).contains("""
83+
assertThat(runner).output().contains("""
8084
╔═══════════════════════════════════════════════╗
8185
║ vcsOptions (optional, defaults to Git values) ║
8286
╠═══════════════════════════════════════════════╝
@@ -85,15 +89,4 @@ class SimpleEmergePluginTest : EmergePluginTest() {
8589
╠═ previousSha: testPreviousSha
8690
""".trimIndent())
8791
}
88-
89-
fun EmergeGradleRunner2.withGithubPR() : EmergeGradleRunner2 {
90-
val resource = this.javaClass.getResource("/github-event-mocks/mock_pr_event.json")!!
91-
val jsonFile = File(resource.toURI())
92-
93-
runner.withEnvironment(mapOf(
94-
"GITHUB_EVENT_NAME" to "pull_request",
95-
"GITHUB_EVENT_PATH" to jsonFile.path,
96-
))
97-
return this
98-
}
9992
}

gradle-plugin/plugin/src/functionalTest/kotlin/com/emergetools/android/gradle/base/EmergeGradleRunner.kt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,21 +67,11 @@ class EmergeGradleRunner private constructor(
6767
this.arguments = arguments.toList()
6868
}
6969

70-
fun withDebugTasks() =
71-
apply {
72-
arguments = arguments + "-PemergeDebug"
73-
}
74-
7570
fun withGradleVersion(version: String) =
7671
apply {
7772
gradleVersion = GradleVersion.version(version)
7873
}
7974

80-
@Suppress("unused")
81-
fun withDebug(flag: Boolean) {
82-
withDebug = flag
83-
}
84-
8575
fun withAndroidGradlePluginVersion(version: String) =
8676
apply {
8777
check(version in SUPPORTED_ANDROID_GRADLE_PLUGIN_VERSIONS) {

0 commit comments

Comments
 (0)