GH-1213 Fix regression related to removal of TypeTools

Resolves #1213
This commit is contained in:
Oleg Zhurakousky
2024-12-09 17:41:45 +01:00
parent cf9b0a3f9e
commit 622cbdabd7
2 changed files with 50 additions and 6 deletions

View File

@@ -17,6 +17,7 @@
package org.springframework.cloud.function.context.catalog;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
@@ -56,6 +57,12 @@ import static org.assertj.core.api.Assertions.assertThat;
@SuppressWarnings("unused")
public class FunctionTypeUtilsTests {
@Test
public void testDiscoverFunctionalMethod() throws Exception {
Method method = FunctionTypeUtils.discoverFunctionalMethod(SampleEventConsumer.class);
assertThat(method.getName()).isEqualTo("accept");
}
@Test
public void testFunctionTypeFrom() throws Exception {
Type type = FunctionTypeUtils.discoverFunctionTypeFromClass(SimpleConsumer.class);
@@ -292,4 +299,29 @@ public class FunctionTypeUtilsTests {
return inFlux.map(v -> Integer.parseInt(v));
}
}
public static abstract class AbstractConsumer<C> implements Consumer<Message<C>> {
@Override
public final void accept(Message<C> message) {
if (message == null) {
return;
}
doAccept(message.getPayload());
}
protected abstract void doAccept(C payload);
}
public static class SampleEventConsumer extends AbstractConsumer<SampleData> {
@Override
protected void doAccept(SampleData data) {
}
}
public static class SampleData {
}
}