diff --git a/build.gradle.kts b/build.gradle.kts index 1301783..a08a7ac 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,7 +7,7 @@ plugins { } group = "org.jetbrains.academy.test.system" -version = "2.0.6" +version = "2.0.7" allprojects { apply { diff --git a/core/src/main/kotlin/org/jetbrains/academy/test/system/core/MethodUtils.kt b/core/src/main/kotlin/org/jetbrains/academy/test/system/core/MethodUtils.kt index 5d0dfa2..444f2fb 100644 --- a/core/src/main/kotlin/org/jetbrains/academy/test/system/core/MethodUtils.kt +++ b/core/src/main/kotlin/org/jetbrains/academy/test/system/core/MethodUtils.kt @@ -40,10 +40,10 @@ fun Array.findMethod(method: TestMethod, customErrorMessage: String? = n it.name == method.name } } - val returnTypeJava = method.returnTypeJava ?: method.returnType.type + val returnTypeJava = (method.returnTypeJava?.let { listOf(it) } ?: listOfNotNull(method.returnType.type, *method.returnType.possibleBounds.toTypedArray())).map { it.lowercase() } val filteredByType = filteredByName.filterByCondition(customErrorMessage ?: "The method ${method.name} should have the return type ${method.returnType.getTypePrettyString()}") { - it.returnType.name.getShortName().lowercase() == returnTypeJava.lowercase() + it.returnType.name.getShortName().lowercase() in returnTypeJava } val filteredByArgumentsCount = filteredByType.filterByCondition(customErrorMessage ?: "The method ${method.name} should have ${method.arguments.size} arguments") { it.parameterCount == method.arguments.size } diff --git a/core/src/main/kotlin/org/jetbrains/academy/test/system/core/models/TestKotlinType.kt b/core/src/main/kotlin/org/jetbrains/academy/test/system/core/models/TestKotlinType.kt index 4539217..02c9d7c 100644 --- a/core/src/main/kotlin/org/jetbrains/academy/test/system/core/models/TestKotlinType.kt +++ b/core/src/main/kotlin/org/jetbrains/academy/test/system/core/models/TestKotlinType.kt @@ -40,6 +40,7 @@ data class TestKotlinType( val abbreviation: String? = null, val isNullable: Boolean = false, val params: List = emptyList(), + val possibleBounds: List = emptyList(), ) { fun getTypePrettyString() = abbreviation ?: run { if (params.isNotEmpty()) {