Repository: camel Updated Branches: refs/heads/master b02925175 -> 8ce5a2b2f
Added a fix to the LoginToken class to ensure future new SF fields dont cause the login to fail, added a testcase for it Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/440bd946 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/440bd946 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/440bd946 Branch: refs/heads/master Commit: 440bd9467f56848b9958b0f674a096914900d251 Parents: a6c5418 Author: Devendra Khanolkar <devendra.khanol...@sixtree.com.au> Authored: Mon Sep 21 11:30:41 2015 +1000 Committer: Dhiraj Bokde <dhira...@yahoo.com> Committed: Tue Sep 22 16:11:45 2015 -0700 ---------------------------------------------------------------------- .../salesforce/internal/dto/LoginToken.java | 2 + .../salesforce/internal/LoginTokenTest.java | 45 ++++++++++++++++++++ 2 files changed, 47 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/440bd946/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/dto/LoginToken.java ---------------------------------------------------------------------- diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/dto/LoginToken.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/dto/LoginToken.java index be6942a..e429bc5 100644 --- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/dto/LoginToken.java +++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/dto/LoginToken.java @@ -16,11 +16,13 @@ */ package org.apache.camel.component.salesforce.internal.dto; +import org.codehaus.jackson.annotate.JsonIgnoreProperties; import org.codehaus.jackson.annotate.JsonProperty; /** * DTO for Salesforce login */ +@JsonIgnoreProperties(ignoreUnknown=true) public class LoginToken { private String accessToken; http://git-wip-us.apache.org/repos/asf/camel/blob/440bd946/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/LoginTokenTest.java ---------------------------------------------------------------------- diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/LoginTokenTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/LoginTokenTest.java new file mode 100644 index 0000000..d20b662 --- /dev/null +++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/LoginTokenTest.java @@ -0,0 +1,45 @@ +package org.apache.camel.component.salesforce.internal; + +import org.apache.camel.component.salesforce.internal.dto.LoginToken; +import org.codehaus.jackson.map.ObjectMapper; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import static org.junit.Assert.*; + +public class LoginTokenTest { + + private static final Logger LOG = LoggerFactory.getLogger(SessionIntegrationTest.class); + + @Test + public void testLoginTokenWithUnknownFields() throws Exception { + + String salesforceOAuthResponse = "{\n" + + " \"access_token\": \"00XXXXXXXXXXXX!ARMAQKg_lg_hGaRElvizVFBQHoCpvX8tzwGnROQ0_MDPXSceMeZHtm3JHkPmMhlgK0Km3rpJkwxwHInd_8o022KsDy.p4O.X\",\n" + + " \"is_readonly\": \"false\",\n" + + " \"signature\": \"XXXXXXXXXX+MYU+JrOXPSbpHa2ihMpSvUqow1iTPh7Q=\",\n" + + " \"instance_url\": \"https://xxxxxxxx--xxxxxxx.cs5.my.salesforce.com\",\n" + + " \"id\": \"https://test.salesforce.com/id/00DO00000054tO8MAI/005O0000001cmmdIAA\",\n" + + " \"token_type\": \"Bearer\",\n" + + " \"issued_at\": \"1442798068621\",\n" + + " \"an_unrecognised_field\": \"foo\"\n" + + "}"; + ObjectMapper mapper = new ObjectMapper(); + Exception e = null; + LoginToken token = null; + try { + token = mapper.readValue(salesforceOAuthResponse, LoginToken.class); + } catch (Exception ex) { + e = ex; + } + + //assert ObjectMapper deserialized the SF OAuth response and returned a valid token back + assertNotNull("An invalid token was returned" , token); + //assert No exception was thrown during the JSON deserialization process + assertNull("Exception was thrown during JSON deserialisation" , e); + //assert one of the token fields + assertEquals("false", token.getIsReadOnly()); + + } + +}