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&amp;operation=translateText"/>
             <to uri="mock:result"/>
         </route>
+        <route>
+            <from uri="direct:translatePojoText"/>
+            <to 
uri="aws2-translate://test?translateClient=#amazonTranslateClient&amp;operation=translateText&amp;pojoRequest=true"/>
+            <to uri="mock:result"/>
+        </route>
+        <route>
+            <from uri="direct:translateTextOptions"/>
+            <to 
uri="aws2-translate://test?translateClient=#amazonTranslateClient&amp;operation=translateText&amp;sourceLanguage=it&amp;targetLanguage=en"/>
+            <to uri="mock:result"/>
+        </route>
     </camelContext>
 
     <bean id="amazonTranslateClient" 
class="org.apache.camel.component.aws2.translate.AmazonAWSTranslateMock"/>

Reply via email to