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.InvocationKind
import kotlin.contracts.contract import kotlin.contracts.contract
import kotlin.reflect.full.primaryConstructor import kotlin.reflect.full.primaryConstructor
import kotlin.script.experimental.dependencies.maven.MavenDependenciesResolver
import kotlin.script.experimental.api.ResultWithDiagnostics import kotlin.script.experimental.api.ResultWithDiagnostics
import kotlin.script.experimental.api.valueOrThrow import kotlin.script.experimental.api.valueOrThrow
import kotlin.script.experimental.dependencies.* 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.SimpleExternalDependenciesResolverOptionsParser
import kotlin.script.experimental.dependencies.impl.makeExternalDependenciesResolverOptions import kotlin.script.experimental.dependencies.impl.makeExternalDependenciesResolverOptions
import kotlin.script.experimental.dependencies.impl.set import kotlin.script.experimental.dependencies.impl.set
import kotlin.script.experimental.dependencies.maven.MavenDependenciesResolver
@ExperimentalContracts @ExperimentalContracts
class MavenResolverTest : ResolversTestBase() { class MavenResolverTest : ResolversTestBase() {
@@ -29,7 +29,7 @@ class MavenResolverTest : ResolversTestBase() {
coordinates: String, coordinates: String,
options: ExternalDependenciesResolver.Options = ExternalDependenciesResolver.Options.Empty, options: ExternalDependenciesResolver.Options = ExternalDependenciesResolver.Options.Empty,
checkBody: (Iterable<File>) -> Boolean = { true } checkBody: (Iterable<File>) -> Boolean = { true }
) { ): List<File> {
contract { contract {
callsInPlace(checkBody, InvocationKind.EXACTLY_ONCE) callsInPlace(checkBody, InvocationKind.EXACTLY_ONCE)
} }
@@ -42,6 +42,7 @@ class MavenResolverTest : ResolversTestBase() {
if (!checkBody(files)) { if (!checkBody(files)) {
Assert.fail("Unexpected resolving results:\n ${files.joinToString("\n ")}") Assert.fail("Unexpected resolving results:\n ${files.joinToString("\n ")}")
} }
return files
} }
private fun buildOptions(vararg options: Pair<DependenciesResolverOptionsName, String>): ExternalDependenciesResolver.Options { private fun buildOptions(vararg options: Pair<DependenciesResolverOptionsName, String>): ExternalDependenciesResolver.Options {
@@ -59,26 +60,16 @@ class MavenResolverTest : ResolversTestBase() {
} }
fun testResolveWithRuntime() { fun testResolveWithRuntime() {
val compileOnly = "compile" // Need a minimal library with an extra runtime dependency
val compileRuntime = "compile,runtime" val lib = "org.jetbrains.kotlin:kotlin-util-io:$resolvedKotlinVersion"
val resolvedFilesCount = mutableMapOf<String, Int>() 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( assertTrue(
"Compile only ($compileOnlyCount) dependencies count should be less than compile/runtime ($compileRuntimeCount) one", "Compile only dependencies count should be less than compile + runtime\n" +
compileOnlyCount < compileRuntimeCount "${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()
) )
} }