Skip to content

Commit 135d219

Browse files
committed
Move assetsCollection to Groovy to profit from its dynamic nature, so that the changed type doesn't matter to Kotlin
1 parent 86790a1 commit 135d219

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

android-junit5/src/main/groovy/de/mannodermaus/gradle/plugins/junit5/GroovyInterop.groovy

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@ import com.android.annotations.NonNull
44
import com.android.build.gradle.api.BaseVariant
55
import com.android.build.gradle.internal.scope.VariantScope
66
import com.android.build.gradle.internal.variant.BaseVariantData
7+
import com.android.build.gradle.tasks.factory.AndroidUnitTest
78
import com.annimon.stream.Optional
89

10+
import javax.annotation.Nullable
11+
912
/**
1013
* Utility functions exposed to Kotlin consumers
1114
* that can't safely access Groovy members otherwise,
@@ -81,6 +84,19 @@ class GroovyInterop {
8184
}
8285
}
8386

87+
/**
88+
* Obtains the Assets Collection of the given AndroidUnitTest.
89+
*
90+
* @because 'assetsCollection' type changed from FileCollection to BuildArtifact in Android Gradle Plugin 3.2.0-alpha07
91+
* @param test The Android JUnit 4 test to access
92+
* @return Its assets collection
93+
*/
94+
@Nullable
95+
static Set<File> androidUnitTest_assetsCollection(AndroidUnitTest test) {
96+
def collection = test.assetsCollection
97+
return collection == null ? null : collection.files
98+
}
99+
84100
/**
85101
* Obtains the task name prefix for Unit Test variants.
86102
*

android-junit5/src/main/kotlin/de/mannodermaus/gradle/plugins/junit5/Interop.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package de.mannodermaus.gradle.plugins.junit5
33
import com.android.build.gradle.api.BaseVariant
44
import com.android.build.gradle.internal.scope.VariantScope
55
import com.android.build.gradle.internal.variant.BaseVariantData
6+
import com.android.build.gradle.tasks.factory.AndroidUnitTest
67
import groovy.lang.Closure
78
import java.io.File
89

@@ -19,6 +20,9 @@ val BaseVariant.variantData: BaseVariantData
1920
val VariantScope.safeJavaOutputDirs: Set<File>
2021
get() = GroovyInterop.variantScope_javaOutputDirs(this)
2122

23+
val AndroidUnitTest.safeAssetsCollection: Set<File>?
24+
get() = GroovyInterop.androidUnitTest_assetsCollection(this)
25+
2226
/* Types */
2327

2428
class VariantTypeCompat {

android-junit5/src/main/kotlin/de/mannodermaus/gradle/plugins/junit5/tasks/UnitTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import de.mannodermaus.gradle.plugins.junit5.internal.junit5Info
1111
import de.mannodermaus.gradle.plugins.junit5.junitPlatform
1212
import de.mannodermaus.gradle.plugins.junit5.providers.DirectoryProvider
1313
import de.mannodermaus.gradle.plugins.junit5.providers.classDirectories
14+
import de.mannodermaus.gradle.plugins.junit5.safeAssetsCollection
1415
import de.mannodermaus.gradle.plugins.junit5.variantData
1516
import org.gradle.api.DefaultTask
1617
import org.gradle.api.Project
@@ -183,7 +184,7 @@ open class AndroidJUnit5UnitTest : JavaExec(), JUnit5UnitTest {
183184
// Connect to the default unit test task
184185
val variantUnitTestTask = this.getDefaultJUnit4Task()
185186
task.resCollection = variantUnitTestTask.resCollection?.files
186-
task.assetsCollection = variantUnitTestTask.assetsCollection?.files
187+
task.assetsCollection = variantUnitTestTask.safeAssetsCollection
187188

188189
variantUnitTestTask.enabled = junit5.enableStandardTestTask
189190
variantUnitTestTask.dependsOn(task)

0 commit comments

Comments
 (0)