This is an automated email from the ASF dual-hosted git repository. ppalaga pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit c92c1e0eb9674a2567c9ceee1eca4f76d62e5cc8 Author: Zineb Bendhiba <[email protected]> AuthorDate: Thu Jul 1 10:11:19 2021 +0200 Salesforce - Mock existing integration tests Fixes #2667 --- integration-tests/salesforce/pom.xml | 7 +++ .../component/salesforce/SalesforceRoutes.java | 57 ++++++++++++++++++++- .../src/main/resources/application.properties | 4 -- .../quarkus/component/salesforce/SalesforceIT.java | 5 -- ...esforceIT.java => SalesforceIntegrationIT.java} | 5 +- ...rceTest.java => SalesforceIntegrationTest.java} | 57 +-------------------- .../component/salesforce/SalesforceTest.java | 54 ++------------------ .../salesforce/SalesforceTestResource.java | 59 ++++++++++++++++++++++ .../test/resources/mappings/bulApi-abortJob.json | 18 +++++++ .../test/resources/mappings/bulkApi-createJob.json | 18 +++++++ .../src/test/resources/mappings/getAccount.json | 18 +++++++ .../src/test/resources/mappings/getDocument.json | 18 +++++++ .../src/test/resources/mappings/handshake.json | 19 +++++++ .../src/test/resources/mappings/oauth2.json | 19 +++++++ .../src/test/resources/mappings/revokeToken.json | 17 +++++++ 15 files changed, 254 insertions(+), 121 deletions(-) diff --git a/integration-tests/salesforce/pom.xml b/integration-tests/salesforce/pom.xml index 612f97e..3f1faca 100644 --- a/integration-tests/salesforce/pom.xml +++ b/integration-tests/salesforce/pom.xml @@ -55,6 +55,13 @@ <scope>test</scope> </dependency> + <!-- dependencies needed to mock Salesforce API --> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-integration-wiremock-support</artifactId> + <scope>test</scope> + </dependency> + <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory --> <dependency> diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceRoutes.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceRoutes.java index 016fbab..581f8e6 100644 --- a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceRoutes.java +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceRoutes.java @@ -16,13 +16,66 @@ */ package org.apache.camel.quarkus.component.salesforce; +import java.util.Optional; + +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Named; +import javax.ws.rs.Produces; + +import io.quarkus.arc.Unremovable; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.salesforce.AuthenticationType; +import org.apache.camel.component.salesforce.SalesforceComponent; +import org.eclipse.microprofile.config.ConfigProvider; +import org.eclipse.microprofile.config.inject.ConfigProperty; +@ApplicationScoped public class SalesforceRoutes extends RouteBuilder { + @ConfigProperty(name = "SALESFORCE_USERNAME", defaultValue = "username") + String username; + + @ConfigProperty(name = "SALESFORCE_PASSWORD", defaultValue = "password") + String password; + + @ConfigProperty(name = "SALESFORCE_CLIENTID", defaultValue = "clientId") + String clientId; + + @ConfigProperty(name = "SALESFORCE_CLIENTSECRET", defaultValue = "clientSecret") + String clientSecret; + + @Produces + @ApplicationScoped + @Unremovable + @Named("salesforce") + SalesforceComponent salesforceComponent() { + // check if wiremock URL exists + Optional<String> wireMockUrl = ConfigProvider.getConfig().getOptionalValue("wiremock.url", String.class); + + SalesforceComponent salesforceComponent = new SalesforceComponent(); + salesforceComponent.setClientId(clientId); + salesforceComponent.setClientSecret(clientSecret); + salesforceComponent.setUserName(username); + salesforceComponent.setPassword(password); + + // Set URL depending if mock is enabled + if (wireMockUrl.isPresent()) { + salesforceComponent.setAuthenticationType(AuthenticationType.USERNAME_PASSWORD); + salesforceComponent.setRefreshToken("refreshToken"); + salesforceComponent.setLoginUrl(wireMockUrl.get()); + } else { + salesforceComponent.setLoginUrl("https://login.salesforce.com"); + } + return salesforceComponent; + } + @Override public void configure() throws Exception { - from("salesforce:/data/AccountChangeEvent?replayId=-1").routeId("cdc").autoStartup(false) - .to("seda:events"); + Optional<String> wireMockUrl = ConfigProvider.getConfig().getOptionalValue("wiremock.url", String.class); + // Wiremock used only with Templates - this Route is used only with Salesforce credentials + if (!wireMockUrl.isPresent()) { + from("salesforce:/data/AccountChangeEvent?replayId=-1").routeId("cdc").autoStartup(false) + .to("seda:events"); + } } } diff --git a/integration-tests/salesforce/src/main/resources/application.properties b/integration-tests/salesforce/src/main/resources/application.properties index b180e3a..ca368ac 100644 --- a/integration-tests/salesforce/src/main/resources/application.properties +++ b/integration-tests/salesforce/src/main/resources/application.properties @@ -19,7 +19,3 @@ # Camel :: Salesforce # camel.component.salesforce.loginUrl = https://login.salesforce.com -camel.component.salesforce.userName = {{env:SALESFORCE_USERNAME}} -camel.component.salesforce.password = {{env:SALESFORCE_PASSWORD}} -camel.component.salesforce.clientId = {{env:SALESFORCE_CLIENTID}} -camel.component.salesforce.clientSecret = {{env:SALESFORCE_CLIENTSECRET}} diff --git a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIT.java b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIT.java index dadbe10..729fc4e 100644 --- a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIT.java +++ b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIT.java @@ -17,12 +17,7 @@ package org.apache.camel.quarkus.component.salesforce; import io.quarkus.test.junit.NativeImageTest; -import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; -@EnabledIfEnvironmentVariable(named = "SALESFORCE_USERNAME", matches = ".+") -@EnabledIfEnvironmentVariable(named = "SALESFORCE_PASSWORD", matches = ".+") -@EnabledIfEnvironmentVariable(named = "SALESFORCE_CLIENTID", matches = ".+") -@EnabledIfEnvironmentVariable(named = "SALESFORCE_CLIENTSECRET", matches = ".+") @NativeImageTest class SalesforceIT extends SalesforceTest { diff --git a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIT.java b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationIT.java similarity index 92% copy from integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIT.java copy to integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationIT.java index dadbe10..afecad8 100644 --- a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIT.java +++ b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationIT.java @@ -16,14 +16,11 @@ */ package org.apache.camel.quarkus.component.salesforce; -import io.quarkus.test.junit.NativeImageTest; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; @EnabledIfEnvironmentVariable(named = "SALESFORCE_USERNAME", matches = ".+") @EnabledIfEnvironmentVariable(named = "SALESFORCE_PASSWORD", matches = ".+") @EnabledIfEnvironmentVariable(named = "SALESFORCE_CLIENTID", matches = ".+") @EnabledIfEnvironmentVariable(named = "SALESFORCE_CLIENTSECRET", matches = ".+") -@NativeImageTest -class SalesforceIT extends SalesforceTest { - +public class SalesforceIntegrationIT extends SalesforceIntegrationTest { } diff --git a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationTest.java similarity index 61% copy from integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java copy to integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationTest.java index 1de2906..91c68d8 100644 --- a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java +++ b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationTest.java @@ -20,72 +20,17 @@ import java.util.UUID; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; -import io.restassured.path.json.JsonPath; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; -import static org.hamcrest.Matchers.emptyString; import static org.hamcrest.Matchers.is; -import static org.hamcrest.core.IsNot.not; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; @EnabledIfEnvironmentVariable(named = "SALESFORCE_USERNAME", matches = ".+") @EnabledIfEnvironmentVariable(named = "SALESFORCE_PASSWORD", matches = ".+") @EnabledIfEnvironmentVariable(named = "SALESFORCE_CLIENTID", matches = ".+") @EnabledIfEnvironmentVariable(named = "SALESFORCE_CLIENTSECRET", matches = ".+") @QuarkusTest -class SalesforceTest { - - @Test - public void testGetDocumentRaw() { - RestAssured.get("/salesforce/document/test") - .then() - .statusCode(200) - .body("attributes.type", is("Document")); - } - - @Test - public void testGetAccountDTO() { - RestAssured.get("/salesforce/account") - .then() - .statusCode(200) - .body( - "id", not(emptyString()), - "accountNumber", not(emptyString())); - } - - @Test - public void testBulkJobApi() { - // Create bulk job - JsonPath jobInfo = RestAssured.given() - .post("/salesforce/bulk") - .then() - .statusCode(200) - .extract() - .body() - .jsonPath(); - - String id = jobInfo.getString("id"); - String state = jobInfo.getString("state"); - assertNotNull(id); - assertTrue(id.length() > 0); - assertEquals("OPEN", state); - - // Abort bulk job - jobInfo = RestAssured.given() - .queryParam("jobId", id) - .delete("/salesforce/bulk") - .then() - .statusCode(200) - .extract() - .body() - .jsonPath(); - - state = jobInfo.getString("state"); - assertEquals("ABORTED", state); - } +public class SalesforceIntegrationTest { @Test public void testChangeDataCaptureEvents() { diff --git a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java index 1de2906..4acd09f 100644 --- a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java +++ b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java @@ -16,13 +16,11 @@ */ package org.apache.camel.quarkus.component.salesforce; -import java.util.UUID; - +import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; import io.restassured.path.json.JsonPath; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import static org.hamcrest.Matchers.emptyString; import static org.hamcrest.Matchers.is; @@ -31,11 +29,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -@EnabledIfEnvironmentVariable(named = "SALESFORCE_USERNAME", matches = ".+") -@EnabledIfEnvironmentVariable(named = "SALESFORCE_PASSWORD", matches = ".+") -@EnabledIfEnvironmentVariable(named = "SALESFORCE_CLIENTID", matches = ".+") -@EnabledIfEnvironmentVariable(named = "SALESFORCE_CLIENTSECRET", matches = ".+") @QuarkusTest +@QuarkusTestResource(SalesforceTestResource.class) class SalesforceTest { @Test @@ -52,8 +47,8 @@ class SalesforceTest { .then() .statusCode(200) .body( - "id", not(emptyString()), - "accountNumber", not(emptyString())); + "Id", not(emptyString()), + "AccountNumber", not(emptyString())); } @Test @@ -86,45 +81,4 @@ class SalesforceTest { state = jobInfo.getString("state"); assertEquals("ABORTED", state); } - - @Test - public void testChangeDataCaptureEvents() { - String accountId = null; - try { - // Start the Salesforce CDC consumer - RestAssured.post("/salesforce/cdc/start") - .then() - .statusCode(200); - - // Create an account - String accountName = "Camel Quarkus Account Test: " + UUID.randomUUID().toString(); - accountId = RestAssured.given() - .body(accountName) - .post("/salesforce/account") - .then() - .statusCode(200) - .extract() - .body() - .asString(); - - // Verify we captured the account creation event - RestAssured.given() - .get("/salesforce/cdc") - .then() - .statusCode(200) - .body("Name", is(accountName)); - } finally { - // Shut down the CDC consumer - RestAssured.post("/salesforce/cdc/stop") - .then() - .statusCode(200); - - // Clean up - if (accountId != null) { - RestAssured.delete("/salesforce/account/" + accountId) - .then() - .statusCode(204); - } - } - } } diff --git a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTestResource.java b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTestResource.java new file mode 100644 index 0000000..9d47e8c --- /dev/null +++ b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTestResource.java @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.salesforce; + +import java.util.Map; + +import com.github.tomakehurst.wiremock.core.WireMockConfiguration; +import com.github.tomakehurst.wiremock.extension.responsetemplating.ResponseTemplateTransformer; +import org.apache.camel.quarkus.test.wiremock.WireMockTestResourceLifecycleManager; + +public class SalesforceTestResource extends WireMockTestResourceLifecycleManager { + private static final String SALESFORCE_BASE_URL = "login.salesforce.com"; + private static final String SALESFORCE_CLIENT_ID = "SALESFORCE_CLIENTID"; + private static final String SALESFORCE_CLIENT_SECRET = "SALESFORCE_CLIENTSECRET"; + private static final String SALESFORCE_USERNAME = "SALESFORCE_USERNAME"; + private static final String SALESFORCE_PASSWORD = "SALESFORCE_PASSWORD"; + + @Override + protected String getRecordTargetBaseUrl() { + return SALESFORCE_BASE_URL; + } + + @Override + protected boolean isMockingEnabled() { + return !envVarsPresent(SALESFORCE_CLIENT_ID, SALESFORCE_CLIENT_SECRET, SALESFORCE_USERNAME, SALESFORCE_PASSWORD); + } + + @Override + public Map<String, String> start() { + Map<String, String> options = super.start(); + if (options.containsKey("wiremock.url")) { + options.put("camel.component.salesforce.loginUrl", options.get("wiremock.url")); + options.put("camel.component.salesforce.userName", "username"); + options.put("camel.component.salesforce.password", "password"); + options.put("camel.component.salesforce.clientId", "clientId"); + } + return options; + } + + @Override + protected void customizeWiremockConfiguration(WireMockConfiguration config) { + config.extensions(new ResponseTemplateTransformer(false)); + } + +} diff --git a/integration-tests/salesforce/src/test/resources/mappings/bulApi-abortJob.json b/integration-tests/salesforce/src/test/resources/mappings/bulApi-abortJob.json new file mode 100644 index 0000000..0230ce0 --- /dev/null +++ b/integration-tests/salesforce/src/test/resources/mappings/bulApi-abortJob.json @@ -0,0 +1,18 @@ +{ + "id": "09aa79df-8a19-41df-8655-e414d390d6ed", + "name": "salesforce_api_json", + "request": { + "url": "/services/async/50.0/job/750x0000000005LAAQ", + "method": "POST" + }, + "response": { + "status": 200, + "body": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<jobInfo\n xmlns=\"http://www.force.com/2009/06/asyncapi/dataload\">\n <id>750x0000000005LAAQ</id>\n <operation>insert</operation>\n <object>Contact</object>\n <createdById>005x0000000wPWdAAM</createdById>\n <createdDate>2009-09-01T16:42:46.000Z</createdDate>\n <systemModstamp>2009-09-01T16:42:46.000Z</systemModstamp>\n <state>Aborted</state>\n <concurrencyMode>Parallel</concurrencyMode>\n <contentType>CSV</contentType>\ [...] + "headers": { + "Content-Type": "application/json; charset=UTF-8" + } + }, + "uuid": "09aa79df-8a19-41df-8655-e414d390d6ed", + "persistent": true, + "insertionIndex": 2 +} \ No newline at end of file diff --git a/integration-tests/salesforce/src/test/resources/mappings/bulkApi-createJob.json b/integration-tests/salesforce/src/test/resources/mappings/bulkApi-createJob.json new file mode 100644 index 0000000..3b5e29e --- /dev/null +++ b/integration-tests/salesforce/src/test/resources/mappings/bulkApi-createJob.json @@ -0,0 +1,18 @@ +{ + "id": "09aa79df-8a19-41df-8655-e414d390d6ed", + "name": "salesforce_api_json", + "request": { + "url": "/services/async/50.0/job", + "method": "POST" + }, + "response": { + "status": 200, + "body": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<jobInfo\n xmlns=\"http://www.force.com/2009/06/asyncapi/dataload\">\n <id>750x0000000005LAAQ</id>\n <operation>insert</operation>\n <object>Contact</object>\n <createdById>005x0000000wPWdAAM</createdById>\n <createdDate>2009-09-01T16:42:46.000Z</createdDate>\n <systemModstamp>2009-09-01T16:42:46.000Z</systemModstamp>\n <state>Open</state>\n <concurrencyMode>Parallel</concurrencyMode>\n <contentType>CSV</contentType>\n [...] + "headers": { + "Content-Type": "application/json; charset=UTF-8" + } + }, + "uuid": "09aa79df-8a19-41df-8655-e414d390d6ed", + "persistent": true, + "insertionIndex": 2 +} \ No newline at end of file diff --git a/integration-tests/salesforce/src/test/resources/mappings/getAccount.json b/integration-tests/salesforce/src/test/resources/mappings/getAccount.json new file mode 100644 index 0000000..a2c85fa --- /dev/null +++ b/integration-tests/salesforce/src/test/resources/mappings/getAccount.json @@ -0,0 +1,18 @@ +{ + "id": "09aa79df-8a19-41df-8655-e414d390d6ed", + "name": "salesforce_api_json", + "request": { + "url": "/services/data/v50.0/query/?q=SELECT%20Id%2CAccountNumber%20from%20Account%20LIMIT%201", + "method": "GET" + }, + "response": { + "status": 200, + "body" : "{\"records\":[{\"Id\":\"someFakeId\", \"AccountNumber\":\"11233\", \"attributes\": {\"type\" : \"Account\"}}]}", + "headers": { + "Content-Type": "application/json; charset=UTF-8" + } + }, + "uuid": "09aa79df-8a19-41df-8655-e414d390d6ed", + "persistent": true, + "insertionIndex": 2 +} \ No newline at end of file diff --git a/integration-tests/salesforce/src/test/resources/mappings/getDocument.json b/integration-tests/salesforce/src/test/resources/mappings/getDocument.json new file mode 100644 index 0000000..aac6d77 --- /dev/null +++ b/integration-tests/salesforce/src/test/resources/mappings/getDocument.json @@ -0,0 +1,18 @@ +{ + "id": "09aa79df-8a19-41df-8655-e414d390d6ed", + "name": "salesforce_api_json", + "request": { + "url": "/services/data/v50.0/sobjects/Document/Name/test", + "method": "GET" + }, + "response": { + "status": 200, + "body" : "{\"attributes\": {\"type\" : \"Document\"}}", + "headers": { + "Content-Type": "application/json; charset=UTF-8" + } +}, + "uuid": "09aa79df-8a19-41df-8655-e414d390d6ed", + "persistent": true, + "insertionIndex": 2 +} \ No newline at end of file diff --git a/integration-tests/salesforce/src/test/resources/mappings/handshake.json b/integration-tests/salesforce/src/test/resources/mappings/handshake.json new file mode 100644 index 0000000..e619cba --- /dev/null +++ b/integration-tests/salesforce/src/test/resources/mappings/handshake.json @@ -0,0 +1,19 @@ +{ + "id": "09aa79df-8a19-41df-8655-e414d390d6ed", + "name": "salesforce_api_json", + "request": { + "url": "/cometd/50.0/handshake", + "method": "POST" + }, + "response": { + "status": 200, + "body": "[\"ext\": {\"replay\": true,\"payload.format\": true}, \"minimumVersion\": \"1.0\", \"clientId\": \"clientId\",\"supportedConnectionTypes\": [ \"long-polling\" ], \"channel\": \"/meta/handshake\", \"id\": \"{{jsonPath request.body '$[0].id'}}\",\"version\": \"1.0\",\"successful\": \"true\" }]", + "transformers": ["response-template"], + "headers": { + "Content-Type": "application/json; charset=UTF-8" + } + }, + "uuid": "09aa79df-8a19-41df-8655-e414d390d6ed", + "persistent": true, + "insertionIndex": 2 +} \ No newline at end of file diff --git a/integration-tests/salesforce/src/test/resources/mappings/oauth2.json b/integration-tests/salesforce/src/test/resources/mappings/oauth2.json new file mode 100644 index 0000000..0623ea6 --- /dev/null +++ b/integration-tests/salesforce/src/test/resources/mappings/oauth2.json @@ -0,0 +1,19 @@ +{ + "id": "09aa79df-8a19-41df-8655-e414d390d6ed", + "name": "salesforce_api_json", + "request": { + "url": "/services/oauth2/token", + "method": "POST" + }, + "response": { + "status": 200, + "body": "{\"instance_url\":\"{{request.baseUrl}}\",\"access_token\":\"token\"}", + "transformers": ["response-template"], + "headers": { + "Content-Type": "application/json; charset=UTF-8" + } + }, + "uuid": "09aa79df-8a19-41df-8655-e414d390d6ed", + "persistent": true, + "insertionIndex": 2 +} \ No newline at end of file diff --git a/integration-tests/salesforce/src/test/resources/mappings/revokeToken.json b/integration-tests/salesforce/src/test/resources/mappings/revokeToken.json new file mode 100644 index 0000000..984cc76 --- /dev/null +++ b/integration-tests/salesforce/src/test/resources/mappings/revokeToken.json @@ -0,0 +1,17 @@ +{ + "id": "09aa79df-8a19-41df-8655-e414d390d6ed", + "name": "salesforce_api_json", + "request": { + "url": "/services/oauth2/revoke?token=token", + "method": "GET" + }, + "response": { + "status": 200, + "headers": { + "Content-Type": "application/json; charset=UTF-8" + } + }, + "uuid": "09aa79df-8a19-41df-8655-e414d390d6ed", + "persistent": true, + "insertionIndex": 2 +} \ No newline at end of file
