From 8858b7d417cd9a9f3e5a21816a2f9acc64ab648a Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 3 Oct 2019 16:41:37 -0400 Subject: [PATCH] Polishing testing section in docs --- .../main/asciidoc/spring-cloud-stream.adoc | 46 +++++++++---------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/docs/src/main/asciidoc/spring-cloud-stream.adoc b/docs/src/main/asciidoc/spring-cloud-stream.adoc index 982f93b6a..0790ed740 100644 --- a/docs/src/main/asciidoc/spring-cloud-stream.adoc +++ b/docs/src/main/asciidoc/spring-cloud-stream.adoc @@ -2456,7 +2456,8 @@ Now you can test your microservice as a simple unit test [source,java] ---- @SpringBootApplication -public class DemoTestBinderApplication { +public class SampleTests { + @Bean public Function echo() { return value -> value; } @@ -2466,14 +2467,15 @@ public class DemoTestBinderApplication { @Test public void sampleTest() { - ApplicationContext context = new SpringApplicationBuilder( - TestChannelBinderConfiguration.class, - DemoTestBinderApplication.class) - .web(WebApplicationType.NONE).run("--spring.cloud.function.definition=echo"); - InputDestination source = context.getBean(InputDestination.class); - OutputDestination target = context.getBean(OutputDestination.class); - source.send(new GenericMessage("hello".getBytes())); - System.out.println("Result: " + new String(target.receive().getPayload())); + try (ConfigurableApplicationContext context = new SpringApplicationBuilder( + TestChannelBinderConfiguration.getCompleteConfiguration( + SampleTests.class)) + .run("--spring.cloud.function.definition=echo")) { + InputDestination source = context.getBean(InputDestination.class); + OutputDestination target = context.getBean(OutputDestination.class); + source.send(new GenericMessage("hello".getBytes())); + assertThat(target.receive().getPayload()).isEqualTo("hello".getBytes()); + } } ---- @@ -2507,9 +2509,7 @@ public void testMultipleFunctions() { try (ConfigurableApplicationContext context = new SpringApplicationBuilder( TestChannelBinderConfiguration.getCompleteConfiguration( SampleFunctionConfiguration.class)) - .web(WebApplicationType.NONE) - .run("--spring.jmx.enabled=false", - "--spring.cloud.function.definition=uppercase;reverse")) { + .run("--spring.cloud.function.definition=uppercase;reverse")) { context.getBean(InputDestination.class); InputDestination inputDestination = context.getBean(InputDestination.class); @@ -2538,11 +2538,7 @@ You can also use this binder with legacy annotation-based configuration: ---- @SpringBootApplication @EnableBinding(Processor.class) -public class DemoTestBinderApplication { - - public static void main(String[] args) { - SpringApplication.run(DemoTestBinderApplication.class, args); - } +public class LegacyStreamApplication { @StreamListener(Processor.INPUT) @SendTo(Processor.OUTPUT) @@ -2555,14 +2551,14 @@ public class DemoTestBinderApplication { @Test public void sampleTest() { - ApplicationContext context = new SpringApplicationBuilder( - TestChannelBinderConfiguration.class, - DemoTestBinderApplication.class) - .web(WebApplicationType.NONE).run(); - InputDestination source = context.getBean(InputDestination.class); - OutputDestination target = context.getBean(OutputDestination.class); - source.send(new GenericMessage("hello".getBytes())); - System.out.println("Result: " + new String(target.receive().getPayload())); + try (ConfigurableApplicationContext context = new SpringApplicationBuilder( + TestChannelBinderConfiguration.getCompleteConfiguration( + LegacyStreamApplication.class)).run()) { + InputDestination source = context.getBean(InputDestination.class); + OutputDestination target = context.getBean(OutputDestination.class); + source.send(new GenericMessage("hello".getBytes())); + assertThat(target.receive().getPayload()).isEqualTo("hello".getBytes()); + } } ----