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());
+               
+       }
+
+}

Reply via email to