GH-816 Fix support for function that returns Iterable with target-protocol set
Resolves #816
This commit is contained in:
@@ -55,6 +55,7 @@ import org.springframework.cloud.function.context.FunctionCatalog;
|
||||
import org.springframework.cloud.function.context.FunctionRegistration;
|
||||
import org.springframework.cloud.function.context.FunctionRegistry;
|
||||
import org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry.FunctionInvocationWrapper;
|
||||
import org.springframework.cloud.function.context.message.MessageUtils;
|
||||
import org.springframework.cloud.function.json.JsonMapper;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -431,6 +432,18 @@ public class BeanFactoryAwareFunctionRegistryTests {
|
||||
assertThat(result instanceof Message).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultipleValuesInOutputHandlingWithTargetProtocol() throws Exception {
|
||||
FunctionCatalog catalog = this.configureCatalog(CollectionOutConfiguration.class);
|
||||
FunctionInvocationWrapper function = catalog.lookup("parseToList", "application/json");
|
||||
assertThat(function).isNotNull();
|
||||
Object result = function.apply(MessageBuilder.withPayload("1, 2, 3".getBytes())
|
||||
.setHeader(MessageHeaders.CONTENT_TYPE, "text/plain")
|
||||
.setHeader(MessageUtils.TARGET_PROTOCOL, "integration")
|
||||
.build());
|
||||
assertThat(result instanceof List).isTrue();
|
||||
}
|
||||
|
||||
/**
|
||||
* The following two tests test the fallback mechanism when an accept header has several values.
|
||||
* The function produces Integer, which cannot be serialized by the default converter supporting text/plain
|
||||
|
||||
Reference in New Issue
Block a user