diff --git a/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/catalog/FunctionTypeUtilsTests.java b/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/catalog/FunctionTypeUtilsTests.java index 1f96e0ab1..874af7da0 100644 --- a/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/catalog/FunctionTypeUtilsTests.java +++ b/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/catalog/FunctionTypeUtilsTests.java @@ -17,10 +17,13 @@ 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.Date; import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; @@ -31,8 +34,10 @@ import reactor.core.publisher.Mono; import reactor.util.function.Tuple2; import reactor.util.function.Tuple3; +import org.springframework.core.MethodParameter; import org.springframework.core.ParameterizedTypeReference; import org.springframework.messaging.Message; +import org.springframework.util.ReflectionUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -42,7 +47,7 @@ import static org.assertj.core.api.Assertions.assertThat; * */ @SuppressWarnings("unused") -public class FunctionTypeUtilsTests { +public class FunctionTypeUtilsTests { @Test public void testFunctionTypeFrom() throws Exception { @@ -147,6 +152,21 @@ public class FunctionTypeUtilsTests { assertThat(FunctionTypeUtils.isTypeCollection(new ParameterizedTypeReference>>>() { }.getType())).isFalse(); } + @Test + public void testNoNpeFromIsMessage() { + FunctionTypeUtilsTests testService = new FunctionTypeUtilsTests<>(); + + Method methodUnderTest = + ReflectionUtils.findMethod(testService.getClass(), "notAMessageMethod", AtomicReference.class); + MethodParameter methodParameter = MethodParameter.forExecutable(methodUnderTest, 0); + + assertThat(FunctionTypeUtils.isMessage(methodParameter.getGenericParameterType())).isFalse(); + } + + void notAMessageMethod(AtomicReference payload) { + + } + private static Function function() { return null; }