
com.wesleyhome.test.jupiter.provider.ParametersSourceArgumentsProvider.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of junit-jupiter-params-generated Show documentation
Show all versions of junit-jupiter-params-generated Show documentation
Library to help generate test parameter permutations for parameterized tests in JUnit.
This version is an initial attempt to convert to building with Gradle.
package com.wesleyhome.test.jupiter.provider
import com.wesleyhome.test.jupiter.generator.ParametersGenerator
import org.junit.jupiter.api.extension.ExtensionContext
import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.ArgumentsProvider
import java.util.stream.Stream
import java.util.stream.StreamSupport
import kotlin.reflect.KClass
import kotlin.reflect.jvm.kotlinFunction
class ParametersSourceArgumentsProvider : ArgumentsProvider {
override fun provideArguments(context: ExtensionContext): Stream {
val requiredTestMethod = context.requiredTestMethod.kotlinFunction!!
val parameters = requiredTestMethod.parameters.toMutableList().also { it.removeFirst() }.toList()
val generator = ParametersGenerator(
testModel = TestModel(
name = requiredTestMethod.name,
testParameters = parameters.map {
TestParameter(
name = it.name ?: "param${it.index}",
type = it.type.classifier as KClass<*>,
isNullable = it.type.isMarkedNullable,
annotations = it.annotations.toList()
)
}
)
)
val arguments = generator.arguments()
return StreamSupport.stream(arguments.spliterator(), false)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy