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


The following commit(s) were added to refs/heads/main by this push:
     new 6b77c9e  Salesforce : add Platform events test fixes #2938
6b77c9e is described below

commit 6b77c9ecf6d836fd28912670835ebb0d3d38aa9d
Author: Zineb Bendhiba <bendhiba.zi...@gmail.com>
AuthorDate: Sun Sep 5 18:49:21 2021 +0200

    Salesforce : add Platform events test fixes #2938
---
 integration-tests/salesforce/README.adoc           |  2 ++
 integration-tests/salesforce/pom.xml               | 38 +++++++++++++++++++++-
 .../component/salesforce/SalesforceResource.java   |  7 ++++
 .../component/salesforce/SalesforceRoutes.java     |  6 ++++
 .../salesforce/SalesforceIntegrationTest.java      | 12 +++++++
 5 files changed, 64 insertions(+), 1 deletion(-)

diff --git a/integration-tests/salesforce/README.adoc 
b/integration-tests/salesforce/README.adoc
index e85a862..1b3acd1 100644
--- a/integration-tests/salesforce/README.adoc
+++ b/integration-tests/salesforce/README.adoc
@@ -11,6 +11,8 @@ Next create a new 'Connected App' from the app manager page. 
You may need to adj
 
 Next create a document named 'test'.
 
+Next create a new Platform Event named `TestEvent`. Set Publish Behavior to 
`Publish Immediately`. Save and make sure the API name is `TestEvent__e`.
+
 You can find the app OAuth settings by choosing the 'view' option from the app 
manager page. Then set the following environment variables.
 
 [source,shell]
diff --git a/integration-tests/salesforce/pom.xml 
b/integration-tests/salesforce/pom.xml
index df077a9..bad69a9 100644
--- a/integration-tests/salesforce/pom.xml
+++ b/integration-tests/salesforce/pom.xml
@@ -36,7 +36,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-seda-deployment</artifactId>
+            <artifactId>camel-quarkus-seda</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-timer</artifactId>
         </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
@@ -54,6 +58,11 @@
             <artifactId>rest-assured</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+            <scope>test</scope>
+        </dependency>
 
         <!-- dependencies needed to mock Salesforce API -->
         <dependency>
@@ -77,6 +86,33 @@
                 </exclusion>
             </exclusions>
         </dependency>
+
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-seda-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-timer-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
     </dependencies>
 
 
diff --git 
a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceResource.java
 
b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceResource.java
index 6f4d184..01632a9 100644
--- 
a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceResource.java
+++ 
b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceResource.java
@@ -289,4 +289,11 @@ public class SalesforceResource {
 
         return queryRecordsPushTopic.getRecords().get(0).getId();
     }
+
+    @Path("platform/event")
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    public String getPlatformEvent() {
+        return 
consumerTemplate.receiveBody("salesforce:event/TestEvent__e?rawPayload=true", 
10000, String.class);
+    }
 }
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 66658b8..383bbd7 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
@@ -87,6 +87,12 @@ public class SalesforceRoutes extends RouteBuilder {
                     + "updateTopic=true&sObjectQuery=SELECT Id, Name FROM 
Account")
                             .to("seda:RawPayloadCamelTestTopic");
 
+            // it takes some time for the subscriber to subscribe, so we'll 
try to
+            // send repeated platform events and wait until the first one is
+            // received
+            from("timer:platform")
+                    .setBody().simple("{}")
+                    .to("salesforce:createSObject?sObjectName=TestEvent__e");
         }
     }
 }
diff --git 
a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationTest.java
 
b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationTest.java
index 5dffd4e..ecf5fa8 100644
--- 
a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationTest.java
+++ 
b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationTest.java
@@ -20,12 +20,15 @@ import java.util.UUID;
 
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
 
+import static io.restassured.RestAssured.given;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.is;
 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 = ".+")
@@ -107,4 +110,13 @@ public class SalesforceIntegrationTest {
         }
     }
 
+    @Test
+    void testPlatformEvents() {
+        String event = given()
+                .contentType(ContentType.JSON)
+                .get("/salesforce/platform/event")
+                .asString();
+        assertTrue(event.contains("channel=/event/TestEvent__e"));
+    }
+
 }

Reply via email to