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