diff --git a/spring-webflux/src/main/kotlin/org/springframework/web/service/invoker/HttpServiceProxyFactoryExtensions.kt b/spring-webflux/src/main/kotlin/org/springframework/web/service/invoker/HttpServiceProxyFactoryExtensions.kt new file mode 100644 index 00000000000..9f08352bcb2 --- /dev/null +++ b/spring-webflux/src/main/kotlin/org/springframework/web/service/invoker/HttpServiceProxyFactoryExtensions.kt @@ -0,0 +1,26 @@ +/* + * Copyright 2002-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.web.service.invoker + +/** + * Extension for [HttpServiceProxyFactory.createClient] providing a `createClient()` variant. + * + * @author Sebastien Deleuze + * @since 6.0.5 + */ +inline fun HttpServiceProxyFactory.createClient(): T = + createClient(T::class.java) diff --git a/spring-webflux/src/test/kotlin/org/springframework/web/reactive/function/client/support/KotlinWebClientHttpServiceProxyTests.kt b/spring-webflux/src/test/kotlin/org/springframework/web/reactive/function/client/support/KotlinWebClientHttpServiceProxyTests.kt index 17c10d1157b..0b6f36e072b 100644 --- a/spring-webflux/src/test/kotlin/org/springframework/web/reactive/function/client/support/KotlinWebClientHttpServiceProxyTests.kt +++ b/spring-webflux/src/test/kotlin/org/springframework/web/reactive/function/client/support/KotlinWebClientHttpServiceProxyTests.kt @@ -28,6 +28,7 @@ import org.springframework.web.reactive.function.client.ExchangeFunction import org.springframework.web.reactive.function.client.WebClient import org.springframework.web.service.annotation.GetExchange import org.springframework.web.service.invoker.HttpServiceProxyFactory +import org.springframework.web.service.invoker.createClient import reactor.core.publisher.Mono import reactor.test.StepVerifier import java.time.Duration @@ -130,7 +131,7 @@ class KotlinWebClientHttpServiceProxyTests { return HttpServiceProxyFactory.builder() .clientAdapter(WebClientAdapter.forClient(webClient)) .build() - .createClient(TestHttpService::class.java) + .createClient() } private fun prepareResponse(consumer: Consumer) { diff --git a/spring-webflux/src/test/kotlin/org/springframework/web/service/invoker/HttpServiceProxyFactoryExtensionsTests.kt b/spring-webflux/src/test/kotlin/org/springframework/web/service/invoker/HttpServiceProxyFactoryExtensionsTests.kt new file mode 100644 index 00000000000..c1ae0f11775 --- /dev/null +++ b/spring-webflux/src/test/kotlin/org/springframework/web/service/invoker/HttpServiceProxyFactoryExtensionsTests.kt @@ -0,0 +1,40 @@ +/* + * Copyright 2002-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.web.service.invoker + +import io.mockk.every +import io.mockk.mockk +import io.mockk.verify +import org.junit.jupiter.api.Test + +/** + * Tests for [HttpServiceProxyFactory] Kotlin extensions. + * + * @author Sebastien Deleuze + */ +class HttpServiceProxyFactoryExtensionsTests { + + private val proxyFactory = mockk() + + @Test + fun `createClient extension`() { + every { proxyFactory.createClient(String::class.java) } returns "" + proxyFactory.createClient() + verify { proxyFactory.createClient(String::class.java) } + } + +}