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