CAMEL-6709 - camel-yammer - Endpoint yammer:current throwns 
JsonMappingException exception


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ecbb9498
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ecbb9498
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ecbb9498

Branch: refs/heads/camel-2.12.x
Commit: ecbb9498d7ee3f66379882068bd36b49713ece95
Parents: a56cd59
Author: Jonathan Anstey <jans...@gmail.com>
Authored: Thu Sep 5 11:29:31 2013 -0230
Committer: Jonathan Anstey <jans...@gmail.com>
Committed: Thu Sep 5 11:31:38 2013 -0230

----------------------------------------------------------------------
 .../component/yammer/YammerUserPollingConsumer.java  | 15 +++++++++++++--
 .../yammer/YammerMessageAndUserRouteTest.java        |  9 ++++-----
 .../yammer/YammerUserPollEnrichRouteTest.java        |  9 +++------
 .../camel/component/yammer/YammerUserRouteTest.java  | 11 ++++-------
 components/camel-yammer/src/test/resources/user.json |  4 +---
 5 files changed, 25 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/ecbb9498/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerUserPollingConsumer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerUserPollingConsumer.java
 
b/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerUserPollingConsumer.java
index 54826f5..ce2baea 100644
--- 
a/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerUserPollingConsumer.java
+++ 
b/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerUserPollingConsumer.java
@@ -75,9 +75,20 @@ public class YammerUserPollingConsumer extends 
ScheduledPollConsumer {
 
             if (!endpoint.getConfig().isUseJson()) {
                 ObjectMapper jsonMapper = new ObjectMapper();
-                List<User> users = jsonMapper.readValue(jsonBody, 
jsonMapper.getTypeFactory().constructCollectionType(List.class, User.class));
+                String function = endpoint.getConfig().getFunction();
+                switch (YammerFunctionType.fromUri(function)) {
+                case USERS:
+                    List<User> users = jsonMapper.readValue(jsonBody, 
jsonMapper.getTypeFactory().constructCollectionType(List.class, User.class));
+                    exchange.getIn().setBody(users);                   
+                    break;
+                case CURRENT:
+                    User user = jsonMapper.readValue(jsonBody, 
jsonMapper.getTypeFactory().constructType(User.class));
+                    exchange.getIn().setBody(user);                            
           
+                    break;
+                default:
+                    throw new Exception(String.format("%s is not a valid 
Yammer user function type.", function));
+                }    
                 
-                exchange.getIn().setBody(users);
             } else {
                 exchange.getIn().setBody(jsonBody);
             }

http://git-wip-us.apache.org/repos/asf/camel/blob/ecbb9498/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerMessageAndUserRouteTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerMessageAndUserRouteTest.java
 
b/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerMessageAndUserRouteTest.java
index a8e3f0f..7808fdb 100644
--- 
a/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerMessageAndUserRouteTest.java
+++ 
b/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerMessageAndUserRouteTest.java
@@ -43,7 +43,7 @@ public class YammerMessageAndUserRouteTest extends 
CamelTestSupport {
         String messages = context.getTypeConverter().convertTo(String.class, 
getClass().getResourceAsStream("/messages.json"));
         messagesEndpoint.getConfig().setRequestor(new 
TestApiRequestor(messages));
         
-        String users = context.getTypeConverter().convertTo(String.class, 
getClass().getResourceAsStream("/users.json"));
+        String users = context.getTypeConverter().convertTo(String.class, 
getClass().getResourceAsStream("/user.json"));
         usersEndpoint.getConfig().setRequestor(new TestApiRequestor(users));
     }
     
@@ -68,11 +68,10 @@ public class YammerMessageAndUserRouteTest extends 
CamelTestSupport {
         userMock.assertIsSatisfied();
         
         exchange = userMock.getExchanges().get(0);
-        List<User> users = exchange.getIn().getBody(List.class);
+        User user = exchange.getIn().getBody(User.class);
 
-        assertEquals(1, users.size());
-        assertEquals("Joe Camel", users.get(0).getFullName());        
-        assertEquals("jca...@redhat.com", 
users.get(0).getContact().getEmailAddresses().get(0).getAddress());        
+        assertEquals("Joe Camel", user.getFullName());        
+        assertEquals("jca...@redhat.com", 
user.getContact().getEmailAddresses().get(0).getAddress());        
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/ecbb9498/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerUserPollEnrichRouteTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerUserPollEnrichRouteTest.java
 
b/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerUserPollEnrichRouteTest.java
index fe8c73e..f9f60d4 100644
--- 
a/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerUserPollEnrichRouteTest.java
+++ 
b/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerUserPollEnrichRouteTest.java
@@ -17,8 +17,6 @@
 package org.apache.camel.component.yammer;
 
 
-import java.util.List;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -38,11 +36,10 @@ public class YammerUserPollEnrichRouteTest extends 
YammerComponentTestSupport {
         assertMockEndpointsSatisfied();
         
         Exchange exchange = mock.getExchanges().get(0);
-        List<User> users = exchange.getIn().getBody(List.class);
+        User user = exchange.getIn().getBody(User.class);
 
-        assertEquals(1, users.size());
-        assertEquals("Joe Camel", users.get(0).getFullName());        
-        assertEquals("jca...@redhat.com", 
users.get(0).getContact().getEmailAddresses().get(0).getAddress());
+        assertEquals("Joe Camel", user.getFullName());        
+        assertEquals("jca...@redhat.com", 
user.getContact().getEmailAddresses().get(0).getAddress());
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/ecbb9498/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerUserRouteTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerUserRouteTest.java
 
b/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerUserRouteTest.java
index bed0410..50b2f62 100644
--- 
a/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerUserRouteTest.java
+++ 
b/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerUserRouteTest.java
@@ -17,8 +17,6 @@
 package org.apache.camel.component.yammer;
 
 
-import java.util.List;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -35,11 +33,10 @@ public class YammerUserRouteTest extends 
YammerComponentTestSupport {
         assertMockEndpointsSatisfied();
         
         Exchange exchange = mock.getExchanges().get(0);
-        List<User> users = exchange.getIn().getBody(List.class);
+        User user = exchange.getIn().getBody(User.class);
 
-        assertEquals(1, users.size());
-        assertEquals("Joe Camel", users.get(0).getFullName());        
-        assertEquals("jca...@redhat.com", 
users.get(0).getContact().getEmailAddresses().get(0).getAddress());
+        assertEquals("Joe Camel", user.getFullName());        
+        assertEquals("jca...@redhat.com", 
user.getContact().getEmailAddresses().get(0).getAddress());
     }
 
     @Override
@@ -52,7 +49,7 @@ public class YammerUserRouteTest extends 
YammerComponentTestSupport {
         return new RouteBuilder() {
             public void configure() {
                 // using dummy keys here since we are mocking out calls to 
yammer.com with static json; in a real app, please use your own keys!
-                
from("yammer:users?consumerKey=aConsumerKey&consumerSecret=aConsumerSecretKey&accessToken=aAccessToken").to("mock:result");
+                
from("yammer:current?consumerKey=aConsumerKey&consumerSecret=aConsumerSecretKey&accessToken=aAccessToken").to("mock:result");
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/ecbb9498/components/camel-yammer/src/test/resources/user.json
----------------------------------------------------------------------
diff --git a/components/camel-yammer/src/test/resources/user.json 
b/components/camel-yammer/src/test/resources/user.json
index e1c79d3..f619bae 100644
--- a/components/camel-yammer/src/test/resources/user.json
+++ b/components/camel-yammer/src/test/resources/user.json
@@ -1,4 +1,3 @@
-[
        {
                "previous_companies":[
                        
@@ -66,5 +65,4 @@
                                
                        ]
                }
-       }
-       ]
\ No newline at end of file
+       }
\ No newline at end of file

Reply via email to