@@ -39,6 +39,7 @@ import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
@@ -103,6 +104,15 @@ public class BeanFactoryAwareFunctionRegistryTests {
|
||||
System.clearProperty("spring.cloud.function.definition");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJsonNodeAsInput() throws Exception {
|
||||
FunctionCatalog catalog = this.configureCatalog(JsonNodeConfiguration.class);
|
||||
Function<Message<String>, Message<byte[]>> f = catalog.lookup("messageAsJsonNode", "application/json");
|
||||
Message<String> m = MessageBuilder.withPayload("[{\"name\":\"bob\"}, {\"name\":\"bob\"}]").setHeader(MessageHeaders.CONTENT_TYPE, "application/json").build();
|
||||
assertThat(new String(f.apply(m).getPayload())).isEqualTo("[{\"name\":\"bob\"},{\"name\":\"bob\"}]");
|
||||
f = catalog.lookup("asJsonNode", "application/json");
|
||||
assertThat(new String(f.apply(m).getPayload())).isEqualTo("[{\"name\":\"bob\"},{\"name\":\"bob\"}]");
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "rawtypes" })
|
||||
@Test
|
||||
@@ -786,6 +796,24 @@ public class BeanFactoryAwareFunctionRegistryTests {
|
||||
}
|
||||
}
|
||||
|
||||
@EnableAutoConfiguration
|
||||
@Configuration
|
||||
public static class JsonNodeConfiguration {
|
||||
@Bean
|
||||
public Function<Message<JsonNode>, String> messageAsJsonNode() {
|
||||
return v -> {
|
||||
return v.getPayload().toString();
|
||||
};
|
||||
}
|
||||
|
||||
@Bean
|
||||
public Function<JsonNode, String> asJsonNode() {
|
||||
return v -> {
|
||||
return v.toString();
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@EnableAutoConfiguration
|
||||
public static class EmptyConfiguration {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user