diff --git a/src/functionalTest/groovy/com/autonomousapps/android/projects/CouldBeAndroidProject.groovy b/src/functionalTest/groovy/com/autonomousapps/android/projects/CouldBeAndroidProject.groovy index 419536b04..5f631a46d 100644 --- a/src/functionalTest/groovy/com/autonomousapps/android/projects/CouldBeAndroidProject.groovy +++ b/src/functionalTest/groovy/com/autonomousapps/android/projects/CouldBeAndroidProject.groovy @@ -21,8 +21,10 @@ import static com.autonomousapps.kit.gradle.dependencies.Dependencies.commonsCol /** * app (is android and should be) * +--- assets (is android and should be) - * +--- lib-android (is android and shouldn't be) + * +--- lib-android-java-deps (is android and shouldn't be) * \--- lib-java + * +--- lib-android-android-deps (is android and should be) + * \--- assets * \--- lib-java (is java and not a candidate) */ final class CouldBeAndroidProject extends AbstractAndroidProject { @@ -91,7 +93,7 @@ final class CouldBeAndroidProject extends AbstractAndroidProject { ) assets.strings = AndroidStringRes.DEFAULT } - .withAndroidLibProject('lib-android', 'com.example.lib') { lib -> + .withAndroidLibProject('lib-android-java-deps', 'com.example.lib') { lib -> lib.withBuildScript { bs -> bs.plugins = androidLibPlugin bs.android = defaultAndroidLibBlock(false, 'com.example.lib') @@ -101,6 +103,15 @@ final class CouldBeAndroidProject extends AbstractAndroidProject { ] } } + .withAndroidLibProject('lib-android-android-deps', 'com.example.lib') { lib -> + lib.withBuildScript { bs -> + bs.plugins = androidLibPlugin + bs.android = defaultAndroidLibBlock(false, 'com.example.lib') + bs.dependencies = [ + project('implementation', ':assets') + ] + } + } .withSubproject('lib-java') { lib -> lib.withBuildScript { bs -> bs.plugins = [Plugin.javaLibrary, Plugins.dependencyAnalysisNoVersion] @@ -145,7 +156,7 @@ final class CouldBeAndroidProject extends AbstractAndroidProject { } ] - private static Set libAndroidScore = [ + private static Set libAndroidHasJavaDepsScore = [ androidScoreBuilder().with { hasAndroidAssets = false hasAndroidRes = false @@ -155,18 +166,30 @@ final class CouldBeAndroidProject extends AbstractAndroidProject { build() } ] + private static Set libAndroidHasAndroidDepsScore = [ + androidScoreBuilder().with { + hasAndroidAssets = false + hasAndroidRes = false + usesAndroidClasses = false + hasBuildConfig = false + hasAndroidDependencies = true + build() + } + ] final Map> expectedModuleAdvice = [ - ':app' : emptyModuleAdvice, - ':assets' : assetsScore, - ':lib-android': libAndroidScore, - ':lib-java' : emptyModuleAdvice, + ':app' : emptyModuleAdvice, + ':assets' : assetsScore, + ':lib-android-java-deps' : libAndroidHasJavaDepsScore, + ':lib-android-android-deps': libAndroidHasAndroidDepsScore, + ':lib-java' : emptyModuleAdvice, ] final Map> expectedModuleAdviceForIgnore = [ - ':app' : emptyModuleAdvice, - ':assets' : emptyModuleAdvice, - ':lib-android': emptyModuleAdvice, - ':lib-java' : emptyModuleAdvice, + ':app' : emptyModuleAdvice, + ':assets' : emptyModuleAdvice, + ':lib-android-java-deps' : emptyModuleAdvice, + ':lib-android-android-deps': emptyModuleAdvice, + ':lib-java' : emptyModuleAdvice, ] } diff --git a/src/main/kotlin/com/autonomousapps/model/ModuleAdvice.kt b/src/main/kotlin/com/autonomousapps/model/ModuleAdvice.kt index 7ea108759..1d5b8b498 100644 --- a/src/main/kotlin/com/autonomousapps/model/ModuleAdvice.kt +++ b/src/main/kotlin/com/autonomousapps/model/ModuleAdvice.kt @@ -63,7 +63,7 @@ data class AndroidScore( if (hasAndroidRes) count += 2 if (usesAndroidClasses) count += 2 if (hasBuildConfig) count += 0.5f - if (hasAndroidDependencies) count += 0.5f + if (hasAndroidDependencies) count += 100f count } diff --git a/src/test/kotlin/com/autonomousapps/internal/reason/ModuleAdviceExplainerTest.kt b/src/test/kotlin/com/autonomousapps/internal/reason/ModuleAdviceExplainerTest.kt index c1f9d2235..71e949172 100644 --- a/src/test/kotlin/com/autonomousapps/internal/reason/ModuleAdviceExplainerTest.kt +++ b/src/test/kotlin/com/autonomousapps/internal/reason/ModuleAdviceExplainerTest.kt @@ -34,7 +34,6 @@ internal class ModuleAdviceExplainerTest { // Given val score = Fixture.emptyScore.copy( hasBuildConfig = true, - hasAndroidDependencies = true ) val computer = Fixture( unfilteredAndroidScore = score, @@ -55,7 +54,6 @@ internal class ModuleAdviceExplainerTest { Android features: * Includes BuildConfig. - * Has Android library dependencies. """.trimIndent().lines() ).inOrder() }