Minor: rewrite testResolveWithRuntime without !!

This commit is contained in:
Nikolay Krasko
2021-10-05 16:09:54 +03:00
parent 1d42d86537
commit 1d2c1140a4
@@ -13,7 +13,6 @@ import kotlin.contracts.ExperimentalContracts
import kotlin.contracts.InvocationKind
import kotlin.contracts.contract
import kotlin.reflect.full.primaryConstructor
import kotlin.script.experimental.dependencies.maven.MavenDependenciesResolver
import kotlin.script.experimental.api.ResultWithDiagnostics
import kotlin.script.experimental.api.valueOrThrow
import kotlin.script.experimental.dependencies.*
@@ -21,6 +20,7 @@ import kotlin.script.experimental.dependencies.impl.DependenciesResolverOptionsN
import kotlin.script.experimental.dependencies.impl.SimpleExternalDependenciesResolverOptionsParser
import kotlin.script.experimental.dependencies.impl.makeExternalDependenciesResolverOptions
import kotlin.script.experimental.dependencies.impl.set
import kotlin.script.experimental.dependencies.maven.MavenDependenciesResolver
@ExperimentalContracts
class MavenResolverTest : ResolversTestBase() {
@@ -29,7 +29,7 @@ class MavenResolverTest : ResolversTestBase() {
coordinates: String,
options: ExternalDependenciesResolver.Options = ExternalDependenciesResolver.Options.Empty,
checkBody: (Iterable<File>) -> Boolean = { true }
) {
): List<File> {
contract {
callsInPlace(checkBody, InvocationKind.EXACTLY_ONCE)
}
@@ -42,6 +42,7 @@ class MavenResolverTest : ResolversTestBase() {
if (!checkBody(files)) {
Assert.fail("Unexpected resolving results:\n ${files.joinToString("\n ")}")
}
return files
}
private fun buildOptions(vararg options: Pair<DependenciesResolverOptionsName, String>): ExternalDependenciesResolver.Options {
@@ -59,26 +60,16 @@ class MavenResolverTest : ResolversTestBase() {
}
fun testResolveWithRuntime() {
val compileOnly = "compile"
val compileRuntime = "compile,runtime"
val resolvedFilesCount = mutableMapOf<String, Int>()
// Need a minimal library with an extra runtime dependency
val lib = "org.jetbrains.kotlin:kotlin-util-io:$resolvedKotlinVersion"
val compileOnlyFiles = resolveAndCheck(lib, buildOptions(DependenciesResolverOptionsName.SCOPE to "compile"))
val compileRuntimeFiles = resolveAndCheck(lib, buildOptions(DependenciesResolverOptionsName.SCOPE to "compile,runtime"))
listOf(compileOnly, compileRuntime).forEach { scopes ->
resolveAndCheck(
// Need a minimal library with an extra runtime dependency
"org.jetbrains.kotlin:kotlin-util-io:$resolvedKotlinVersion",
buildOptions(DependenciesResolverOptionsName.SCOPE to scopes)
) { files ->
resolvedFilesCount[scopes] = files.count()
true
}
}
val compileOnlyCount = resolvedFilesCount[compileOnly]!!
val compileRuntimeCount = resolvedFilesCount[compileRuntime]!!
assertTrue(
"Compile only ($compileOnlyCount) dependencies count should be less than compile/runtime ($compileRuntimeCount) one",
compileOnlyCount < compileRuntimeCount
"Compile only dependencies count should be less than compile + runtime\n" +
"${compileOnlyFiles.joinToString(prefix = "Compile dependencies:\n\t", separator = "\n\t")}\n" +
compileRuntimeFiles.joinToString(prefix = "Compile + Runtime dependencies:\n\t", separator = "\n\t"),
compileOnlyFiles.count() < compileRuntimeFiles.count()
)
}