Refactor InvocableHandlerMethodKotlinTests

The variant in org.springframework.web.method.support in
order to allow testing with a various classes.

See gh-31856
This commit is contained in:
Sébastien Deleuze 2023-12-19 12:10:13 +01:00
parent 3f5c3b1747
commit 917978cbc2
1 changed files with 11 additions and 11 deletions

View File

@ -38,7 +38,7 @@ class InvocableHandlerMethodKotlinTests {
@Test
fun intDefaultValue() {
composite.addResolver(StubArgumentResolver(Int::class.java, null))
val value = getInvocable(Int::class.java).invokeForRequest(request, null)
val value = getInvocable(Handler::class.java, Int::class.java).invokeForRequest(request, null)
Assertions.assertThat(getStubResolver(0).resolvedParameters).hasSize(1)
Assertions.assertThat(value).isEqualTo("20")
@ -47,7 +47,7 @@ class InvocableHandlerMethodKotlinTests {
@Test
fun booleanDefaultValue() {
composite.addResolver(StubArgumentResolver(Boolean::class.java, null))
val value = getInvocable(Boolean::class.java).invokeForRequest(request, null)
val value = getInvocable(Handler::class.java, Boolean::class.java).invokeForRequest(request, null)
Assertions.assertThat(getStubResolver(0).resolvedParameters).hasSize(1)
Assertions.assertThat(value).isEqualTo("true")
@ -56,7 +56,7 @@ class InvocableHandlerMethodKotlinTests {
@Test
fun nullableIntDefaultValue() {
composite.addResolver(StubArgumentResolver(Int::class.javaObjectType, null))
val value = getInvocable(Int::class.javaObjectType).invokeForRequest(request, null)
val value = getInvocable(Handler::class.java, Int::class.javaObjectType).invokeForRequest(request, null)
Assertions.assertThat(getStubResolver(0).resolvedParameters).hasSize(1)
Assertions.assertThat(value).isEqualTo("20")
@ -65,7 +65,7 @@ class InvocableHandlerMethodKotlinTests {
@Test
fun nullableBooleanDefaultValue() {
composite.addResolver(StubArgumentResolver(Boolean::class.javaObjectType, null))
val value = getInvocable(Boolean::class.javaObjectType).invokeForRequest(request, null)
val value = getInvocable(Handler::class.java, Boolean::class.javaObjectType).invokeForRequest(request, null)
Assertions.assertThat(getStubResolver(0).resolvedParameters).hasSize(1)
Assertions.assertThat(value).isEqualTo("true")
@ -73,34 +73,34 @@ class InvocableHandlerMethodKotlinTests {
@Test
fun unitReturnValue() {
val value = getInvocable().invokeForRequest(request, null)
val value = getInvocable(Handler::class.java).invokeForRequest(request, null)
Assertions.assertThat(value).isNull()
}
@Test
fun nullReturnValue() {
composite.addResolver(StubArgumentResolver(String::class.java, null))
val value = getInvocable(String::class.java).invokeForRequest(request, null)
val value = getInvocable(Handler::class.java, String::class.java).invokeForRequest(request, null)
Assertions.assertThat(value).isNull()
}
@Test
fun valueClass() {
composite.addResolver(StubArgumentResolver(Long::class.java, 1L))
val value = getInvocable(Long::class.java).invokeForRequest(request, null)
val value = getInvocable(Handler::class.java, Long::class.java).invokeForRequest(request, null)
Assertions.assertThat(value).isEqualTo(1L)
}
@Test
fun valueClassDefaultValue() {
composite.addResolver(StubArgumentResolver(Double::class.java))
val value = getInvocable(Double::class.java).invokeForRequest(request, null)
val value = getInvocable(Handler::class.java, Double::class.java).invokeForRequest(request, null)
Assertions.assertThat(value).isEqualTo(3.1)
}
private fun getInvocable(vararg argTypes: Class<*>): InvocableHandlerMethod {
val method = ResolvableMethod.on(Handler::class.java).argTypes(*argTypes).resolveMethod()
val handlerMethod = InvocableHandlerMethod(Handler(), method)
private fun getInvocable(clazz: Class<*>, vararg argTypes: Class<*>): InvocableHandlerMethod {
val method = ResolvableMethod.on(clazz).argTypes(*argTypes).resolveMethod()
val handlerMethod = InvocableHandlerMethod(clazz.constructors.first().newInstance(), method)
handlerMethod.setHandlerMethodArgumentResolvers(composite)
return handlerMethod
}