1717
1818package com.itsaky.androidide.tooling.impl
1919
20- import ch.qos.logback.classic.Logger
21- import ch.qos.logback.classic.LoggerContext
2220import com.google.common.truth.Truth.assertThat
2321import com.itsaky.androidide.builder.model.IDESyncIssue
2422import com.itsaky.androidide.buildinfo.BuildInfo
@@ -30,7 +28,6 @@ import org.junit.Rule
3028import org.junit.Test
3129import org.junit.runner.RunWith
3230import org.junit.runners.JUnit4
33- import org.slf4j.LoggerFactory
3431
3532/* *
3633 * @author Akash Yadav
@@ -69,72 +66,47 @@ class CIOnlyToolingApiTests {
6966
7067 @Test
7168 fun `test CI-only latest tested AGP version warning` () {
72- collectOuput { appender ->
73- val agpVersion = AndroidPluginVersion .parse(BuildInfo .AGP_VERSION_LATEST )
69+ val agpVersion = AndroidPluginVersion .parse(BuildInfo .AGP_VERSION_LATEST )
7470
75- val client = ToolingApiTestLauncher .MultiVersionTestClient (
76- agpVersion = agpVersion.toStringSimple(),
77- gradleVersion = BuildInfo .AGP_VERSION_GRADLE_LATEST
78- )
79-
80- ToolingApiTestLauncher .launchServer(
81- client = client,
82-
83- // Version of Android Gradle Plugin that the tooling API should recognize
84- // as the latest one
85- sysProps = mapOf (
86- ToolingProps .TESTING_LATEST_AGP_VERSION
87- to ToolingApiTestLauncher .MultiVersionTestClient .DEFAULT_AGP_VERSION
88- )
89- ) {
90- val output = appender.toString()
91-
92- if (result?.isSuccessful != true ) {
93- // print the output if the initialization fails
94- println (output)
95- }
71+ val client = ToolingApiTestLauncher .MultiVersionTestClient (
72+ agpVersion = agpVersion.toStringSimple(),
73+ gradleVersion = BuildInfo .AGP_VERSION_GRADLE_LATEST
74+ )
9675
97- assertThat(result?.isSuccessful).isTrue()
76+ ToolingApiTestLauncher .launchServer(
77+ client = client,
9878
99- val syncIssues = project.getProjectSyncIssues().get()
100- assertThat(syncIssues).isNotNull()
101- assertThat(syncIssues.syncIssues).isNotEmpty()
102- assertThat(
103- syncIssues.syncIssues.find { it.type == IDESyncIssue .TYPE_AGP_VERSION_TOO_NEW }).isNotNull()
104- }
79+ // Version of Android Gradle Plugin that the tooling API should recognize
80+ // as the latest one
81+ sysProps = mapOf (
82+ ToolingProps .TESTING_LATEST_AGP_VERSION
83+ to ToolingApiTestLauncher .MultiVersionTestClient .DEFAULT_AGP_VERSION
84+ )
85+ ) {
86+ assertThat(result?.isSuccessful).isTrue()
87+
88+ val syncIssues = project.getProjectSyncIssues().get()
89+ assertThat(syncIssues).isNotNull()
90+ assertThat(syncIssues.syncIssues).isNotEmpty()
91+ assertThat(
92+ syncIssues.syncIssues.find { it.type == IDESyncIssue .TYPE_AGP_VERSION_TOO_NEW }).isNotNull()
10593 }
10694 }
10795
10896 @Test
10997 fun `test CI-only minimum AGP version failure` () {
110- collectOuput { appender ->
111- val agpVersion = " 7.1.0"
112- val client = ToolingApiTestLauncher .MultiVersionTestClient (agpVersion = agpVersion,
113- gradleVersion = " 7.2" )
114- ToolingApiTestLauncher .launchServer(client = client) {
115- assertThat(result?.isSuccessful).isFalse()
116-
117- val output = appender.toString()
118- assertThat(output).contains(
119- " Android Gradle Plugin version $agpVersion is not supported by AndroidIDE." )
98+ val agpVersion = " 7.1.0"
99+ val client = ToolingApiTestLauncher .MultiVersionTestClient (
100+ agpVersion = agpVersion,
101+ gradleVersion = " 7.2" ,
102+ outputValidator = { line ->
103+ line.contains(" Android Gradle Plugin version $agpVersion is not supported by AndroidIDE." )
120104 }
121- }
122- }
123-
124- private fun <T : Any ?> collectOuput (action : (appender: CollectingAppender ) -> T ): T {
125-
126- val appender = CollectingAppender ()
127- val rootLogger = LoggerFactory .getLogger(Logger .ROOT_LOGGER_NAME ) as Logger
128- appender.context = LoggerFactory .getILoggerFactory() as LoggerContext
129- appender.start()
130-
131- rootLogger.addAppender(appender)
105+ )
132106
133- return try {
134- action(appender)
135- } finally {
136- appender.stop()
137- rootLogger.detachAppender(appender)
107+ ToolingApiTestLauncher .launchServer(client = client) {
108+ assertThat(result?.isSuccessful).isFalse()
109+ assertThat(client.isOutputValid).isTrue()
138110 }
139111 }
140112}
0 commit comments