Skip to content

Commit 26b4a59

Browse files
committed
GH-1225 Add additional Kotlin test to verify the regression
Resolves #1225
1 parent 5b4c557 commit 26b4a59

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

spring-cloud-function-kotlin/src/test/java/org/springframework/cloud/function/kotlin/ContextFunctionCatalogAutoConfigurationKotlinTests.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
import org.springframework.context.annotation.Bean;
3333
import org.springframework.context.annotation.Configuration;
3434
import org.springframework.context.support.GenericApplicationContext;
35+
import org.springframework.core.ResolvableType;
36+
import org.springframework.messaging.Message;
3537
import org.springframework.messaging.support.MessageBuilder;
3638

3739
import static org.assertj.core.api.Assertions.assertThat;
@@ -57,7 +59,8 @@ public void typeDiscoveryTests() {
5759
create(new Class[] { KotlinLambdasConfiguration.class,
5860
SimpleConfiguration.class,
5961
KotlinComponentFunction.class,
60-
ComponentUppercase.class});
62+
ComponentUppercase.class,
63+
ComponentWithUnitReturn.class});
6164

6265
FunctionCatalog functionCatalog = this.context.getBean(FunctionCatalog.class);
6366

@@ -72,6 +75,10 @@ public void typeDiscoveryTests() {
7275
assertThat(kotlinFunction.getInputType()).isEqualTo(String.class);
7376
assertThat(kotlinFunction.getOutputType()).isEqualTo(String.class);
7477

78+
FunctionInvocationWrapper componentWithUnitReturn = functionCatalog.lookup("componentWithUnitReturn");
79+
assertThat(componentWithUnitReturn.isConsumer()).isTrue();
80+
assertThat(componentWithUnitReturn.getInputType()).isEqualTo(ResolvableType.forClassWithGenerics(Message.class, String.class).getType());
81+
7582
FunctionInvocationWrapper kotlinConsumer = functionCatalog.lookup("kotlinConsumer");
7683
assertThat(kotlinConsumer.isConsumer()).isTrue();
7784
assertThat(kotlinConsumer.getInputType()).isEqualTo(String.class);
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.springframework.cloud.function.kotlin
2+
3+
import org.springframework.messaging.Message
4+
import org.springframework.stereotype.Component
5+
6+
@Component
7+
class ComponentWithUnitReturn() : (Message<String>) -> Unit {
8+
override fun invoke(message: Message<String>) {
9+
println(message.payload)
10+
}
11+
}

0 commit comments

Comments
 (0)