Updated testing section with destination naming

Related to #1894
This commit is contained in:
Oleg Zhurakousky
2020-01-29 11:03:48 +01:00
parent 41ab7abc51
commit 93a489ac9a
3 changed files with 71 additions and 10 deletions

View File

@@ -29,7 +29,8 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import java.util.function.Supplier;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.reactivestreams.Publisher;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -542,6 +543,8 @@ public class FunctionConfiguration {
*/
private static class FunctionBindingRegistrar implements InitializingBean, ApplicationContextAware, EnvironmentAware {
protected final Log logger = LogFactory.getLog(getClass());
private final BinderTypeRegistry binderTypeRegistry;
private final FunctionCatalog functionCatalog;
@@ -594,6 +597,9 @@ public class FunctionConfiguration {
}
}
}
else {
logger.info("Functional binding is disabled due to the presense of @EnableBinding annotation in your configuration");
}
}
private boolean determineFunctionName(FunctionCatalog catalog, Environment environment) {

View File

@@ -470,6 +470,32 @@ public class ImplicitFunctionBindingTests {
}
}
@Test
public void testWithExplicitBindingInstructionsOnlyDestination() {
System.clearProperty("spring.cloud.function.definition");
try (ConfigurableApplicationContext context = new SpringApplicationBuilder(TestChannelBinderConfiguration
.getCompleteConfiguration(SplittableTypesConfiguration.class))
.web(WebApplicationType.NONE).run(
"--spring.cloud.function.definition=funcArrayOfMessages",
"--spring.cloud.stream.bindings.funcArrayOfMessages-in-0.destination=myInput",
"--spring.cloud.stream.bindings.funcArrayOfMessages-out-0.destination=myOutput",
"--spring.jmx.enabled=false")) {
InputDestination inputDestination = context.getBean(InputDestination.class);
OutputDestination outputDestination = context.getBean(OutputDestination.class);
Message<byte[]> inputMessage = MessageBuilder.withPayload("aa,bb,cc,dd".getBytes()).build();
inputDestination.send(inputMessage, "myInput");
assertThat(new String(outputDestination.receive(100, "myOutput").getPayload())).isEqualTo("aa");
assertThat(new String(outputDestination.receive(100, "myOutput").getPayload())).isEqualTo("bb");
assertThat(new String(outputDestination.receive(100, "myOutput").getPayload())).isEqualTo("cc");
assertThat(new String(outputDestination.receive(100, "myOutput").getPayload())).isEqualTo("dd");
assertThat(outputDestination.receive(100)).isNull();
}
}
@EnableAutoConfiguration
public static class NoEnableBindingConfiguration {