This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit b9e23d612fdec71dc55d0da311bce8b73815b724 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Wed Apr 8 15:00:44 2020 +0200 CAMEL-14868 - Camel-AWS2-*: Where possible, give the possiblity to the end user to pass an AWS Request pojo as body, aws-translate more tests --- .../aws2/translate/Translate2Producer.java | 22 ++++++------ .../translate/Translate2ProducerSpringTest.java | 39 ++++++++++++++++++++++ .../Translate2ComponentSpringTest-context.xml | 10 ++++++ 3 files changed, 61 insertions(+), 10 deletions(-) diff --git a/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2Producer.java b/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2Producer.java index d1ee2af..ef4ec84 100644 --- a/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2Producer.java +++ b/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2Producer.java @@ -83,17 +83,19 @@ public class Translate2Producer extends DefaultProducer { private void translateText(TranslateClient translateClient, Exchange exchange) { if (getConfiguration().isPojoRequest()) { - if (exchange.getIn().getBody() instanceof TranslateTextRequest) { - Object payload = exchange.getIn().getBody(); - TranslateTextResponse result; - try { - result = translateClient.translateText((TranslateTextRequest)payload); - } catch (AwsServiceException ase) { - LOG.trace("Translate Text command returned the error code {}", ase.awsErrorDetails().errorCode()); - throw ase; + if (ObjectHelper.isNotEmpty(exchange.getIn().getBody())) { + if (exchange.getIn().getBody() instanceof TranslateTextRequest) { + Object payload = exchange.getIn().getBody(); + TranslateTextResponse result; + try { + result = translateClient.translateText((TranslateTextRequest)payload); + } catch (AwsServiceException ase) { + LOG.trace("Translate Text command returned the error code {}", ase.awsErrorDetails().errorCode()); + throw ase; + } + Message message = getMessageForResponse(exchange); + message.setBody(result.translatedText()); } - Message message = getMessageForResponse(exchange); - message.setBody(result.translatedText()); } } else { Builder request = TranslateTextRequest.builder(); diff --git a/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/Translate2ProducerSpringTest.java b/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/Translate2ProducerSpringTest.java index c1a1335..f2c273a 100644 --- a/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/Translate2ProducerSpringTest.java +++ b/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/Translate2ProducerSpringTest.java @@ -24,6 +24,8 @@ import org.apache.camel.test.spring.junit5.CamelSpringTestSupport; import org.junit.jupiter.api.Test; import org.springframework.context.support.ClassPathXmlApplicationContext; +import software.amazon.awssdk.services.translate.model.TranslateTextRequest; + import static org.junit.jupiter.api.Assertions.assertEquals; public class Translate2ProducerSpringTest extends CamelSpringTestSupport { @@ -51,6 +53,43 @@ public class Translate2ProducerSpringTest extends CamelSpringTestSupport { assertEquals("Hello", resultGet); } + + @Test + public void translateTextPojoTest() throws Exception { + + mock.expectedMessageCount(1); + Exchange exchange = template.request("direct:translatePojoText", new Processor() { + @Override + public void process(Exchange exchange) throws Exception { + exchange.getIn().setBody(TranslateTextRequest.builder().sourceLanguageCode(Translate2LanguageEnum.ITALIAN.toString()) + .targetLanguageCode(Translate2LanguageEnum.ENGLISH.toString()).text("ciao").build()); + } + }); + + assertMockEndpointsSatisfied(); + + String resultGet = exchange.getIn().getBody(String.class); + assertEquals("Hello", resultGet); + + } + + @Test + public void translateTextTestOptions() throws Exception { + + mock.expectedMessageCount(1); + Exchange exchange = template.request("direct:translateTextOptions", new Processor() { + @Override + public void process(Exchange exchange) throws Exception { + exchange.getIn().setBody("ciao"); + } + }); + + assertMockEndpointsSatisfied(); + + String resultGet = exchange.getIn().getBody(String.class); + assertEquals("Hello", resultGet); + + } @Override protected ClassPathXmlApplicationContext createApplicationContext() { diff --git a/components/camel-aws2-translate/src/test/resources/org/apache/camel/component/aws2/translate/Translate2ComponentSpringTest-context.xml b/components/camel-aws2-translate/src/test/resources/org/apache/camel/component/aws2/translate/Translate2ComponentSpringTest-context.xml index 1256d12..32376ca 100644 --- a/components/camel-aws2-translate/src/test/resources/org/apache/camel/component/aws2/translate/Translate2ComponentSpringTest-context.xml +++ b/components/camel-aws2-translate/src/test/resources/org/apache/camel/component/aws2/translate/Translate2ComponentSpringTest-context.xml @@ -29,6 +29,16 @@ <to uri="aws2-translate://test?translateClient=#amazonTranslateClient&operation=translateText"/> <to uri="mock:result"/> </route> + <route> + <from uri="direct:translatePojoText"/> + <to uri="aws2-translate://test?translateClient=#amazonTranslateClient&operation=translateText&pojoRequest=true"/> + <to uri="mock:result"/> + </route> + <route> + <from uri="direct:translateTextOptions"/> + <to uri="aws2-translate://test?translateClient=#amazonTranslateClient&operation=translateText&sourceLanguage=it&targetLanguage=en"/> + <to uri="mock:result"/> + </route> </camelContext> <bean id="amazonTranslateClient" class="org.apache.camel.component.aws2.translate.AmazonAWSTranslateMock"/>