blob: 6b527d2deb847ff821d3c083ca6c1d6834262225 [file] [log] [blame]
package ioc.specs
import org.apache.tapestry5.ioc.internal.util.GenericsUtils
import org.apache.tapestry5.ioc.internal.util.NonGenericBean
import org.apache.tapestry5.ioc.internal.util.StringBean
import org.apache.tapestry5.ioc.internal.util.StringLongPair
import spock.lang.Specification
import spock.lang.Unroll
class GenericUtilsSpec extends Specification {
def find(clazz, name) {
def method = clazz.methods.find { it.name.equalsIgnoreCase(name) }
if (method == null) {
throw new IllegalArgumentException("Unable to find method '$name' of ${clazz.name}.")
}
return method
}
@Unroll
def "generic return type for #method is #expected"() {
expect:
GenericsUtils.extractGenericReturnType(clazz, method).is(expected)
where:
clazz | name | expected
NonGenericBean | "getvalue" | String
StringBean | "getvalue" | String
StringLongPair | "getkey" | String
StringLongPair | "getvalue" | Long
method = find(clazz, name)
}
}