You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2020/07/22 16:59:07 UTC

[camel] 01/18: [CAMEL-11807] Upgrade camel-salesforce to junit5

This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit ef027fb86b85b2a140a05ea158c95e5b780e343b
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Tue Jul 21 16:31:07 2020 +0200

    [CAMEL-11807] Upgrade camel-salesforce to junit5
---
 .../camel-salesforce-component/README.md           |   2 +-
 .../camel-salesforce-component/pom.xml             |   9 +-
 .../AbstractApprovalIntegrationTest.java           |  10 +-
 .../salesforce/AbstractBulkApiTestBase.java        |  11 +-
 .../salesforce/AbstractSalesforceTestBase.java     |   6 +-
 .../salesforce/AnalyticsApiIntegrationTest.java    |  51 +++++----
 .../ApprovalExamplesIntegrationTest.java           |   8 +-
 .../salesforce/ApprovalIntegrationTest.java        |  33 +++---
 .../salesforce/BulkApiBatchIntegrationTest.java    |  27 ++---
 .../salesforce/BulkApiIntegrationTest.java         |   7 +-
 .../salesforce/BulkApiJobIntegrationTest.java      |  31 ++---
 .../salesforce/BulkApiQueryIntegrationTest.java    |  31 +++--
 .../ChangeEventsConsumerIntegrationTest.java       |  40 ++++---
 .../CompositeApiBatchIntegrationTest.java          |  36 +++---
 .../salesforce/CompositeApiIntegrationTest.java    |  33 +++---
 .../CompositeApiTreeIntegrationTest.java           |  35 +++---
 .../salesforce/CompoundTypesIntegrationTest.java   |  14 ++-
 .../salesforce/HttpProxyIntegrationTest.java       |  23 ++--
 .../salesforce/LimitsIntegrationTest.java          |  13 ++-
 .../salesforce/NotFoundIntegrationTest.java        |  34 ++----
 .../PlatformEventsConsumerIntegrationTest.java     |   5 +-
 .../camel/component/salesforce/RawPayloadTest.java |  35 +++---
 .../salesforce/RecentIntegrationTest.java          |  15 +--
 .../salesforce/RestApiIntegrationTest.java         | 110 +++++++++---------
 ...eComponentVerifierExtensionIntegrationTest.java |  41 ++++---
 .../SalesforceComponentVerifierExtensionTest.java  |  21 ++--
 .../salesforce/SalesforceConsumerTest.java         |  12 +-
 .../salesforce/SalesforceEndpointTest.java         |  10 +-
 .../SalesforceHeadersIntegrationTest.java          |   2 +-
 ...alesforceJwtBearerTokenFlowIntegrationTest.java |   5 +-
 .../salesforce/SalesforceLoginConfigTest.java      |   4 +-
 .../SalesforceMetaDataExtensionTest.java           |   2 +-
 .../camel/component/salesforce/Standalone.java     |   5 +-
 .../salesforce/StreamingApiIntegrationTest.java    |  25 ++--
 .../api/MultiSelectPicklistJsonTest.java           |   8 +-
 .../salesforce/api/MultiSelectPicklistXmlTest.java |   8 +-
 .../component/salesforce/api/dto/LimitsTest.java   |  21 ++--
 .../salesforce/api/dto/PlatformEventTest.java      |   2 +-
 .../salesforce/api/dto/RecentItemTest.java         |  19 ++-
 .../salesforce/api/dto/RestErrorTest.java          |   4 +-
 .../api/dto/approval/ApprovalRequestTest.java      |  41 ++++---
 .../api/dto/approval/ApprovalRequestsTest.java     |   8 +-
 .../api/dto/approval/ApprovalResultTest.java       |  23 ++--
 .../salesforce/api/dto/approval/ApprovalsTest.java |  27 +++--
 .../api/dto/composite/MapOfMapsConverterTest.java  |   8 +-
 .../dto/composite/SObjectBatchResponseTest.java    |  56 ++++-----
 .../api/dto/composite/SObjectBatchTest.java        |   8 +-
 .../composite/SObjectCompositeResponseTest.java    |   2 +-
 .../api/dto/composite/SObjectCompositeTest.java    |   2 +-
 .../api/dto/composite/SObjectNodeTest.java         |  82 ++++++-------
 .../api/dto/composite/SObjectTreeResponseTest.java |  37 +++---
 .../api/dto/composite/SObjectTreeTest.java         |  14 +--
 .../salesforce/api/utils/JsonUtilsTest.java        |   8 +-
 .../salesforce/api/utils/QueryHelperTest.java      |   2 +-
 .../api/utils/SalesforceTimeFormatsTest.java       |  43 +++----
 .../salesforce/api/utils/VersionTest.java          |  22 ++--
 .../salesforce/internal/LoginTokenTest.java        |  12 +-
 .../salesforce/internal/SalesforceSessionTest.java |   8 +-
 .../internal/SessionIntegrationTest.java           |  13 ++-
 .../internal/client/AbstractClientBaseTest.java    |   8 +-
 .../client/DefaultCompositeApiClientTest.java      |   9 +-
 .../AbstractRestProcessorApprovalTest.java         |  14 +--
 .../internal/processor/JsonRestProcessorTest.java  |   2 +-
 .../internal/streaming/ReplayExtensionTest.java    |   4 +-
 .../internal/streaming/SubscriptionHelperTest.java |  30 +++--
 .../camel-salesforce-maven-plugin/pom.xml          |   8 +-
 .../AbstractSalesforceMojoIntegrationTest.java     |   2 +-
 .../maven/CamelSalesforceMojoIntegrationTest.java  |   2 +-
 .../camel/maven/CamelSalesforceMojoOutputTest.java |  24 ++--
 .../org/apache/camel/maven/GenerateMojoTest.java   |   8 +-
 .../camel/maven/HttpProxyMojoIntegrationTest.java  |   8 +-
 .../camel/maven/SchemaMojoIntegrationTest.java     |   8 +-
 components/camel-test-junit5/pom.xml               |  12 +-
 .../camel/test/junit5/params/Parameter.java}       |  14 +--
 .../camel/test/junit5/params/Parameterized.java}   |  19 +--
 .../test/junit5/params/ParameterizedExtension.java | 127 +++++++++++++++++++++
 .../camel/test/junit5/params/Parameters.java}      |  17 +--
 .../org/apache/camel/test/junit5/params/Test.java} |  16 +--
 78 files changed, 846 insertions(+), 710 deletions(-)

diff --git a/components/camel-salesforce/camel-salesforce-component/README.md b/components/camel-salesforce/camel-salesforce-component/README.md
index f1bb76c..1b85ef0 100644
--- a/components/camel-salesforce/camel-salesforce-component/README.md
+++ b/components/camel-salesforce/camel-salesforce-component/README.md
@@ -96,7 +96,7 @@ This however is run every time when you run the integration tests by issuing fro
 
 If you need any custom fields, Apex classes or other configuration changes done, make sure to download them using the _Salesforce Migration Tool_ and include them in `it/resources/salesforce` directory.
 
-If your tests cannot be run alongside other tests you can use `@Category(Standalone.class)` to mark them as such.
+If your tests cannot be run alongside other tests you can use `@Standalone` to mark them as such.
 
 #### Manual Salesforce instance setup for integration tests
 
diff --git a/components/camel-salesforce/camel-salesforce-component/pom.xml b/components/camel-salesforce/camel-salesforce-component/pom.xml
index e78d31f..120bff1 100644
--- a/components/camel-salesforce/camel-salesforce-component/pom.xml
+++ b/components/camel-salesforce/camel-salesforce-component/pom.xml
@@ -159,7 +159,12 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test</artifactId>
+            <artifactId>camel-test-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -187,7 +192,7 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
+            <artifactId>mockito-junit-jupiter</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractApprovalIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractApprovalIntegrationTest.java
index f6d6b24..3b017b2 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractApprovalIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractApprovalIntegrationTest.java
@@ -25,8 +25,8 @@ import java.util.stream.IntStream;
 import org.apache.camel.component.salesforce.api.dto.CreateSObjectResult;
 import org.apache.camel.component.salesforce.api.dto.analytics.reports.QueryRecordsReport;
 import org.apache.camel.component.salesforce.dto.generated.Account;
-import org.junit.After;
-import org.junit.Before;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 
 public abstract class AbstractApprovalIntegrationTest extends AbstractSalesforceTestBase {
 
@@ -42,7 +42,7 @@ public abstract class AbstractApprovalIntegrationTest extends AbstractSalesforce
         this.accountCount = accountCount;
     }
 
-    @Before
+    @BeforeEach
     public void createAccounts() {
         final List<Account> accountsToCreate = IntStream.range(0, accountCount + 1).mapToObj(idx -> {
             final String name = "test-account-" + idx;
@@ -56,12 +56,12 @@ public abstract class AbstractApprovalIntegrationTest extends AbstractSalesforce
             .map(CreateSObjectResult::getId).collect(Collectors.toList());
     }
 
-    @After
+    @AfterEach
     public void deleteAccounts() {
         accountIds.forEach(id -> template.sendBody("salesforce:deleteSObject?sObjectName=Account", id));
     }
 
-    @Before
+    @BeforeEach
     public void setupUserId() throws IOException {
         final SalesforceLoginConfig loginConfig = LoginConfigHelper.getLoginConfig();
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractBulkApiTestBase.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractBulkApiTestBase.java
index 96dc881..8377547 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractBulkApiTestBase.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractBulkApiTestBase.java
@@ -20,15 +20,14 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.salesforce.api.dto.bulk.BatchInfo;
 import org.apache.camel.component.salesforce.api.dto.bulk.BatchStateEnum;
 import org.apache.camel.component.salesforce.api.dto.bulk.JobInfo;
-import org.junit.experimental.theories.Theories;
-import org.junit.runner.RunWith;
 
-@RunWith(Theories.class)
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
 public abstract class AbstractBulkApiTestBase extends AbstractSalesforceTestBase {
 
     protected JobInfo createJob(JobInfo jobInfo) {
         jobInfo = template().requestBody("direct:createJob", jobInfo, JobInfo.class);
-        assertNotNull("Missing JobId", jobInfo.getId());
+        assertNotNull(jobInfo.getId(), "Missing JobId");
         return jobInfo;
     }
 
@@ -86,8 +85,8 @@ public abstract class AbstractBulkApiTestBase extends AbstractSalesforceTestBase
     protected BatchInfo getBatchInfo(BatchInfo batchInfo) {
         batchInfo = template().requestBody("direct:getBatch", batchInfo, BatchInfo.class);
 
-        assertNotNull("Null batch", batchInfo);
-        assertNotNull("Null batch id", batchInfo.getId());
+        assertNotNull(batchInfo, "Null batch");
+        assertNotNull(batchInfo.getId(), "Null batch id");
 
         return batchInfo;
     }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractSalesforceTestBase.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractSalesforceTestBase.java
index 7939d39..fa9da6a 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractSalesforceTestBase.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractSalesforceTestBase.java
@@ -20,10 +20,14 @@ import java.util.HashMap;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.salesforce.dto.generated.Merchandise__c;
-import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public abstract class AbstractSalesforceTestBase extends CamelTestSupport {
 
+    protected final Logger log = LoggerFactory.getLogger(getClass());
+
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         // create the test component
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AnalyticsApiIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AnalyticsApiIntegrationTest.java
index e39f7e5..4a82870 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AnalyticsApiIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AnalyticsApiIntegrationTest.java
@@ -33,18 +33,20 @@ import org.apache.camel.component.salesforce.api.dto.analytics.reports.ReportSta
 import org.apache.camel.component.salesforce.api.dto.analytics.reports.SyncReportResults;
 import org.apache.camel.dataformat.csv.CsvDataFormat;
 import org.apache.commons.csv.CSVFormat;
-import org.junit.Test;
-import org.junit.experimental.theories.DataPoints;
-import org.junit.experimental.theories.Theories;
-import org.junit.experimental.theories.Theory;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.fail;
+
 /**
  * Integration test for Salesforce analytics API endpoints.
  */
-@RunWith(Theories.class)
 public class AnalyticsApiIntegrationTest extends AbstractSalesforceTestBase {
 
     private static final Logger LOG = LoggerFactory.getLogger(AnalyticsApiIntegrationTest.class);
@@ -64,7 +66,6 @@ public class AnalyticsApiIntegrationTest extends AbstractSalesforceTestBase {
      * @return test report developer names in test-salesforce-login.properties
      * @throws Exception
      */
-    @DataPoints
     public static String[] getTestReportDeveloperNames() throws Exception {
         return new String[] {TEST_REPORT_NAME};
     }
@@ -74,29 +75,29 @@ public class AnalyticsApiIntegrationTest extends AbstractSalesforceTestBase {
 
         final List recentReports = template().requestBody("direct:getRecentReports", null, List.class);
 
-        assertNotNull("getRecentReports", recentReports);
-        assertFalse("getRecentReports empty", recentReports.isEmpty());
+        assertNotNull(recentReports, "getRecentReports");
+        assertFalse(recentReports.isEmpty(), "getRecentReports empty");
         LOG.debug("getRecentReports: {}", recentReports);
     }
 
-    @Theory
+    @ParameterizedTest @MethodSource("getTestReportDeveloperNames")
     public void testReport(String reportName) throws Exception {
 
-        log.info("Testing report {}...", reportName);
+        LOG.info("Testing report {}...", reportName);
 
         // get Report Id
         final QueryRecordsReport reports = template().requestBody("direct:queryReport", "SELECT Id FROM Report WHERE DeveloperName='" + reportName + "'", QueryRecordsReport.class);
 
-        assertNotNull("query", reports);
+        assertNotNull(reports, "query");
         final List<Report> reportsRecords = reports.getRecords();
-        assertFalse("Report not found", reportsRecords.isEmpty());
+        assertFalse(reportsRecords.isEmpty(), "Report not found");
         final String testReportId = reportsRecords.get(0).getId();
         assertNotNull(testReportId);
 
         // 1. getReportDescription
         final ReportDescription reportDescription = template().requestBody("direct:getReportDescription", testReportId, ReportDescription.class);
 
-        assertNotNull("getReportDescriptions", reportDescription);
+        assertNotNull(reportDescription, "getReportDescriptions");
         LOG.debug("getReportDescriptions: {}", reportDescription);
         final ReportMetadata testReportMetadata = reportDescription.getReportMetadata();
 
@@ -105,7 +106,7 @@ public class AnalyticsApiIntegrationTest extends AbstractSalesforceTestBase {
         SyncReportResults reportResults = template().requestBodyAndHeader("direct:executeSyncReport", testReportId, SalesforceEndpointConfig.INCLUDE_DETAILS, Boolean.TRUE,
                                                                           SyncReportResults.class);
 
-        assertNotNull("executeSyncReport", reportResults);
+        assertNotNull(reportResults, "executeSyncReport");
         LOG.debug("executeSyncReport: {}", reportResults);
 
         // execute with metadata
@@ -120,7 +121,7 @@ public class AnalyticsApiIntegrationTest extends AbstractSalesforceTestBase {
         }
         reportResults = template().requestBodyAndHeaders("direct:executeSyncReport", body, headers, SyncReportResults.class);
 
-        assertNotNull("executeSyncReport with metadata", reportResults);
+        assertNotNull(reportResults, "executeSyncReport with metadata");
         LOG.debug("executeSyncReport with metadata: {}", reportResults);
 
         // 3. executeAsyncReport
@@ -128,7 +129,7 @@ public class AnalyticsApiIntegrationTest extends AbstractSalesforceTestBase {
         ReportInstance reportInstance = template().requestBodyAndHeader("direct:executeAsyncReport", testReportId, SalesforceEndpointConfig.INCLUDE_DETAILS, true,
                                                                         ReportInstance.class);
 
-        assertNotNull("executeAsyncReport", reportInstance);
+        assertNotNull(reportInstance, "executeAsyncReport");
         LOG.debug("executeAsyncReport: {}", reportInstance);
 
         // execute with metadata
@@ -144,15 +145,15 @@ public class AnalyticsApiIntegrationTest extends AbstractSalesforceTestBase {
         }
         reportInstance = template().requestBodyAndHeaders("direct:executeAsyncReport", body, headers, ReportInstance.class);
 
-        assertNotNull("executeAsyncReport with metadata", reportInstance);
+        assertNotNull(reportInstance, "executeAsyncReport with metadata");
         LOG.debug("executeAsyncReport with metadata: {}", reportInstance);
         final String testReportInstanceId = reportInstance.getId();
 
         // 4. getReportInstances
         final List reportInstances = template().requestBody("direct:getReportInstances", testReportId, List.class);
 
-        assertNotNull("getReportInstances", reportInstances);
-        assertFalse("getReportInstances empty", reportInstances.isEmpty());
+        assertNotNull(reportInstances, "getReportInstances");
+        assertFalse(reportInstances.isEmpty(), "getReportInstances empty");
         LOG.debug("getReportInstances: {}", reportInstances);
 
         // 5. getReportResults
@@ -175,14 +176,14 @@ public class AnalyticsApiIntegrationTest extends AbstractSalesforceTestBase {
             }
         }
 
-        assertNotNull("getReportResults", asyncReportResults);
-        assertEquals("getReportResults status", ReportStatusEnum.Success, asyncReportResults.getAttributes().getStatus());
+        assertNotNull(asyncReportResults, "getReportResults");
+        assertEquals(ReportStatusEnum.Success, asyncReportResults.getAttributes().getStatus(), "getReportResults status");
         LOG.debug("getReportResults: {}", asyncReportResults);
 
         // 6. SalesforceReportResultsConverter tests
         // defaults
         String convertResults = template.requestBody("direct:convertResults", asyncReportResults, String.class);
-        assertNotNull("default convertResults", convertResults);
+        assertNotNull(convertResults, "default convertResults");
         LOG.debug("Default options", convertResults);
         LOG.debug("{}", convertResults);
 
@@ -199,14 +200,14 @@ public class AnalyticsApiIntegrationTest extends AbstractSalesforceTestBase {
                 }
             }
 
-            log.debug("Options {} = {}", REPORT_OPTIONS, values);
+            LOG.debug("Options {} = {}", REPORT_OPTIONS, values);
             headers.clear();
             for (int j = 0; j < REPORT_OPTIONS.length; j++) {
                 headers.put(REPORT_OPTIONS[j], values[j]);
             }
             convertResults = template.requestBodyAndHeaders("direct:convertResults", asyncReportResults, headers, String.class);
 
-            assertNotNull("convertResults", convertResults);
+            assertNotNull(convertResults, "convertResults");
             LOG.debug("{}", convertResults);
         }
     }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/ApprovalExamplesIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/ApprovalExamplesIntegrationTest.java
index dc00f87..b0a05a3 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/ApprovalExamplesIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/ApprovalExamplesIntegrationTest.java
@@ -23,7 +23,9 @@ import org.apache.camel.BindToRegistry;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.salesforce.api.dto.approval.ApprovalRequest;
 import org.apache.camel.component.salesforce.api.dto.approval.ApprovalResult;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class ApprovalExamplesIntegrationTest extends AbstractApprovalIntegrationTest {
 
@@ -41,7 +43,7 @@ public class ApprovalExamplesIntegrationTest extends AbstractApprovalIntegration
         final ApprovalResult result = template.requestBody("direct:example1", body, ApprovalResult.class);
         // end::example1Usage
 
-        assertNotNull("Result should be received", result);
+        assertNotNull(result, "Result should be received");
     }
 
     @Test
@@ -54,7 +56,7 @@ public class ApprovalExamplesIntegrationTest extends AbstractApprovalIntegration
         final ApprovalResult result = template.requestBody("direct:example2", body, ApprovalResult.class);
         // end::example2Usage
 
-        assertNotNull("Result should be received", result);
+        assertNotNull(result, "Result should be received");
     }
 
     @BindToRegistry("approvalTemplate")
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/ApprovalIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/ApprovalIntegrationTest.java
index 0b3cf6c..cf819a6 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/ApprovalIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/ApprovalIntegrationTest.java
@@ -20,24 +20,27 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import com.googlecode.junittoolbox.ParallelParameterized;
 import org.apache.camel.component.salesforce.api.dto.approval.ApprovalRequest;
 import org.apache.camel.component.salesforce.api.dto.approval.ApprovalRequest.Action;
 import org.apache.camel.component.salesforce.api.dto.approval.ApprovalResult;
 import org.apache.camel.component.salesforce.api.dto.approval.Approvals;
 import org.apache.camel.component.salesforce.api.dto.approval.Approvals.Info;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized.Parameters;
+import org.apache.camel.test.junit5.params.Parameter;
+import org.apache.camel.test.junit5.params.Parameterized;
+import org.apache.camel.test.junit5.params.Parameters;
+import org.apache.camel.test.junit5.params.Test;
 
-@RunWith(ParallelParameterized.class)
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+@Parameterized
 public class ApprovalIntegrationTest extends AbstractApprovalIntegrationTest {
 
-    private final String format;
+    @Parameter
+    private String format;
 
-    public ApprovalIntegrationTest(final String format) {
+    public ApprovalIntegrationTest() {
         super(5);
-        this.format = format;
     }
 
     @Test
@@ -51,9 +54,9 @@ public class ApprovalIntegrationTest extends AbstractApprovalIntegrationTest {
                                                                                  + "&approvalProcessDefinitionNameOrId=Test_Account_Process", format, accountIds.get(0), userId),
                                                                    NOT_USED, ApprovalResult.class);
 
-        assertNotNull("Approval should have resulted in value", approvalResult);
+        assertNotNull(approvalResult, "Approval should have resulted in value");
 
-        assertEquals("There should be one Account waiting approval", 1, approvalResult.size());
+        assertEquals(1, approvalResult.size(), "There should be one Account waiting approval");
 
         assertEquals("Instance status of the item in approval result should be `Pending`", "Pending", approvalResult.iterator().next().getInstanceStatus());
 
@@ -63,14 +66,14 @@ public class ApprovalIntegrationTest extends AbstractApprovalIntegrationTest {
         // supported
         final Approvals approvals = template.requestBody("salesforce:approvals", NOT_USED, Approvals.class);
 
-        assertNotNull("Approvals should be fetched", approvals);
+        assertNotNull(approvals, "Approvals should be fetched");
 
         final List<Info> accountApprovals = approvals.approvalsFor("Account");
-        assertEquals("There should be one Account waiting approval", 1, accountApprovals.size());
+        assertEquals(1, accountApprovals.size(), "There should be one Account waiting approval");
     }
 
     @Test
-    public void shouldSubmitBulkApprovals() {
+    public void shouldSubmitBulkApprovals(String format) {
         final List<ApprovalRequest> approvalRequests = accountIds.stream().map(id -> {
             final ApprovalRequest request = new ApprovalRequest();
             request.setContextId(id);
@@ -87,10 +90,10 @@ public class ApprovalIntegrationTest extends AbstractApprovalIntegrationTest {
                                                                                  + "&approvalProcessDefinitionNameOrId=Test_Account_Process", format, userId),
                                                                    approvalRequests, ApprovalResult.class);
 
-        assertEquals("Should have same number of approval results as requests", approvalRequests.size(), approvalResult.size());
+        assertEquals(approvalRequests.size(), approvalResult.size(), "Should have same number of approval results as requests");
     }
 
-    @Parameters(name = "format = {0}")
+    @Parameters
     public static Iterable<String> formats() {
         return Arrays.asList("JSON", "XML");
     }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiBatchIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiBatchIntegrationTest.java
index 0e0cff5..48bd522 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiBatchIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiBatchIntegrationTest.java
@@ -28,16 +28,18 @@ import org.apache.camel.component.salesforce.api.dto.bulk.ContentType;
 import org.apache.camel.component.salesforce.api.dto.bulk.JobInfo;
 import org.apache.camel.component.salesforce.api.dto.bulk.OperationEnum;
 import org.apache.camel.component.salesforce.dto.generated.Merchandise__c;
-import org.junit.Test;
-import org.junit.experimental.theories.DataPoints;
-import org.junit.experimental.theories.Theory;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class BulkApiBatchIntegrationTest extends AbstractBulkApiTestBase {
 
     private static final String TEST_REQUEST_XML = "/test-request.xml";
     private static final String TEST_REQUEST_CSV = "/test-request.csv";
 
-    @DataPoints
     public static BatchTest[] getBatches() {
         List<BatchTest> result = new ArrayList<>();
         BatchTest test = new BatchTest();
@@ -54,8 +56,7 @@ public class BulkApiBatchIntegrationTest extends AbstractBulkApiTestBase {
         return result.toArray(new BatchTest[result.size()]);
     }
 
-    @Theory
-    @Test
+    @ParameterizedTest @MethodSource("getBatches")
     public void testBatchLifecycle(BatchTest request) throws Exception {
         log.info("Testing Batch lifecycle with {} content", request.contentType);
 
@@ -72,14 +73,14 @@ public class BulkApiBatchIntegrationTest extends AbstractBulkApiTestBase {
         headers.put(SalesforceEndpointConfig.JOB_ID, jobInfo.getId());
         headers.put(SalesforceEndpointConfig.CONTENT_TYPE, jobInfo.getContentType());
         BatchInfo batchInfo = template().requestBodyAndHeaders("direct:createBatch", request.stream, headers, BatchInfo.class);
-        assertNotNull("Null batch", batchInfo);
-        assertNotNull("Null batch id", batchInfo.getId());
+        assertNotNull(batchInfo, "Null batch");
+        assertNotNull(batchInfo.getId(), "Null batch id");
 
         // test getAllBatches
         @SuppressWarnings("unchecked")
         List<BatchInfo> batches = template().requestBody("direct:getAllBatches", jobInfo, List.class);
-        assertNotNull("Null batches", batches);
-        assertFalse("Empty batch list", batches.isEmpty());
+        assertNotNull(batches, "Null batches");
+        assertFalse(batches.isEmpty(), "Empty batch list");
 
         // test getBatch
         batchInfo = batches.get(0);
@@ -87,7 +88,7 @@ public class BulkApiBatchIntegrationTest extends AbstractBulkApiTestBase {
 
         // test getRequest
         InputStream requestStream = template().requestBody("direct:getRequest", batchInfo, InputStream.class);
-        assertNotNull("Null batch request", requestStream);
+        assertNotNull(requestStream, "Null batch request");
 
         // wait for batch to finish
         log.info("Waiting for batch to finish...");
@@ -98,11 +99,11 @@ public class BulkApiBatchIntegrationTest extends AbstractBulkApiTestBase {
             batchInfo = getBatchInfo(batchInfo);
         }
         log.info("Batch finished with state " + batchInfo.getState());
-        assertEquals("Batch did not succeed", BatchStateEnum.COMPLETED, batchInfo.getState());
+        assertEquals(BatchStateEnum.COMPLETED, batchInfo.getState(), "Batch did not succeed");
 
         // test getResults
         InputStream results = template().requestBody("direct:getResults", batchInfo, InputStream.class);
-        assertNotNull("Null batch results", results);
+        assertNotNull(results, "Null batch results");
 
         // close the test job
         template().requestBody("direct:closeJob", jobInfo, JobInfo.class);
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiIntegrationTest.java
index 78a16d6..8d24926 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiIntegrationTest.java
@@ -29,10 +29,11 @@ import org.eclipse.jetty.client.api.Request;
 import org.eclipse.jetty.http.HttpMethod;
 import org.eclipse.jetty.http.HttpStatus;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Test;
 
-@Category(Standalone.class)
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+@Standalone
 public class BulkApiIntegrationTest extends AbstractBulkApiTestBase {
 
     @Test
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiJobIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiJobIntegrationTest.java
index 4834dd3..5849ec2 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiJobIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiJobIntegrationTest.java
@@ -21,28 +21,20 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import com.googlecode.junittoolbox.ParallelParameterized;
 import org.apache.camel.component.salesforce.api.dto.bulk.ContentType;
 import org.apache.camel.component.salesforce.api.dto.bulk.JobInfo;
 import org.apache.camel.component.salesforce.api.dto.bulk.JobStateEnum;
 import org.apache.camel.component.salesforce.api.dto.bulk.OperationEnum;
 import org.apache.camel.component.salesforce.dto.generated.Merchandise__c;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
 
-@RunWith(ParallelParameterized.class)
-public class BulkApiJobIntegrationTest extends AbstractBulkApiTestBase {
-
-    @Parameter(0)
-    public JobInfo jobInfo;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-    @Parameter(1)
-    public String operationName;
+public class BulkApiJobIntegrationTest extends AbstractBulkApiTestBase {
 
-    @Before
+    @BeforeEach
     public void setupProfileWithHardDelete() throws IOException {
         final SalesforceLoginConfig loginConfig = LoginConfigHelper.getLoginConfig();
 
@@ -50,8 +42,8 @@ public class BulkApiJobIntegrationTest extends AbstractBulkApiTestBase {
                                         SalesforceEndpointConfig.APEX_QUERY_PARAM_PREFIX + "username", loginConfig.getUserName());
     }
 
-    @Test
-    public void testJobLifecycle() throws Exception {
+    @ParameterizedTest @MethodSource("getJobs")
+    public void testJobLifecycle(JobInfo jobInfo, String operationName) throws Exception {
         log.info("Testing Job lifecycle for {} of type {}", jobInfo.getOperation(), jobInfo.getContentType());
 
         // test create
@@ -59,19 +51,18 @@ public class BulkApiJobIntegrationTest extends AbstractBulkApiTestBase {
 
         // test get
         jobInfo = template().requestBody("direct:getJob", jobInfo, JobInfo.class);
-        assertSame("Job should be OPEN", JobStateEnum.OPEN, jobInfo.getState());
+        assertSame(JobStateEnum.OPEN, jobInfo.getState(), "Job should be OPEN");
 
         // test close
         jobInfo = template().requestBody("direct:closeJob", jobInfo, JobInfo.class);
-        assertSame("Job should be CLOSED", JobStateEnum.CLOSED, jobInfo.getState());
+        assertSame(JobStateEnum.CLOSED, jobInfo.getState(), "Job should be CLOSED");
 
         // test abort
         jobInfo = template().requestBody("direct:abortJob", jobInfo, JobInfo.class);
-        assertSame("Job should be ABORTED", JobStateEnum.ABORTED, jobInfo.getState());
+        assertSame(JobStateEnum.ABORTED, jobInfo.getState(), "Job should be ABORTED");
     }
 
     // test jobs for testJobLifecycle
-    @Parameters(name = "operation = {1}")
     public static Iterable<Object[]> getJobs() {
         final List<JobInfo> result = new ArrayList<>();
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiQueryIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiQueryIntegrationTest.java
index bba5de3..da07547 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiQueryIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiQueryIntegrationTest.java
@@ -25,19 +25,16 @@ import org.apache.camel.component.salesforce.api.dto.bulk.ContentType;
 import org.apache.camel.component.salesforce.api.dto.bulk.JobInfo;
 import org.apache.camel.component.salesforce.api.dto.bulk.OperationEnum;
 import org.apache.camel.component.salesforce.dto.generated.Merchandise__c;
-import org.junit.Test;
-import org.junit.experimental.theories.DataPoints;
-import org.junit.experimental.theories.Theory;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.EnumSource;
 
-public class BulkApiQueryIntegrationTest extends AbstractBulkApiTestBase {
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-    @DataPoints
-    public static ContentType[] getContentTypes() {
-        return new ContentType[] {ContentType.XML, ContentType.CSV};
-    }
+public class BulkApiQueryIntegrationTest extends AbstractBulkApiTestBase {
 
-    @Theory
-    @Test
+    @ParameterizedTest @EnumSource(names = { "XML", "CSV" })
     public void testQueryLifecycle(ContentType contentType) throws Exception {
         log.info("Testing Query lifecycle with {} content", contentType);
 
@@ -50,12 +47,12 @@ public class BulkApiQueryIntegrationTest extends AbstractBulkApiTestBase {
 
         // test createQuery
         BatchInfo batchInfo = template().requestBody("direct:createBatchQuery", jobInfo, BatchInfo.class);
-        assertNotNull("Null batch query", batchInfo);
-        assertNotNull("Null batch query id", batchInfo.getId());
+        assertNotNull(batchInfo, "Null batch query");
+        assertNotNull(batchInfo.getId(), "Null batch query id");
 
         // test getRequest
         InputStream requestStream = template().requestBody("direct:getRequest", batchInfo, InputStream.class);
-        assertNotNull("Null batch request", requestStream);
+        assertNotNull(requestStream, "Null batch request");
 
         // wait for batch to finish
         log.info("Waiting for query batch to finish...");
@@ -66,18 +63,18 @@ public class BulkApiQueryIntegrationTest extends AbstractBulkApiTestBase {
             batchInfo = getBatchInfo(batchInfo);
         }
         log.info("Query finished with state " + batchInfo.getState());
-        assertEquals("Query did not succeed", BatchStateEnum.COMPLETED, batchInfo.getState());
+        assertEquals(BatchStateEnum.COMPLETED, batchInfo.getState(), "Query did not succeed");
 
         // test getQueryResultList
         @SuppressWarnings("unchecked")
         List<String> resultIds = template().requestBody("direct:getQueryResultIds", batchInfo, List.class);
-        assertNotNull("Null query result ids", resultIds);
-        assertFalse("Empty result ids", resultIds.isEmpty());
+        assertNotNull(resultIds, "Null query result ids");
+        assertFalse(resultIds.isEmpty(), "Empty result ids");
 
         // test getQueryResult
         for (String resultId : resultIds) {
             InputStream results = template().requestBodyAndHeader("direct:getQueryResult", batchInfo, SalesforceEndpointConfig.RESULT_ID, resultId, InputStream.class);
-            assertNotNull("Null query result", results);
+            assertNotNull(results, "Null query result");
         }
 
         // close the test job
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/ChangeEventsConsumerIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/ChangeEventsConsumerIntegrationTest.java
index 1f12ca9..7f887c5 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/ChangeEventsConsumerIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/ChangeEventsConsumerIntegrationTest.java
@@ -27,16 +27,18 @@ import org.apache.camel.component.salesforce.api.dto.CreateSObjectResult;
 import org.apache.camel.component.salesforce.dto.generated.Account;
 import org.assertj.core.api.Assertions;
 import org.awaitility.Awaitility;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 /**
  * During integration tests setup, Salesforce has been configured to fire change
  * events for Account objects. This test merely uses some API calls to trigger
  * some change events, and then perform assertion on the received events.
  */
-@Category(Standalone.class)
+@Standalone
 public class ChangeEventsConsumerIntegrationTest extends AbstractSalesforceTestBase {
 
     private static final String ACCOUNT_NAME = "ChangeEventsConsumerIntegrationTest-TestAccount";
@@ -52,7 +54,7 @@ public class ChangeEventsConsumerIntegrationTest extends AbstractSalesforceTestB
         final Account account = new Account();
         account.setName(ACCOUNT_NAME);
         final CreateSObjectResult result = template.requestBody("salesforce:createSObject?sObjectName=Account", account, CreateSObjectResult.class);
-        Assert.assertNotNull(result.getId());
+        assertNotNull(result.getId());
 
         // Trigger an UPDATE event for an Account
         account.setDescription(ACCOUNT_DESCRIPTION);
@@ -67,27 +69,27 @@ public class ChangeEventsConsumerIntegrationTest extends AbstractSalesforceTestB
         });
 
         final Message createEvent = capturedChangeEvents.getExchanges().get(0).getIn();
-        Assert.assertNotNull(createEvent);
-        Assert.assertEquals("CREATE", createEvent.getHeader("CamelSalesforceChangeType"));
+        assertNotNull(createEvent);
+        assertEquals("CREATE", createEvent.getHeader("CamelSalesforceChangeType"));
         final Map<String, Object> createEventBody = createEvent.getBody(Map.class);
-        Assert.assertNotNull(createEventBody);
-        Assert.assertEquals(ACCOUNT_NAME, createEventBody.get("Name"));
-        Assert.assertFalse(createEventBody.containsKey("Description"));
+        assertNotNull(createEventBody);
+        assertEquals(ACCOUNT_NAME, createEventBody.get("Name"));
+        assertFalse(createEventBody.containsKey("Description"));
 
         final Message updateEvent = capturedChangeEvents.getExchanges().get(1).getIn();
-        Assert.assertNotNull(updateEvent);
-        Assert.assertEquals("UPDATE", updateEvent.getHeader("CamelSalesforceChangeType"));
+        assertNotNull(updateEvent);
+        assertEquals("UPDATE", updateEvent.getHeader("CamelSalesforceChangeType"));
         final Map<String, Object> updateEventBody = updateEvent.getBody(Map.class);
-        Assert.assertNotNull(updateEventBody);
-        Assert.assertFalse(updateEventBody.containsKey("Name"));
-        Assert.assertEquals(ACCOUNT_DESCRIPTION, updateEventBody.get("Description"));
+        assertNotNull(updateEventBody);
+        assertFalse(updateEventBody.containsKey("Name"));
+        assertEquals(ACCOUNT_DESCRIPTION, updateEventBody.get("Description"));
 
         final Message deleteEvent = capturedChangeEvents.getExchanges().get(2).getIn();
-        Assert.assertNotNull(deleteEvent);
-        Assert.assertEquals("DELETE", deleteEvent.getHeader("CamelSalesforceChangeType"));
+        assertNotNull(deleteEvent);
+        assertEquals("DELETE", deleteEvent.getHeader("CamelSalesforceChangeType"));
         final Map<String, Object> deleteEventBody = deleteEvent.getBody(Map.class);
-        Assert.assertFalse(deleteEventBody.containsKey("Name"));
-        Assert.assertFalse(deleteEventBody.containsKey("Description"));
+        assertFalse(deleteEventBody.containsKey("Name"));
+        assertFalse(deleteEventBody.containsKey("Description"));
     }
 
     @Override
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompositeApiBatchIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompositeApiBatchIntegrationTest.java
index ddb019e..0c8fe13 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompositeApiBatchIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompositeApiBatchIntegrationTest.java
@@ -24,7 +24,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import com.googlecode.junittoolbox.ParallelParameterized;
 import com.thoughtworks.xstream.annotations.XStreamImplicit;
 import org.apache.camel.CamelExecutionException;
 import org.apache.camel.builder.RouteBuilder;
@@ -36,13 +35,19 @@ import org.apache.camel.component.salesforce.api.dto.composite.SObjectBatchRespo
 import org.apache.camel.component.salesforce.api.dto.composite.SObjectBatchResult;
 import org.apache.camel.component.salesforce.api.utils.Version;
 import org.apache.camel.component.salesforce.dto.generated.Account;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.apache.camel.test.junit5.params.Parameter;
+import org.apache.camel.test.junit5.params.Parameterized;
+import org.apache.camel.test.junit5.params.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.runners.Parameterized.Parameters;
 
-@RunWith(ParallelParameterized.class)
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+@Parameterized
 public class CompositeApiBatchIntegrationTest extends AbstractSalesforceTestBase {
 
     public static class Accounts extends AbstractQueryRecordsBase {
@@ -61,18 +66,19 @@ public class CompositeApiBatchIntegrationTest extends AbstractSalesforceTestBase
 
     private static final Set<String> VERSIONS = new HashSet<>(Arrays.asList(SalesforceEndpointConfig.DEFAULT_VERSION, "34.0", "36.0", "37.0", "39.0"));
 
+    @Parameter
+    private final String version;
+
     private String accountId;
 
     private final String batchuri;
 
-    private final String version;
-
-    public CompositeApiBatchIntegrationTest(final String format, final String version) {
+    public CompositeApiBatchIntegrationTest(String format, String version) {
         this.version = version;
         batchuri = "salesforce:composite-batch?format=" + format;
     }
 
-    @After
+    @AfterEach
     public void removeRecords() {
         try {
             template.sendBody("salesforce:deleteSObject?sObjectName=Account&sObjectId=" + accountId, null);
@@ -83,7 +89,7 @@ public class CompositeApiBatchIntegrationTest extends AbstractSalesforceTestBase
         template.request("direct:deleteBatchAccounts", null);
     }
 
-    @Before
+    @BeforeEach
     public void setupRecords() {
         final Account account = new Account();
         account.setName("Composite API Batch");
@@ -94,7 +100,7 @@ public class CompositeApiBatchIntegrationTest extends AbstractSalesforceTestBase
     }
 
     @Test
-    public void shouldSubmitBatchUsingCompositeApi() {
+    public void shouldSubmitBatchUsingCompositeApi(String format, String version) {
         final SObjectBatch batch = new SObjectBatch(version);
 
         final Account updates = new Account();
@@ -111,7 +117,7 @@ public class CompositeApiBatchIntegrationTest extends AbstractSalesforceTestBase
 
         final SObjectBatchResponse response = template.requestBody(batchuri, batch, SObjectBatchResponse.class);
 
-        assertNotNull("Response should be provided", response);
+        assertNotNull(response, "Response should be provided");
 
         assertFalse(response.hasErrors());
     }
@@ -384,9 +390,9 @@ public class CompositeApiBatchIntegrationTest extends AbstractSalesforceTestBase
     SObjectBatchResponse testBatch(final SObjectBatch batch) {
         final SObjectBatchResponse response = template.requestBody(batchuri, batch, SObjectBatchResponse.class);
 
-        assertNotNull("Response should be provided", response);
+        assertNotNull(response, "Response should be provided");
 
-        assertFalse("Received errors in: " + response, response.hasErrors());
+        assertFalse(response.hasErrors(), "Received errors in: " + response);
 
         return response;
     }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompositeApiIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompositeApiIntegrationTest.java
index 5d3b355..57db37d 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompositeApiIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompositeApiIntegrationTest.java
@@ -23,7 +23,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import com.googlecode.junittoolbox.ParallelParameterized;
 import com.thoughtworks.xstream.annotations.XStreamImplicit;
 import org.apache.camel.CamelExecutionException;
 import org.apache.camel.builder.RouteBuilder;
@@ -35,14 +34,15 @@ import org.apache.camel.component.salesforce.api.dto.composite.SObjectCompositeR
 import org.apache.camel.component.salesforce.api.dto.composite.SObjectCompositeResult;
 import org.apache.camel.component.salesforce.api.utils.Version;
 import org.apache.camel.component.salesforce.dto.generated.Account;
+import org.apache.camel.test.junit5.params.Parameter;
+import org.apache.camel.test.junit5.params.Parameterized;
+import org.apache.camel.test.junit5.params.Parameters;
+import org.apache.camel.test.junit5.params.Test;
 import org.assertj.core.api.Assertions;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized.Parameters;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 
-@RunWith(ParallelParameterized.class)
+@Parameterized
 public class CompositeApiIntegrationTest extends AbstractSalesforceTestBase {
 
     public static class Accounts extends AbstractQueryRecordsBase {
@@ -61,18 +61,17 @@ public class CompositeApiIntegrationTest extends AbstractSalesforceTestBase {
 
     private static final Set<String> VERSIONS = new HashSet<>(Arrays.asList("38.0", "41.0"));
 
-    private String accountId;
+    @Parameter
+    private String format;
 
-    private final String compositeUri;
+    @Parameter(1)
+    private String version;
 
-    private final String version;
+    private String accountId;
 
-    public CompositeApiIntegrationTest(final String format, final String version) {
-        this.version = version;
-        compositeUri = "salesforce:composite?format=" + format;
-    }
+    private String compositeUri;
 
-    @After
+    @AfterEach
     public void removeRecords() {
         try {
             template.sendBody("salesforce:deleteSObject?sObjectName=Account&sObjectId=" + accountId, null);
@@ -83,8 +82,10 @@ public class CompositeApiIntegrationTest extends AbstractSalesforceTestBase {
         template.request("direct:deleteBatchAccounts", null);
     }
 
-    @Before
+    @BeforeEach
     public void setupRecords() {
+        compositeUri = "salesforce:composite?format=" + format;
+
         final Account account = new Account();
         account.setName("Composite API Batch");
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompositeApiTreeIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompositeApiTreeIntegrationTest.java
index f74ab99..afe6e5c 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompositeApiTreeIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompositeApiTreeIntegrationTest.java
@@ -18,24 +18,23 @@ package org.apache.camel.component.salesforce;
 
 import java.util.Arrays;
 
-import com.googlecode.junittoolbox.ParallelParameterized;
 import org.apache.camel.component.salesforce.api.dto.composite.SObjectTree;
 import org.apache.camel.component.salesforce.dto.generated.Account;
 import org.apache.camel.component.salesforce.dto.generated.Account_IndustryEnum;
 import org.apache.camel.component.salesforce.dto.generated.Asset;
 import org.apache.camel.component.salesforce.dto.generated.Contact;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized.Parameters;
+import org.apache.camel.test.junit5.params.Parameter;
+import org.apache.camel.test.junit5.params.Parameterized;
+import org.apache.camel.test.junit5.params.Parameters;
+import org.apache.camel.test.junit5.params.Test;
 
-@RunWith(ParallelParameterized.class)
-public class CompositeApiTreeIntegrationTest extends AbstractSalesforceTestBase {
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-    private final String format;
+@Parameterized
+public class CompositeApiTreeIntegrationTest extends AbstractSalesforceTestBase {
 
-    public CompositeApiTreeIntegrationTest(final String format) {
-        this.format = format;
-    }
+    @Parameter
+    private String format;
 
     @Test
     public void shouldSubmitTreeUsingCompositeApi() {
@@ -86,17 +85,17 @@ public class CompositeApiTreeIntegrationTest extends AbstractSalesforceTestBase
 
         final SObjectTree response = template.requestBody("salesforce:composite-tree?format=" + format, tree, SObjectTree.class);
 
-        assertNotNull("Response should be provided", response);
+        assertNotNull(response, "Response should be provided");
 
-        assertNotNull("First account should have Id set", simpleAccount.getId());
-        assertNotNull("President of the first account should have Id set", smith.getId());
-        assertNotNull("Vice president of the first account should have Id set", evans.getId());
+        assertNotNull(simpleAccount.getId(), "First account should have Id set");
+        assertNotNull(smith.getId(), "President of the first account should have Id set");
+        assertNotNull(evans.getId(), "Vice president of the first account should have Id set");
 
-        assertNotNull("Second account should have Id set", simpleAccount2.getId());
+        assertNotNull(simpleAccount2.getId(), "Second account should have Id set");
 
-        assertNotNull("Third account should have Id set", simpleAccount3.getId());
-        assertNotNull("Simple contact on third account should have Id set", contact.getId());
-        assertNotNull("Simple asset on the contact of the third account should have Id set", asset.getId());
+        assertNotNull(simpleAccount3.getId(), "Third account should have Id set");
+        assertNotNull(contact.getId(), "Simple contact on third account should have Id set");
+        assertNotNull(asset.getId(), "Simple asset on the contact of the third account should have Id set");
     }
 
     @Parameters(name = "format = {0}")
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompoundTypesIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompoundTypesIntegrationTest.java
index d85b0f6..20952a0 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompoundTypesIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/CompoundTypesIntegrationTest.java
@@ -19,10 +19,14 @@ package org.apache.camel.component.salesforce;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.salesforce.api.dto.CreateSObjectResult;
 import org.apache.camel.component.salesforce.dto.generated.Account;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 /**
  * Test support for Salesforce compound data types. This test requires a custom
  * field in the <code>Account</code> object called
@@ -70,7 +74,7 @@ public class CompoundTypesIntegrationTest extends AbstractSalesforceTestBase {
 
         CreateSObjectResult result = template().requestBody("direct:createSObject" + suffix, account, CreateSObjectResult.class);
         assertNotNull(result);
-        assertTrue("Create success", result.getSuccess());
+        assertTrue(result.getSuccess(), "Create success");
         LOG.debug("Create: " + result);
 
         try {
@@ -78,9 +82,9 @@ public class CompoundTypesIntegrationTest extends AbstractSalesforceTestBase {
             // get account with compound fields
             account = template().requestBody("direct:getSObject" + suffix, result.getId(), Account.class);
             assertNotNull(account);
-            assertNotNull("Billing Address", account.getBillingAddress());
-            assertNotNull("Shipping Address", account.getShippingAddress());
-            assertNotNull("Shipping Location", account.getShippingAddress());
+            assertNotNull(account.getBillingAddress(), "Billing Address");
+            assertNotNull(account.getShippingAddress(), "Shipping Address");
+            assertNotNull(account.getShippingAddress(), "Shipping Location");
 
             LOG.debug("Retrieved fields billing address: {}, shipping location: {}", account.getBillingAddress(), account.getShipping_Location__c());
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/HttpProxyIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/HttpProxyIntegrationTest.java
index f631b3a..f332a3f 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/HttpProxyIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/HttpProxyIntegrationTest.java
@@ -29,27 +29,28 @@ import javax.servlet.http.HttpServletResponse;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.salesforce.api.dto.Version;
 import org.apache.camel.component.salesforce.api.dto.Versions;
+import org.apache.camel.test.junit5.params.Parameter;
+import org.apache.camel.test.junit5.params.Parameterized;
+import org.apache.camel.test.junit5.params.Parameters;
+import org.apache.camel.test.junit5.params.Test;
 import org.eclipse.jetty.proxy.ConnectHandler;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.util.B64Code;
 import org.eclipse.jetty.util.StringUtil;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
+import org.junit.jupiter.api.BeforeAll;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static org.eclipse.jetty.http.HttpHeader.PROXY_AUTHENTICATE;
 import static org.eclipse.jetty.http.HttpHeader.PROXY_AUTHORIZATION;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * Test HTTP proxy configuration for Salesforce component.
  */
-@RunWith(Parameterized.class)
+@Parameterized
 public class HttpProxyIntegrationTest extends AbstractSalesforceTestBase {
 
     private static final Logger LOG = LoggerFactory.getLogger(HttpProxyIntegrationTest.class);
@@ -63,8 +64,8 @@ public class HttpProxyIntegrationTest extends AbstractSalesforceTestBase {
 
     private static final AtomicBoolean WENT_THROUGH_PROXY = new AtomicBoolean();
 
-    @Parameter(0)
-    public Consumer<SalesforceComponent> configurationMethod;
+    @Parameter
+    private Consumer<SalesforceComponent> configurationMethod;
 
     @Parameters
     public static Iterable<Consumer<SalesforceComponent>> methods() {
@@ -76,7 +77,7 @@ public class HttpProxyIntegrationTest extends AbstractSalesforceTestBase {
         doTestGetVersions("");
         doTestGetVersions("Xml");
 
-        assertTrue("Should have gone through the test proxy", WENT_THROUGH_PROXY.get());
+        assertTrue(WENT_THROUGH_PROXY.get(), "Should have gone through the test proxy");
     }
 
     @SuppressWarnings("unchecked")
@@ -94,7 +95,7 @@ public class HttpProxyIntegrationTest extends AbstractSalesforceTestBase {
         LOG.debug("Versions: {}", versions);
     }
 
-    @BeforeClass
+    @BeforeAll
     public static void setupServer() throws Exception {
         // start a local HTTP proxy using Jetty server
         server = new Server();
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/LimitsIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/LimitsIntegrationTest.java
index b51e63d..0dc7d9a 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/LimitsIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/LimitsIntegrationTest.java
@@ -19,7 +19,10 @@ package org.apache.camel.component.salesforce;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.salesforce.api.dto.Limits;
 import org.apache.camel.component.salesforce.api.dto.Limits.Usage;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class LimitsIntegrationTest extends AbstractSalesforceTestBase {
 
@@ -29,7 +32,7 @@ public class LimitsIntegrationTest extends AbstractSalesforceTestBase {
     public void shouldFetchLimitsForOrganization() {
         final Limits limits = template.requestBody("direct:test-limits", NOT_USED, Limits.class);
 
-        assertNotNull("Should fetch limits from Salesforce REST API", limits);
+        assertNotNull(limits, "Should fetch limits from Salesforce REST API");
 
         assertLimitIsFetched("ConcurrentAsyncGetReportInstances", limits.getConcurrentAsyncGetReportInstances());
 
@@ -79,9 +82,9 @@ public class LimitsIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     private static void assertLimitIsFetched(String property, Usage usage) {
-        assertNotNull("Usage for `" + property + "` should be defined", usage);
-        assertNotEquals("Max usage for `" + property + "` should be defined", 0, usage.getMax());
-        assertNotEquals("Remaining usage for `" + property + "` should be defined", 0, usage.getRemaining());
+        assertNotNull(usage, "Usage for `" + property + "` should be defined");
+        assertNotEquals(0, usage.getMax(), "Max usage for `" + property + "` should be defined");
+        assertNotEquals(0, usage.getRemaining(), "Remaining usage for `" + property + "` should be defined");
     }
 
     @Override
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/NotFoundIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/NotFoundIntegrationTest.java
index ac20977..c6b7ea5 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/NotFoundIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/NotFoundIntegrationTest.java
@@ -16,43 +16,33 @@
  */
 package org.apache.camel.component.salesforce;
 
-import java.util.Arrays;
-
-import com.googlecode.junittoolbox.ParallelParameterized;
 import org.apache.camel.CamelExecutionException;
 import org.apache.camel.component.salesforce.api.NoSuchSObjectException;
 import org.apache.camel.component.salesforce.dto.generated.Account;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
 
-@RunWith(ParallelParameterized.class)
-public class NotFoundIntegrationTest extends AbstractSalesforceTestBase {
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
-    @Parameter
-    public String format;
+public class NotFoundIntegrationTest extends AbstractSalesforceTestBase {
 
-    @Test
-    public void shouldNotReportNotFoundExceptionFromRestApiIfConfiguredNotTo() {
+    @ParameterizedTest @ValueSource(strings = { "XML", "JSON" })
+    public void shouldNotReportNotFoundExceptionFromRestApiIfConfiguredNotTo(String format) {
         final Account got = template.requestBody("salesforce:getSObjectWithId?sObjectName=Account&sObjectIdName=Name&format=" + format + "&notFoundBehaviour=NULL", "NonExistant",
                                                  Account.class);
 
-        assertNull("Expecting null when `notFoundBehaviour` is set to NULL", got);
+        assertNull(got, "Expecting null when `notFoundBehaviour` is set to NULL");
     }
 
-    @Test
-    public void shouldReportNotFoundExceptionFromRestApi() {
+    @ParameterizedTest @ValueSource(strings = { "XML", "JSON" })
+    public void shouldReportNotFoundExceptionFromRestApi(String format) {
         try {
             template.requestBody("salesforce:getSObjectWithId?sObjectName=Account&sObjectIdName=Name&format=" + format, "NonExistant", Account.class);
             fail("Expecting CamelExecutionException");
         } catch (final CamelExecutionException e) {
-            assertTrue("Expecting the cause of CamelExecutionException to be NoSuchSObjectException", e.getCause() instanceof NoSuchSObjectException);
+            assertTrue(e.getCause() instanceof NoSuchSObjectException, "Expecting the cause of CamelExecutionException to be NoSuchSObjectException");
         }
     }
-
-    @Parameters(name = "{0}")
-    public static Iterable<String> formats() {
-        return Arrays.asList("XML", "JSON");
-    }
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/PlatformEventsConsumerIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/PlatformEventsConsumerIntegrationTest.java
index 20643e6..7ac52c7 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/PlatformEventsConsumerIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/PlatformEventsConsumerIntegrationTest.java
@@ -26,12 +26,11 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.salesforce.api.dto.PlatformEvent;
 import org.assertj.core.api.Assertions;
 import org.awaitility.Awaitility;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.entry;
 
-@Category(Standalone.class)
+@Standalone
 public class PlatformEventsConsumerIntegrationTest extends AbstractSalesforceTestBase {
 
     @Test
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RawPayloadTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RawPayloadTest.java
index e892b1e..d920c48 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RawPayloadTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RawPayloadTest.java
@@ -29,19 +29,20 @@ import okhttp3.mockwebserver.MockResponse;
 import okhttp3.mockwebserver.MockWebServer;
 import okhttp3.mockwebserver.RecordedRequest;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.junit5.params.Parameter;
+import org.apache.camel.test.junit5.params.Parameterized;
+import org.apache.camel.test.junit5.params.Parameters;
+import org.apache.camel.test.junit5.params.Test;
 import org.eclipse.jetty.http.HttpHeader;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
-
-@Category(Standalone.class)
-@RunWith(Parameterized.class)
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+@Standalone
+@Parameterized
 public class RawPayloadTest extends AbstractSalesforceTestBase {
 
     @Parameter
@@ -82,7 +83,7 @@ public class RawPayloadTest extends AbstractSalesforceTestBase {
         context().addComponent("salesforce", component);
     }
 
-    @AfterClass
+    @AfterAll
     public static void shutDownServer() throws IOException {
         // shutdown mock server
         if (server != null) {
@@ -90,7 +91,7 @@ public class RawPayloadTest extends AbstractSalesforceTestBase {
         }
     }
 
-    @BeforeClass
+    @BeforeAll
     public static void startServer() throws IOException {
 
         // create mock server
@@ -113,7 +114,7 @@ public class RawPayloadTest extends AbstractSalesforceTestBase {
         loginUrl = server.url("");
     }
 
-    @Before
+    @BeforeEach
     public void setupRequestResponse() {
         if (!format.equals(lastFormat)) {
             // expected response and test request
@@ -137,8 +138,8 @@ public class RawPayloadTest extends AbstractSalesforceTestBase {
     @Test
     public void testRestApi() throws Exception {
         final String responseBody = template().requestBodyAndHeaders(endpointUri, requestBody, headers, String.class);
-        assertNotNull("Null response for endpoint " + endpointUri, responseBody);
-        assertEquals("Unexpected response for endpoint " + endpointUri, expectedResponse, responseBody);
+        assertNotNull(responseBody, "Null response for endpoint " + endpointUri);
+        assertEquals(expectedResponse, responseBody, "Unexpected response for endpoint " + endpointUri);
     }
 
     @Override
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RecentIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RecentIntegrationTest.java
index 8e679a3..94f8004 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RecentIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RecentIntegrationTest.java
@@ -25,12 +25,13 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.salesforce.api.dto.AbstractQueryRecordsBase;
 import org.apache.camel.component.salesforce.api.dto.RecentItem;
 import org.apache.camel.component.salesforce.dto.generated.Account;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-@Category(Standalone.class)
+import static org.apache.camel.test.junit5.TestSupport.assertListSize;
+
+@Standalone
 public class RecentIntegrationTest extends AbstractSalesforceTestBase {
 
     public static class Accounts extends AbstractQueryRecordsBase {
@@ -49,12 +50,12 @@ public class RecentIntegrationTest extends AbstractSalesforceTestBase {
 
     private static final Object NOT_USED = null;
 
-    @After
+    @AfterEach
     public void deleteRecords() {
         template.sendBody("direct:delete-recent", NOT_USED);
     }
 
-    @Before
+    @BeforeEach
     public void setupTenRecentItems() {
         final List<Account> accounts = IntStream.range(0, 10).mapToObj(RecentIntegrationTest::account).collect(Collectors.toList());
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java
index e5181dc..8788a71 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java
@@ -51,23 +51,27 @@ import org.apache.camel.component.salesforce.dto.generated.QueryRecordsContact;
 import org.apache.camel.component.salesforce.dto.generated.QueryRecordsLine_Item__c;
 import org.apache.camel.component.salesforce.dto.generated.Task;
 import org.apache.camel.support.jsse.SSLContextParameters;
+import org.apache.camel.test.junit5.params.Parameter;
+import org.apache.camel.test.junit5.params.Parameterized;
+import org.apache.camel.test.junit5.params.Test;
 import org.eclipse.jetty.client.HttpClient;
 import org.eclipse.jetty.client.api.ContentResponse;
 import org.eclipse.jetty.client.api.Request;
 import org.eclipse.jetty.http.HttpMethod;
 import org.eclipse.jetty.http.HttpStatus;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
-
-@Category(Standalone.class)
-@RunWith(Parameterized.class)
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+
+@Standalone
+@Parameterized
 public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
 
     /**
@@ -116,13 +120,13 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     private static final AtomicInteger TEST_LINE_ITEM_ID = new AtomicInteger(1);
 
     @Parameter
-    public String format;
+    protected String format;
 
     private String merchandiseId;
     private String accountId;
     private String contactId;
 
-    @After
+    @AfterEach
     public void removeData() {
         template.request("salesforce:deleteSObject?sObjectName=Merchandise__c&sObjectId=" + merchandiseId, (Processor) e -> {
             // NOOP
@@ -132,7 +136,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
         });
     }
 
-    @Before
+    @BeforeEach
     public void setupData() {
         final Merchandise__c merchandise = new Merchandise__c();
         merchandise.setName("Test Merchandise");
@@ -175,7 +179,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testApexCall() throws Exception {
+    public void testApexCall(String format) throws Exception {
         // request merchandise with id in URI template
         Merchandise__c merchandise = template().requestBodyAndHeader("direct:apexCallGet", null, "id", merchandiseId, Merchandise__c.class);
         assertNotNull(merchandise);
@@ -197,7 +201,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testCreateUpdateDelete() throws Exception {
+    public void testCreateUpdateDelete(String format) throws Exception {
         final Merchandise__c merchandise = new Merchandise__c();
         merchandise.setName("Wee Wee Wee Plane");
         merchandise.setDescription__c("Microlite plane");
@@ -205,7 +209,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
         merchandise.setTotal_Inventory__c(50.0);
         final CreateSObjectResult result = template().requestBody("direct:createSObject", merchandise, CreateSObjectResult.class);
         assertNotNull(result);
-        assertTrue("Create success", result.getSuccess());
+        assertTrue(result.getSuccess(), "Create success");
 
         // test JSON update
         // make the plane cheaper
@@ -222,14 +226,14 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testRelationshipCreateDelete() throws Exception {
+    public void testRelationshipCreateDelete(String format) throws Exception {
         final Account account = new Account();
         account.setName("Account 1");
         String accountExternalId = UUID.randomUUID().toString();
         account.setExternal_Id__c(accountExternalId);
         final CreateSObjectResult accountResult = template().requestBody("direct:createSObject", account, CreateSObjectResult.class);
         assertNotNull(accountResult);
-        assertTrue("Create success", accountResult.getSuccess());
+        assertTrue(accountResult.getSuccess(), "Create success");
 
         final Account accountRef = new Account();
         accountRef.setExternal_Id__c(accountExternalId);
@@ -238,7 +242,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
         contact.setLastName("RelationshipTest");
         final CreateSObjectResult contactResult = template().requestBody("direct:createSObject", contact, CreateSObjectResult.class);
         assertNotNull(contactResult);
-        assertTrue("Create success", contactResult.getSuccess());
+        assertTrue(contactResult.getSuccess(), "Create success");
 
         // delete the Contact
         template().requestBodyAndHeader("direct:deleteSObject", contactResult.getId(), "sObjectName", "Contact");
@@ -248,13 +252,13 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testFieldsToNull() throws Exception {
+    public void testFieldsToNull(String format) throws Exception {
         final Account account = new Account();
         account.setName("Account 1");
         account.setSite("test site");
         final CreateSObjectResult accountResult = template().requestBody("direct:createSObject", account, CreateSObjectResult.class);
         assertNotNull(accountResult);
-        assertTrue("Create success", accountResult.getSuccess());
+        assertTrue(accountResult.getSuccess(), "Create success");
 
         account.setId(accountResult.getId());
         account.setSite(null);
@@ -271,12 +275,12 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testRelationshipUpdate() throws Exception {
+    public void testRelationshipUpdate(String format) throws Exception {
         final Contact contact = new Contact();
         contact.setLastName("RelationshipTest");
         final CreateSObjectResult contactResult = template().requestBody("direct:createSObject", contact, CreateSObjectResult.class);
         assertNotNull(contactResult);
-        assertTrue("Create success", contactResult.getSuccess());
+        assertTrue(contactResult.getSuccess(), "Create success");
 
         final Account account = new Account();
         account.setName("Account 1");
@@ -284,7 +288,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
         account.setExternal_Id__c(accountExternalId);
         final CreateSObjectResult accountResult = template().requestBody("direct:createSObject", account, CreateSObjectResult.class);
         assertNotNull(accountResult);
-        assertTrue("Create success", accountResult.getSuccess());
+        assertTrue(accountResult.getSuccess(), "Create success");
 
         final Account accountRef = new Account();
         accountRef.setExternal_Id__c(accountExternalId);
@@ -302,13 +306,13 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testCreateUpdateDeleteTasks() throws Exception {
+    public void testCreateUpdateDeleteTasks(String format) throws Exception {
         final Task taken = new Task();
         taken.setDescription("Task1");
         taken.setActivityDate(ZonedDateTime.of(1700, 1, 2, 3, 4, 5, 6, ZoneId.systemDefault()));
         final CreateSObjectResult result = template().requestBody("direct:createSObject", taken, CreateSObjectResult.class);
         assertNotNull(result);
-        assertTrue("Create success", result.getSuccess());
+        assertTrue(result.getSuccess(), "Create success");
 
         // test JSON update
         // make the plane cheaper
@@ -322,7 +326,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testCreateUpdateDeleteWithId() throws Exception {
+    public void testCreateUpdateDeleteWithId(String format) throws Exception {
         Line_Item__c lineItem = new Line_Item__c();
         final String lineItemId = String.valueOf(TEST_LINE_ITEM_ID.incrementAndGet());
         lineItem.setName(lineItemId);
@@ -360,17 +364,17 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testGetBasicInfo() throws Exception {
+    public void testGetBasicInfo(String format) throws Exception {
         final SObjectBasicInfo objectBasicInfo = template().requestBody("direct:getBasicInfo", null, SObjectBasicInfo.class);
         assertNotNull(objectBasicInfo);
 
         // set test Id for testGetSObject
-        assertFalse("RecentItems is empty", objectBasicInfo.getRecentItems().isEmpty());
+        assertFalse(objectBasicInfo.getRecentItems().isEmpty(), "RecentItems is empty");
         merchandiseId = objectBasicInfo.getRecentItems().get(0).getId();
     }
 
     @Test
-    public void testGetBlobField() throws Exception {
+    public void testGetBlobField(String format) throws Exception {
         // get document with Name "Test Document"
         final HashMap<String, Object> headers = new HashMap<>();
         headers.put(SalesforceEndpointConfig.SOBJECT_NAME, "Document");
@@ -386,28 +390,25 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testGetDescription() throws Exception {
-
+    public void testGetDescription(String format) throws Exception {
         final SObjectDescription sObjectDescription = template().requestBody("direct:getDescription", null, SObjectDescription.class);
         assertNotNull(sObjectDescription);
     }
 
     @Test
-    public void testGetGlobalObjects() throws Exception {
-
+    public void testGetGlobalObjects(String format) throws Exception {
         final GlobalObjects globalObjects = template().requestBody("direct:getGlobalObjects", null, GlobalObjects.class);
         assertNotNull(globalObjects);
     }
 
     @Test
-    public void testGetResources() throws Exception {
-
+    public void testGetResources(String format) throws Exception {
         final RestResources resources = template().requestBody("direct:getResources", null, RestResources.class);
         assertNotNull(resources);
     }
 
     @Test
-    public void testGetSObject() throws Exception {
+    public void testGetSObject(String format) throws Exception {
         final Merchandise__c merchandise = template().requestBody("direct:getSObject", merchandiseId, Merchandise__c.class);
         assertNotNull(merchandise);
 
@@ -416,7 +417,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testGetVersions() throws Exception {
+    public void testGetVersions(String format) throws Exception {
         // test getVersions doesn't need a body
         // assert expected result
         final Object o = template().requestBody("direct:getVersions", (Object)null);
@@ -432,25 +433,25 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testQuery() throws Exception {
+    public void testQuery(String format) throws Exception {
         final QueryRecordsLine_Item__c queryRecords = template().requestBody("direct:query", null, QueryRecordsLine_Item__c.class);
         assertNotNull(queryRecords);
     }
 
     @Test
-    public void testParentRelationshipQuery() throws Exception {
+    public void testParentRelationshipQuery(String format) throws Exception {
         try {
             createAccountAndContact();
             final QueryRecordsContact queryRecords = template().requestBody("direct:parentRelationshipQuery", null, QueryRecordsContact.class);
             Account account = queryRecords.getRecords().get(0).getAccount();
-            assertNotNull("Account was null", account);
+            assertNotNull(account, "Account was null");
         } finally {
             deleteAccountAndContact();
         }
     }
 
     @Test
-    public void testChildRelationshipQuery() throws Exception {
+    public void testChildRelationshipQuery(String format) throws Exception {
         try {
             createAccountAndContact();
             final QueryRecordsAccount queryRecords = template().requestBody("direct:childRelationshipQuery", null, QueryRecordsAccount.class);
@@ -464,13 +465,13 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testQueryAll() throws Exception {
+    public void testQueryAll(String format) throws Exception {
         final QueryRecordsLine_Item__c queryRecords = template().requestBody("direct:queryAll", null, QueryRecordsLine_Item__c.class);
         assertNotNull(queryRecords);
     }
 
     @Test
-    public void testRetry() throws Exception {
+    public void testRetry(String format) throws Exception {
         final SalesforceComponent sf = context().getComponent("salesforce", SalesforceComponent.class);
         final String accessToken = sf.getSession().getAccessToken();
 
@@ -486,11 +487,11 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
         final ContentResponse response = logoutGet.send();
         assertEquals(HttpStatus.OK_200, response.getStatus());
 
-        testGetGlobalObjects();
+        testGetGlobalObjects(format);
     }
 
     @Test
-    public void testRetryFailure() throws Exception {
+    public void testRetryFailure(String format) throws Exception {
         final SalesforceComponent sf = context().getComponent("salesforce", SalesforceComponent.class);
         final String accessToken = sf.getSession().getAccessToken();
 
@@ -512,12 +513,12 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
         sf.getLoginConfig().setPassword("bad_password");
 
         try {
-            testGetGlobalObjects();
+            testGetGlobalObjects(format);
             fail("Expected CamelExecutionException!");
         } catch (final CamelExecutionException e) {
             if (e.getCause() instanceof SalesforceException) {
                 final SalesforceException cause = (SalesforceException)e.getCause();
-                assertEquals("Expected 400 on authentication retry failure", HttpStatus.BAD_REQUEST_400, cause.getStatusCode());
+                assertEquals(HttpStatus.BAD_REQUEST_400, cause.getStatusCode(), "Expected 400 on authentication retry failure");
             } else {
                 fail("Expected SalesforceException!");
             }
@@ -528,14 +529,14 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testSearch() throws Exception {
+    public void testSearch(String format) throws Exception {
 
         final Object obj = template().requestBody("direct:search", (Object)null);
         assertNotNull(obj);
     }
 
     @Test
-    public void testStatus300() throws Exception {
+    public void testStatus300(String format) throws Exception {
         // get test merchandise
         // note that the header value overrides sObjectFields in endpoint
         final Merchandise__c merchandise = template().requestBodyAndHeader("direct:getSObject", merchandiseId, "sObjectFields", "Name,Description__c,Price__c,Total_Inventory__c",
@@ -576,7 +577,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testStatus400() throws Exception {
+    public void testStatus400(String format) throws Exception {
         // get test merchandise
         // note that the header value overrides sObjectFields in endpoint
         final Merchandise__c merchandise = template().requestBodyAndHeader("direct:getSObject", merchandiseId, "sObjectFields", "Description__c,Price__c", Merchandise__c.class);
@@ -606,7 +607,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testStatus404() {
+    public void testStatus404(String format) throws Exception {
         // try to get a non existent SObject
         try {
             template().requestBody("direct:getSObject", "ILLEGAL_ID", Merchandise__c.class);
@@ -621,7 +622,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
-    public void testFetchingGlobalObjects() {
+    public void testFetchingGlobalObjects(String format) throws Exception {
         final GlobalObjects globalObjects = template().requestBody("salesforce:getGlobalObjects", null, GlobalObjects.class);
 
         assertNotNull(globalObjects);
@@ -713,7 +714,6 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
         };
     }
 
-    @Parameters(name = "format = {0}")
     public static Iterable<String> parameters() {
         return Arrays.asList("XML", "JSON");
     }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionIntegrationTest.java
index 5a87262..9d42f20 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionIntegrationTest.java
@@ -22,10 +22,13 @@ import java.util.Map;
 import org.apache.camel.Component;
 import org.apache.camel.component.extension.ComponentVerifierExtension;
 import org.apache.camel.component.salesforce.api.SalesforceException;
-import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.util.ObjectHelper;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class SalesforceComponentVerifierExtensionIntegrationTest extends CamelTestSupport {
 
@@ -76,7 +79,7 @@ public class SalesforceComponentVerifierExtensionIntegrationTest extends CamelTe
         Map<String, Object> parameters = getParameters();
         ComponentVerifierExtension.Result result = getExtension().verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters);
 
-        Assert.assertEquals(ComponentVerifierExtension.Result.Status.OK, result.getStatus());
+        assertEquals(ComponentVerifierExtension.Result.Status.OK, result.getStatus());
     }
 
     @Test
@@ -86,18 +89,18 @@ public class SalesforceComponentVerifierExtensionIntegrationTest extends CamelTe
 
         ComponentVerifierExtension.Result result = getExtension().verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters);
 
-        Assert.assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
-        Assert.assertEquals(2, result.getErrors().size());
+        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
+        assertEquals(2, result.getErrors().size());
 
         // Exception
-        Assert.assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.EXCEPTION, result.getErrors().get(0).getCode());
-        Assert.assertNotNull(result.getErrors().get(0).getDetails().get(ComponentVerifierExtension.VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE));
-        Assert.assertTrue(result.getErrors().get(0).getDetails()
+        assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.EXCEPTION, result.getErrors().get(0).getCode());
+        assertNotNull(result.getErrors().get(0).getDetails().get(ComponentVerifierExtension.VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE));
+        assertTrue(result.getErrors().get(0).getDetails()
             .get(ComponentVerifierExtension.VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE) instanceof SalesforceException);
-        Assert.assertEquals(400, result.getErrors().get(0).getDetails().get(ComponentVerifierExtension.VerificationError.HttpAttribute.HTTP_CODE));
+        assertEquals(400, result.getErrors().get(0).getDetails().get(ComponentVerifierExtension.VerificationError.HttpAttribute.HTTP_CODE));
 
         // Salesforce Error
-        Assert.assertEquals("invalid_grant", result.getErrors().get(1).getDetail("salesforce_code"));
+        assertEquals("invalid_grant", result.getErrors().get(1).getDetail("salesforce_code"));
     }
 
     @Test
@@ -108,19 +111,19 @@ public class SalesforceComponentVerifierExtensionIntegrationTest extends CamelTe
 
         ComponentVerifierExtension.Result result = getExtension().verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters);
 
-        Assert.assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
+        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
 
-        Assert.assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
-        Assert.assertEquals(2, result.getErrors().size());
+        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
+        assertEquals(2, result.getErrors().size());
 
         // Exception
-        Assert.assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.EXCEPTION, result.getErrors().get(0).getCode());
-        Assert.assertNotNull(result.getErrors().get(0).getDetails().get(ComponentVerifierExtension.VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE));
-        Assert.assertTrue(result.getErrors().get(0).getDetails()
+        assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.EXCEPTION, result.getErrors().get(0).getCode());
+        assertNotNull(result.getErrors().get(0).getDetails().get(ComponentVerifierExtension.VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE));
+        assertTrue(result.getErrors().get(0).getDetails()
             .get(ComponentVerifierExtension.VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE) instanceof SalesforceException);
-        Assert.assertEquals(400, result.getErrors().get(0).getDetails().get(ComponentVerifierExtension.VerificationError.HttpAttribute.HTTP_CODE));
+        assertEquals(400, result.getErrors().get(0).getDetails().get(ComponentVerifierExtension.VerificationError.HttpAttribute.HTTP_CODE));
 
         // Salesforce Error
-        Assert.assertEquals("invalid_client_id", result.getErrors().get(1).getDetail("salesforce_code"));
+        assertEquals("invalid_client_id", result.getErrors().get(1).getDetail("salesforce_code"));
     }
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionTest.java
index 2ae090b..e7f3a73 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionTest.java
@@ -21,9 +21,10 @@ import java.util.Map;
 
 import org.apache.camel.Component;
 import org.apache.camel.component.extension.ComponentVerifierExtension;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Assert;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class SalesforceComponentVerifierExtensionTest extends CamelTestSupport {
 
@@ -53,7 +54,7 @@ public class SalesforceComponentVerifierExtensionTest extends CamelTestSupport {
 
         ComponentVerifierExtension.Result result = getExtension().verify(ComponentVerifierExtension.Scope.PARAMETERS, parameters);
 
-        Assert.assertEquals(ComponentVerifierExtension.Result.Status.OK, result.getStatus());
+        assertEquals(ComponentVerifierExtension.Result.Status.OK, result.getStatus());
     }
 
     @Test
@@ -65,7 +66,7 @@ public class SalesforceComponentVerifierExtensionTest extends CamelTestSupport {
 
         ComponentVerifierExtension.Result result = getExtension().verify(ComponentVerifierExtension.Scope.PARAMETERS, parameters);
 
-        Assert.assertEquals(ComponentVerifierExtension.Result.Status.OK, result.getStatus());
+        assertEquals(ComponentVerifierExtension.Result.Status.OK, result.getStatus());
     }
 
     @Test
@@ -77,11 +78,11 @@ public class SalesforceComponentVerifierExtensionTest extends CamelTestSupport {
 
         ComponentVerifierExtension.Result result = getExtension().verify(ComponentVerifierExtension.Scope.PARAMETERS, parameters);
 
-        Assert.assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
-        Assert.assertEquals(3, result.getErrors().size());
+        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
+        assertEquals(3, result.getErrors().size());
 
-        Assert.assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.ILLEGAL_PARAMETER_GROUP_COMBINATION, result.getErrors().get(0).getCode());
-        Assert.assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.ILLEGAL_PARAMETER_GROUP_COMBINATION, result.getErrors().get(1).getCode());
-        Assert.assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.ILLEGAL_PARAMETER_GROUP_COMBINATION, result.getErrors().get(2).getCode());
+        assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.ILLEGAL_PARAMETER_GROUP_COMBINATION, result.getErrors().get(0).getCode());
+        assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.ILLEGAL_PARAMETER_GROUP_COMBINATION, result.getErrors().get(1).getCode());
+        assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.ILLEGAL_PARAMETER_GROUP_COMBINATION, result.getErrors().get(2).getCode());
     }
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
index 9d77a8a..be94aea 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
@@ -32,11 +32,11 @@ import org.apache.camel.spi.ClassResolver;
 import org.cometd.bayeux.Message;
 import org.cometd.bayeux.client.ClientSessionChannel;
 import org.cometd.common.HashMapMessage;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
@@ -47,7 +47,7 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 
-@RunWith(MockitoJUnitRunner.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 public class SalesforceConsumerTest {
 
     public static class AccountUpdates {
@@ -96,7 +96,7 @@ public class SalesforceConsumerTest {
     @Mock
     private Map<String, Object> mockChangeEventMap;
 
-    @Before
+    @BeforeEach
     public void setupMocks() {
         when(endpoint.getConfiguration()).thenReturn(configuration);
         when(endpoint.createExchange()).thenReturn(exchange);
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceEndpointTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceEndpointTest.java
index 07c3fd0..0b6246a 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceEndpointTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceEndpointTest.java
@@ -21,8 +21,9 @@ import java.util.stream.Collectors;
 
 import org.apache.camel.component.salesforce.internal.OperationName;
 import org.apache.camel.spi.UriPath;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 
 public class SalesforceEndpointTest {
 
@@ -36,9 +37,10 @@ public class SalesforceEndpointTest {
         String[] operationNamesInEnum = Arrays.stream(OperationName.values()).map(OperationName::value).toArray(length -> new String[length]);
         Arrays.sort(operationNamesInEnum);
 
-        Assert.assertArrayEquals("All operation values, the String value returned from OperationName::value, must be defined in the @UriPath "
+        assertArrayEquals(operationNamesInEnum, operationNamesInAnnotation,
+                "All operation values, the String value returned from OperationName::value, must be defined in the @UriPath "
                                  + "enum parameter of the operationName field in SalesforceEndpoint, set the enums parameter to:\n"
-                                 + Arrays.stream(operationNamesInEnum).collect(Collectors.joining(",")), operationNamesInEnum, operationNamesInAnnotation);
+                                 + Arrays.stream(operationNamesInEnum).collect(Collectors.joining(",")));
     }
 
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceHeadersIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceHeadersIntegrationTest.java
index 2692830..91be3af 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceHeadersIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceHeadersIntegrationTest.java
@@ -22,7 +22,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.component.salesforce.api.dto.GlobalObjects;
 import org.assertj.core.api.Assertions;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 public class SalesforceHeadersIntegrationTest extends AbstractSalesforceTestBase {
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceJwtBearerTokenFlowIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceJwtBearerTokenFlowIntegrationTest.java
index be82b70..010279a 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceJwtBearerTokenFlowIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceJwtBearerTokenFlowIntegrationTest.java
@@ -18,10 +18,11 @@ package org.apache.camel.component.salesforce;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.salesforce.api.dto.Limits;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 import static org.junit.Assume.assumeNotNull;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class SalesforceJwtBearerTokenFlowIntegrationTest extends CamelTestSupport {
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceLoginConfigTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceLoginConfigTest.java
index 2f74c5d..076485d 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceLoginConfigTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceLoginConfigTest.java
@@ -17,9 +17,9 @@
 package org.apache.camel.component.salesforce;
 
 import org.apache.camel.support.jsse.KeyStoreParameters;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class SalesforceLoginConfigTest {
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceMetaDataExtensionTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceMetaDataExtensionTest.java
index 00a2f96..3d054be 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceMetaDataExtensionTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceMetaDataExtensionTest.java
@@ -36,7 +36,7 @@ import org.apache.camel.component.salesforce.api.utils.JsonUtils;
 import org.apache.camel.component.salesforce.internal.client.RestClient;
 import org.apache.camel.component.salesforce.internal.client.RestClient.ResponseCallback;
 import org.apache.camel.impl.DefaultCamelContext;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.mockito.stubbing.Answer;
 
 import static org.assertj.core.api.Assertions.assertThat;
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java
index 8cb8c56..3063245 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java
@@ -16,10 +16,13 @@
  */
 package org.apache.camel.component.salesforce;
 
+import org.junit.jupiter.api.Tag;
+
 /**
  * JUnit group tag interface for tests that need to be run standalone, i.e. not
  * in parallel with other tests.
  */
-public interface Standalone {
+@Tag("standalone")
+public @interface Standalone {
     // tag interface
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/StreamingApiIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/StreamingApiIntegrationTest.java
index 63efb10..69bb3e0 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/StreamingApiIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/StreamingApiIntegrationTest.java
@@ -24,7 +24,12 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.component.salesforce.api.dto.CreateSObjectResult;
 import org.apache.camel.component.salesforce.dto.generated.Merchandise__c;
 import org.apache.camel.component.salesforce.internal.dto.QueryRecordsPushTopic;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class StreamingApiIntegrationTest extends AbstractSalesforceTestBase {
 
@@ -48,7 +53,7 @@ public class StreamingApiIntegrationTest extends AbstractSalesforceTestBase {
         merchandise.setPrice__c(9.99);
         merchandise.setTotal_Inventory__c(1000.0);
         CreateSObjectResult result = template().requestBody("direct:upsertSObject", merchandise, CreateSObjectResult.class);
-        assertTrue("Merchandise test record not created", result == null || result.getSuccess());
+        assertTrue(result == null || result.getSuccess(), "Merchandise test record not created");
 
         try {
             // wait for Salesforce notification
@@ -56,20 +61,20 @@ public class StreamingApiIntegrationTest extends AbstractSalesforceTestBase {
             final Message in = mock.getExchanges().get(0).getIn();
             merchandise = in.getMandatoryBody(Merchandise__c.class);
 
-            assertNotNull("Missing event body", merchandise);
+            assertNotNull(merchandise, "Missing event body");
             log.info("Merchandise notification: {}", merchandise);
-            assertNotNull("Missing field Id", merchandise.getId());
-            assertNotNull("Missing field Name", merchandise.getName());
+            assertNotNull(merchandise.getId(), "Missing field Id");
+            assertNotNull(merchandise.getName(), "Missing field Name");
 
             // validate dynamic message headers
-            assertNotNull("Missing header CamelSalesforceClientId", in.getHeader("CamelSalesforceClientId"));
-            assertNotNull("Missing header CamelSalesforceEventType", in.getHeader("CamelSalesforceEventType"));
-            assertNotNull("Missing header CamelSalesforceCreatedDate", in.getHeader("CamelSalesforceCreatedDate"));
+            assertNotNull(in.getHeader("CamelSalesforceClientId"), "Missing header CamelSalesforceClientId");
+            assertNotNull(in.getHeader("CamelSalesforceEventType"), "Missing header CamelSalesforceEventType");
+            assertNotNull(in.getHeader("CamelSalesforceCreatedDate"), "Missing header CamelSalesforceCreatedDate");
 
             // validate raw payload message
             rawPayloadMock.assertIsSatisfied();
             final Message inRaw = rawPayloadMock.getExchanges().get(0).getIn();
-            assertTrue("Expected String message body for Raw Payload", inRaw.getBody() instanceof String);
+            assertTrue(inRaw.getBody() instanceof String, "Expected String message body for Raw Payload");
 
         } finally {
             // remove the test record
@@ -78,7 +83,7 @@ public class StreamingApiIntegrationTest extends AbstractSalesforceTestBase {
             // remove the test topic
             // find it using SOQL first
             QueryRecordsPushTopic records = template().requestBody("direct:query", null, QueryRecordsPushTopic.class);
-            assertEquals("Test topic not found", 1, records.getTotalSize());
+            assertEquals(1, records.getTotalSize(), "Test topic not found");
             assertNull(template().requestBody("direct:deleteSObject", records.getRecords().get(0)));
 
         }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistJsonTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistJsonTest.java
index 386c10c..b6c0335 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistJsonTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistJsonTest.java
@@ -20,11 +20,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
 import org.apache.camel.component.salesforce.dto.generated.MSPTest;
 import org.apache.camel.component.salesforce.dto.generated.StringMSPTest;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 public class MultiSelectPicklistJsonTest {
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistXmlTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistXmlTest.java
index 90ac5b7..f455c7c 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistXmlTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistXmlTest.java
@@ -19,11 +19,11 @@ package org.apache.camel.component.salesforce.api;
 import com.thoughtworks.xstream.XStream;
 import org.apache.camel.component.salesforce.api.utils.XStreamUtils;
 import org.apache.camel.component.salesforce.dto.generated.MSPTest;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 public class MultiSelectPicklistXmlTest {
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/LimitsTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/LimitsTest.java
index e2ca3b9..3a615b8 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/LimitsTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/LimitsTest.java
@@ -31,20 +31,19 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.camel.component.salesforce.api.dto.Limits.Usage;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsInstanceOf.instanceOf;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 public class LimitsTest {
 
     @Test
     public void shouldBeKnownIfDefined() {
-        assertFalse("Known usage must not declare itself as unknown", new Usage(1, 2).isUnknown());
+        assertFalse(new Usage(1, 2).isUnknown(), "Known usage must not declare itself as unknown");
     }
 
     @Test
@@ -58,9 +57,9 @@ public class LimitsTest {
         final Limits limits = (Limits)read;
 
         final Usage dailyApiRequests = limits.getDailyApiRequests();
-        assertFalse("Should have some usage present", dailyApiRequests.isUnknown());
-        assertFalse("Per application usage should be present", dailyApiRequests.getPerApplicationUsage().isEmpty());
-        assertNotNull("'Camel Salesman' application usage should be present", dailyApiRequests.forApplication("Camel Salesman"));
+        assertFalse(dailyApiRequests.isUnknown(), "Should have some usage present");
+        assertFalse(dailyApiRequests.getPerApplicationUsage().isEmpty(), "Per application usage should be present");
+        assertNotNull(dailyApiRequests.forApplication("Camel Salesman"), "'Camel Salesman' application usage should be present");
     }
 
     @Test
@@ -93,6 +92,6 @@ public class LimitsTest {
 
     @Test
     public void usageShouldBeUnknownIfUnknown() {
-        assertTrue("Unknown usage must declare itself as such", Usage.UNKNOWN.isUnknown());
+        assertTrue(Usage.UNKNOWN.isUnknown(), "Unknown usage must declare itself as such");
     }
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/PlatformEventTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/PlatformEventTest.java
index 1aceff6..7138543 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/PlatformEventTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/PlatformEventTest.java
@@ -21,7 +21,7 @@ import java.time.ZonedDateTime;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.entry;
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/RecentItemTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/RecentItemTest.java
index eee0185..75ad9be 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/RecentItemTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/RecentItemTest.java
@@ -21,13 +21,12 @@ import java.io.IOException;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsInstanceOf.instanceOf;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 public class RecentItemTest {
 
     @Test
@@ -48,15 +47,15 @@ public class RecentItemTest {
 
         final RecentItem recentItem = (RecentItem)read;
 
-        assertEquals("RecentItem.Id should be deserialized", recentItem.getId(), "a06U000000CelH0IAJ");
+        assertEquals("a06U000000CelH0IAJ", recentItem.getId(), "RecentItem.Id should be deserialized");
 
-        assertEquals("RecentItem.Name should be deserialized", recentItem.getName(), "Acme");
+        assertEquals("Acme", recentItem.getName(), "RecentItem.Name should be deserialized");
 
-        assertNotNull("RecentItem.attributes should be deserialized", recentItem.getAttributes());
+        assertNotNull(recentItem.getAttributes(), "RecentItem.attributes should be deserialized");
 
-        assertEquals("RecentItem.attributes.type should be deserialized", recentItem.getAttributes().getType(), "Account");
+        assertEquals("Account", recentItem.getAttributes().getType(), "RecentItem.attributes.type should be deserialized");
 
-        assertEquals("RecentItem.attributes.url should be deserialized", recentItem.getAttributes().getUrl(), "/services/data/v28.0/sobjects/Account/a06U000000CelH0IAJ");
+        assertEquals("/services/data/v28.0/sobjects/Account/a06U000000CelH0IAJ", recentItem.getAttributes().getUrl(), "RecentItem.attributes.url should be deserialized");
 
     }
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/RestErrorTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/RestErrorTest.java
index d3bbe98..8c0665e 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/RestErrorTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/RestErrorTest.java
@@ -23,9 +23,9 @@ import com.fasterxml.jackson.databind.ObjectReader;
 import com.thoughtworks.xstream.XStream;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
 import org.apache.camel.component.salesforce.api.utils.XStreamUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class RestErrorTest {
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalRequestTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalRequestTest.java
index 45443c9..d2cfced 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalRequestTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalRequestTest.java
@@ -24,14 +24,13 @@ import com.thoughtworks.xstream.XStream;
 import org.apache.camel.component.salesforce.api.dto.approval.ApprovalRequest.Action;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
 import org.apache.camel.component.salesforce.api.utils.XStreamUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.CoreMatchers.sameInstance;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.CombinableMatcher.both;
 import static org.hamcrest.core.IsNot.not;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
-
+import static org.junit.jupiter.api.Assertions.assertEquals;
 public class ApprovalRequestTest {
 
     private final ApprovalRequest sampleRequest;
@@ -65,10 +64,10 @@ public class ApprovalRequestTest {
 
         assertThat("Combined approval request should be a new instance", combined, both(not(sameInstance(request))).and(not(sameInstance(template))));
 
-        assertEquals("Action type should not be overwritten", request.getActionType(), combined.getActionType());
-        assertEquals("Comment should not be overwritten", request.getComments(), combined.getComments());
-        assertEquals("Context id should not be overwritten", request.getContextId(), combined.getContextId());
-        assertEquals("Next approver id should be taken from template", template.getNextApproverIds(), combined.getNextApproverIds());
+        assertEquals(request.getActionType(), combined.getActionType(), "Action type should not be overwritten");
+        assertEquals(request.getComments(), combined.getComments(), "Comment should not be overwritten");
+        assertEquals(request.getContextId(), combined.getContextId(), "Context id should not be overwritten");
+        assertEquals(template.getNextApproverIds(), combined.getNextApproverIds(), "Next approver id should be taken from template");
     }
 
     @Test
@@ -77,11 +76,11 @@ public class ApprovalRequestTest {
 
         final String json = mapper.writerFor(ApprovalRequest.class).writeValueAsString(sampleRequest);
 
-        assertEquals("ApprovalRequest should serialize as JSON from Salesforce examples",
-                     "{\"actionType\":\"Submit\",\"contextActorId\":\"005D00000015rZy\",\"contextId\":\"001D000000I8mIm\""
+        assertEquals("{\"actionType\":\"Submit\",\"contextActorId\":\"005D00000015rZy\",\"contextId\":\"001D000000I8mIm\""
                                                                                           + ",\"comments\":\"this is a test\",\"nextApproverIds\":[\"005D00000015rY9\"],"
                                                                                           + "\"processDefinitionNameOrId\":\"PTO_Request_Process\",\"skipEntryCriteria\":true}",
-                     json);
+                     json,
+                     "ApprovalRequest should serialize as JSON from Salesforce examples");
     }
 
     @Test
@@ -90,16 +89,16 @@ public class ApprovalRequestTest {
 
         final String xml = xStream.toXML(sampleRequest);
 
-        assertEquals("ApprovalRequest should serialize as XML", "<requests>"//
-                                                                + "<actionType>Submit</actionType>"//
-                                                                + "<contextActorId>005D00000015rZy</contextActorId>"//
-                                                                + "<contextId>001D000000I8mIm</contextId>"//
-                                                                + "<comments>this is a test</comments>"//
-                                                                + "<nextApproverIds>005D00000015rY9</nextApproverIds>"//
-                                                                + "<processDefinitionNameOrId>PTO_Request_Process</processDefinitionNameOrId>"//
-                                                                + "<skipEntryCriteria>true</skipEntryCriteria>"//
-                                                                + "</requests>",
-                     xml);
+        assertEquals("<requests>"//
+                + "<actionType>Submit</actionType>"//
+                + "<contextActorId>005D00000015rZy</contextActorId>"//
+                + "<contextId>001D000000I8mIm</contextId>"//
+                + "<comments>this is a test</comments>"//
+                + "<nextApproverIds>005D00000015rY9</nextApproverIds>"//
+                + "<processDefinitionNameOrId>PTO_Request_Process</processDefinitionNameOrId>"//
+                + "<skipEntryCriteria>true</skipEntryCriteria>"//
+                + "</requests>",
+            xml, "ApprovalRequest should serialize as XML");
     }
 
     @Test
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalRequestsTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalRequestsTest.java
index ba7120f2..1b06b89 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalRequestsTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalRequestsTest.java
@@ -24,9 +24,9 @@ import com.thoughtworks.xstream.XStream;
 import org.apache.camel.component.salesforce.api.dto.approval.ApprovalRequest.Action;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
 import org.apache.camel.component.salesforce.api.utils.XStreamUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class ApprovalRequestsTest {
 
@@ -82,7 +82,7 @@ public class ApprovalRequestsTest {
 
         final String serialized = mapper.writerFor(ApprovalRequests.class).writeValueAsString(requests);
 
-        assertEquals("Approval requests should serialize as JSON", json, serialized);
+        assertEquals(json, serialized, "Approval requests should serialize as JSON");
     }
 
     @Test
@@ -112,6 +112,6 @@ public class ApprovalRequestsTest {
 
         final String serialized = xStream.toXML(requests);
 
-        assertEquals("Approval requests should serialize as XML", xml, serialized);
+        assertEquals(xml, serialized, "Approval requests should serialize as XML");
     }
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalResultTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalResultTest.java
index 20b211e..eba630a 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalResultTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalResultTest.java
@@ -25,14 +25,13 @@ import com.thoughtworks.xstream.XStream;
 import org.apache.camel.component.salesforce.api.dto.approval.ApprovalResult.Result;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
 import org.apache.camel.component.salesforce.api.utils.XStreamUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsCollectionContaining.hasItems;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 public class ApprovalResultTest {
 
     @Test
@@ -79,17 +78,17 @@ public class ApprovalResultTest {
 
     private static void assertResponseReadCorrectly(final ApprovalResult results) {
         final Iterator<Result> resultsIterator = results.iterator();
-        assertTrue("Should deserialize one approval result result", resultsIterator.hasNext());
+        assertTrue(resultsIterator.hasNext(), "Should deserialize one approval result result");
 
         final ApprovalResult.Result result = resultsIterator.next();
 
         assertThat("Should deserialize actorIds", result.getActorIds(), hasItems("0050Y000000u5NOQAY"));
-        assertEquals("Should deserialize entityId", "0010Y000005BYrZQAW", result.getEntityId());
-        assertEquals("Should deserialize instanceId", "04g0Y000000PL53QAG", result.getInstanceId());
-        assertEquals("Should deserialize instanceStatus", "Pending", result.getInstanceStatus());
+        assertEquals("0010Y000005BYrZQAW", result.getEntityId(), "Should deserialize entityId");
+        assertEquals("04g0Y000000PL53QAG", result.getInstanceId(), "Should deserialize instanceId");
+        assertEquals("Pending", result.getInstanceStatus(), "Should deserialize instanceStatus");
         assertThat("Should deserialize newWorkitemIds", result.getNewWorkitemIds(), hasItems("04i0Y000000L0fkQAC"));
-        assertTrue("Should deserialize success", result.isSuccess());
+        assertTrue(result.isSuccess(), "Should deserialize success");
 
-        assertFalse("Should be no more results", resultsIterator.hasNext());
+        assertFalse(resultsIterator.hasNext(), "Should be no more results");
     }
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalsTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalsTest.java
index ea09c41..5b38e76 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalsTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/approval/ApprovalsTest.java
@@ -24,14 +24,13 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.camel.component.salesforce.api.dto.approval.Approvals.Info;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsInstanceOf.instanceOf;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
-
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
 public class ApprovalsTest {
 
     @Test
@@ -55,19 +54,19 @@ public class ApprovalsTest {
         final Approvals approvals = (Approvals)read;
 
         final Map<String, List<Info>> approvalsMap = approvals.getApprovals();
-        assertEquals("Deserialized approvals should have one entry", 1, approvalsMap.size());
+        assertEquals(1, approvalsMap.size(), "Deserialized approvals should have one entry");
 
         final List<Info> accountApprovals = approvalsMap.get("Account");
-        assertNotNull("Deserialized approvals should contain list of `Account` type approvals", accountApprovals);
+        assertNotNull(accountApprovals, "Deserialized approvals should contain list of `Account` type approvals");
 
-        assertEquals("There should be one approval of `Account` type", 1, accountApprovals.size());
+        assertEquals(1, accountApprovals.size(), "There should be one approval of `Account` type");
 
         final Info accountInfo = accountApprovals.get(0);
 
-        assertNull("Deserialized `Account` approval should have null description", accountInfo.getDescription());
-        assertEquals("Deserialized `Account` approval should have defined id", "04aD00000008Py9", accountInfo.getId());
-        assertEquals("Deserialized `Account` approval should have defined name", "Account Approval Process", accountInfo.getName());
-        assertEquals("Deserialized `Account` approval should have defined object", "Account", accountInfo.getObject());
-        assertEquals("Deserialized `Account` approval should have defined sortOrder", 1, accountInfo.getSortOrder());
+        assertNull(accountInfo.getDescription(), "Deserialized `Account` approval should have null description");
+        assertEquals("04aD00000008Py9", accountInfo.getId(), "Deserialized `Account` approval should have defined id");
+        assertEquals("Account Approval Process", accountInfo.getName(), "Deserialized `Account` approval should have defined name");
+        assertEquals("Account", accountInfo.getObject(), "Deserialized `Account` approval should have defined object");
+        assertEquals(1, accountInfo.getSortOrder(), "Deserialized `Account` approval should have defined sortOrder");
     }
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/MapOfMapsConverterTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/MapOfMapsConverterTest.java
index a6ec3be..f76c129 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/MapOfMapsConverterTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/MapOfMapsConverterTest.java
@@ -25,14 +25,14 @@ import com.thoughtworks.xstream.converters.Converter;
 import com.thoughtworks.xstream.io.HierarchicalStreamReader;
 import com.thoughtworks.xstream.io.xml.XppDomReader;
 import com.thoughtworks.xstream.io.xml.xppdom.XppDom;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 import org.xmlpull.v1.XmlPullParserFactory;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class MapOfMapsConverterTest {
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectBatchResponseTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectBatchResponseTest.java
index 5967057..ad3b751 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectBatchResponseTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectBatchResponseTest.java
@@ -24,13 +24,13 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.thoughtworks.xstream.XStream;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
 import org.apache.camel.component.salesforce.api.utils.XStreamUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class SObjectBatchResponseTest {
 
@@ -89,19 +89,19 @@ public class SObjectBatchResponseTest {
 
         final SObjectBatchResponse response = (SObjectBatchResponse)xStream.fromXML(xml);
 
-        assertNotNull("Response should be parsed", response);
+        assertNotNull(response, "Response should be parsed");
 
-        assertFalse("It should not have errors", response.hasErrors());
+        assertFalse(response.hasErrors(), "It should not have errors");
 
         final List<SObjectBatchResult> results = response.getResults();
-        assertEquals("It should contain 2 results", 2, results.size());
+        assertEquals(2, results.size(), "It should contain 2 results");
 
         final SObjectBatchResult firstResult = results.get(0);
-        assertEquals("First result should have status code of 204", 204, firstResult.getStatusCode());
-        assertTrue("First result contain no data", ((Map)firstResult.getResult()).isEmpty());
+        assertEquals(204, firstResult.getStatusCode(), "First result should have status code of 204");
+        assertTrue(((Map)firstResult.getResult()).isEmpty(), "First result contain no data");
 
         final SObjectBatchResult secondResult = results.get(1);
-        assertEquals("Second result should have status code of 200", 200, secondResult.getStatusCode());
+        assertEquals(200, secondResult.getStatusCode(), "Second result should have status code of 200");
 
         @SuppressWarnings("unchecked")
         final Map<String, Object> secondResultMap = (Map<String, Object>)secondResult.getResult();
@@ -110,39 +110,39 @@ public class SObjectBatchResponseTest {
 
         @SuppressWarnings("unchecked")
         final Map<String, String> attributes = (Map<String, String>)account.get("attributes");
-        assertEquals("Second result data should have attribute type set to `Account`", "Account", attributes.get("type"));
-        assertEquals("Second result data should have attribute url set as expected", "/services/data/v34.0/sobjects/Account/001D000000K0fXOIAZ", attributes.get("url"));
+        assertEquals("Account", attributes.get("type"), "Second result data should have attribute type set to `Account`");
+        assertEquals("/services/data/v34.0/sobjects/Account/001D000000K0fXOIAZ", attributes.get("url"), "Second result data should have attribute url set as expected");
 
-        assertEquals("Second result data should have `NewName` set as expected", "NewName", account.get("Name"));
-        assertEquals("Second result data should have `BillingPostalCode` set as expected", "94105", account.get("BillingPostalCode"));
-        assertEquals("Second result data should have `Id` set as expected", "001D000000K0fXOIAZ", account.get("Id"));
+        assertEquals("NewName", account.get("Name"), "Second result data should have `NewName` set as expected");
+        assertEquals("94105", account.get("BillingPostalCode"), "Second result data should have `BillingPostalCode` set as expected");
+        assertEquals("001D000000K0fXOIAZ", account.get("Id"), "Second result data should have `Id` set as expected");
     }
 
     static void assertResponse(final SObjectBatchResponse response) {
-        assertNotNull("Response should be parsed", response);
+        assertNotNull(response, "Response should be parsed");
 
-        assertFalse("It should not have errors", response.hasErrors());
+        assertFalse(response.hasErrors(), "It should not have errors");
 
         final List<SObjectBatchResult> results = response.getResults();
-        assertEquals("It should contain 2 results", 2, results.size());
+        assertEquals(2, results.size(), "It should contain 2 results");
 
         final SObjectBatchResult firstResult = results.get(0);
-        assertEquals("First result should have status code of 204", 204, firstResult.getStatusCode());
-        assertNull("First result contain no data", firstResult.getResult());
+        assertEquals(204, firstResult.getStatusCode(), "First result should have status code of 204");
+        assertNull(firstResult.getResult(), "First result contain no data");
 
         final SObjectBatchResult secondResult = results.get(1);
-        assertEquals("Second result should have status code of 200", 200, secondResult.getStatusCode());
+        assertEquals(200, secondResult.getStatusCode(), "Second result should have status code of 200");
 
         @SuppressWarnings("unchecked")
         final Map<String, Object> secondResultMap = (Map<String, Object>)secondResult.getResult();
         @SuppressWarnings("unchecked")
         final Map<String, String> attributes = (Map<String, String>)secondResultMap.get("attributes");
-        assertEquals("Second result data should have attribute type set to `Account`", "Account", attributes.get("type"));
-        assertEquals("Second result data should have attribute url set as expected", "/services/data/v34.0/sobjects/Account/001D000000K0fXOIAZ", attributes.get("url"));
+        assertEquals("Account", attributes.get("type"), "Second result data should have attribute type set to `Account`");
+        assertEquals("/services/data/v34.0/sobjects/Account/001D000000K0fXOIAZ", attributes.get("url"), "Second result data should have attribute url set as expected");
 
-        assertEquals("Second result data should have `NewName` set as expected", "NewName", secondResultMap.get("Name"));
-        assertEquals("Second result data should have `BillingPostalCode` set as expected", "94105", secondResultMap.get("BillingPostalCode"));
-        assertEquals("Second result data should have `Id` set as expected", "001D000000K0fXOIAZ", secondResultMap.get("Id"));
+        assertEquals("NewName", secondResultMap.get("Name"), "Second result data should have `NewName` set as expected");
+        assertEquals("94105", secondResultMap.get("BillingPostalCode"), "Second result data should have `BillingPostalCode` set as expected");
+        assertEquals("001D000000K0fXOIAZ", secondResultMap.get("Id"), "Second result data should have `Id` set as expected");
     }
 
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectBatchTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectBatchTest.java
index 0ec1913..e7413df 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectBatchTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectBatchTest.java
@@ -24,9 +24,9 @@ import org.apache.camel.component.salesforce.api.utils.JsonUtils;
 import org.apache.camel.component.salesforce.api.utils.XStreamUtils;
 import org.apache.camel.component.salesforce.dto.generated.Account;
 import org.apache.camel.component.salesforce.dto.generated.Account_IndustryEnum;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class SObjectBatchTest {
 
@@ -91,7 +91,7 @@ public class SObjectBatchTest {
                             + "}";
         final ObjectMapper mapper = JsonUtils.createObjectMapper();
         final String serialized = mapper.writerFor(SObjectBatch.class).writeValueAsString(batch);
-        assertEquals("Should serialize as expected by Salesforce", json, serialized);
+        assertEquals(json, serialized, "Should serialize as expected by Salesforce");
     }
 
     @Test
@@ -182,6 +182,6 @@ public class SObjectBatchTest {
 
         final String serialized = xStream.toXML(batch);
 
-        assertEquals("Should serialize as expected by Salesforce", xml, serialized);
+        assertEquals(xml, serialized, "Should serialize as expected by Salesforce");
     }
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectCompositeResponseTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectCompositeResponseTest.java
index c2f883d..7dd2328 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectCompositeResponseTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectCompositeResponseTest.java
@@ -24,7 +24,7 @@ import java.util.Map;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
 import org.apache.commons.io.IOUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectCompositeTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectCompositeTest.java
index a27e4b7..108faa6 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectCompositeTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectCompositeTest.java
@@ -29,7 +29,7 @@ import org.apache.camel.component.salesforce.dto.generated.Account;
 import org.apache.camel.component.salesforce.dto.generated.Account_IndustryEnum;
 import org.apache.camel.component.salesforce.dto.generated.Contact;
 import org.apache.commons.io.IOUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectNodeTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectNodeTest.java
index 60a7fd9..274cca0 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectNodeTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectNodeTest.java
@@ -21,10 +21,10 @@ import java.util.stream.Stream;
 import org.apache.camel.component.salesforce.api.dto.AbstractSObjectBase;
 import org.apache.camel.component.salesforce.dto.generated.Account;
 import org.apache.camel.component.salesforce.dto.generated.Contact;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertSame;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
 public class SObjectNodeTest extends CompositeTestBase {
 
@@ -42,11 +42,11 @@ public class SObjectNodeTest extends CompositeTestBase {
         final Stream<SObjectNode> children = node.getChildNodesOfType("Contacts");
         final SObjectNode[] childrenAry = toArray(children);
 
-        assertEquals("Size of the node should be 2", 2, node.size());
+        assertEquals(2, node.size(), "Size of the node should be 2");
 
-        assertEquals("There should be one child in this node", 1, childrenAry.length);
+        assertEquals(1, childrenAry.length, "There should be one child in this node");
 
-        assertSame("First record should be smith contact", smith, childrenAry[0].getObject());
+        assertSame(smith, childrenAry[0].getObject(), "First record should be smith contact");
     }
 
     @Test
@@ -59,11 +59,11 @@ public class SObjectNodeTest extends CompositeTestBase {
         final Stream<SObjectNode> children = node.getChildNodesOfType("Contacts");
         final SObjectNode[] childrenAry = toArray(children);
 
-        assertEquals("Size of the node should be 2", 2, node.size());
+        assertEquals(2, node.size(), "Size of the node should be 2");
 
-        assertEquals("There should be one child in this node", 1, childrenAry.length);
+        assertEquals(1, childrenAry.length, "There should be one child in this node");
 
-        assertSame("First record should be smith contact", smith, childrenAry[0].getObject());
+        assertSame(smith, childrenAry[0].getObject(), "First record should be smith contact");
     }
 
     @Test
@@ -77,12 +77,12 @@ public class SObjectNodeTest extends CompositeTestBase {
         final Stream<SObjectNode> children = node.getChildNodes();
         final SObjectNode[] childrenAry = toArray(children);
 
-        assertEquals("There should be two child records in this node", 2, childrenAry.length);
+        assertEquals(2, childrenAry.length, "There should be two child records in this node");
 
-        assertSame("First record should be smith contact", smith, childrenAry[0].getObject());
-        assertSame("Second record should be evans contact", evans, childrenAry[1].getObject());
+        assertSame(smith, childrenAry[0].getObject(), "First record should be smith contact");
+        assertSame(evans, childrenAry[1].getObject(), "Second record should be evans contact");
 
-        assertEquals("Size of the node should be 3", 3, node.size());
+        assertEquals(3, node.size(), "Size of the node should be 3");
     }
 
     @Test
@@ -96,12 +96,12 @@ public class SObjectNodeTest extends CompositeTestBase {
         final Stream<AbstractSObjectBase> children = node.getChildren();
         final Object[] childrenAry = children.toArray();
 
-        assertEquals("There should be two child records in this node", 2, childrenAry.length);
+        assertEquals(2, childrenAry.length, "There should be two child records in this node");
 
-        assertSame("First record should be smith contact", smith, childrenAry[0]);
-        assertSame("Second record should be evans contact", evans, childrenAry[1]);
+        assertSame(smith, childrenAry[0], "First record should be smith contact");
+        assertSame(evans, childrenAry[1], "Second record should be evans contact");
 
-        assertEquals("Size of the node should be 3", 3, node.size());
+        assertEquals(3, node.size(), "Size of the node should be 3");
     }
 
     @Test
@@ -112,21 +112,21 @@ public class SObjectNodeTest extends CompositeTestBase {
         node.addChild("Contacts", new SObjectNode(tree, smith));
         node.addChild("Contacts", new SObjectNode(tree, evans));
 
-        assertSame("Object in the node should be the given account", simpleAccount, node.getObject());
-        assertEquals("Type of the object in node should be auto-detected", "Account", node.getObjectType());
+        assertSame(simpleAccount, node.getObject(), "Object in the node should be the given account");
+        assertEquals("Account", node.getObjectType(), "Type of the object in node should be auto-detected");
 
         final Stream<SObjectNode> children = node.getChildNodesOfType("Contacts");
         final SObjectNode[] childrenAry = toArray(children);
 
-        assertEquals("There should be two records in this node", 2, childrenAry.length);
+        assertEquals(2, childrenAry.length, "There should be two records in this node");
 
-        assertSame("First record should be smith contact", smith, childrenAry[0].getObject());
-        assertEquals("Type of first record should be Contact", "Contact", childrenAry[0].getObjectType());
+        assertSame(smith, childrenAry[0].getObject(), "First record should be smith contact");
+        assertEquals("Contact", childrenAry[0].getObjectType(), "Type of first record should be Contact");
 
-        assertSame("Second record should be evans contact", evans, childrenAry[1].getObject());
-        assertEquals("Type of second record should be Contact", "Contact", childrenAry[1].getObjectType());
+        assertSame(evans, childrenAry[1].getObject(), "Second record should be evans contact");
+        assertEquals("Contact", childrenAry[1].getObjectType(), "Type of second record should be Contact");
 
-        assertEquals("Size of the node should be 3", 3, node.size());
+        assertEquals(3, node.size(), "Size of the node should be 3");
     }
 
     @Test
@@ -144,12 +144,12 @@ public class SObjectNodeTest extends CompositeTestBase {
         final Stream<SObjectNode> children = node.getChildNodesOfType("Contacts");
         final SObjectNode[] childrenAry = toArray(children);
 
-        assertEquals("There should be two records in this node", 2, childrenAry.length);
+        assertEquals(2, childrenAry.length, "There should be two records in this node");
 
-        assertSame("First record should be smith contact", smith, childrenAry[0].getObject());
-        assertSame("Second record should be evans contact", evans, childrenAry[1].getObject());
+        assertSame(smith, childrenAry[0].getObject(), "First record should be smith contact");
+        assertSame(evans, childrenAry[1].getObject(), "Second record should be evans contact");
 
-        assertEquals("Size of the node should be 3", 3, node.size());
+        assertEquals(3, node.size(), "Size of the node should be 3");
     }
 
     @Test
@@ -162,12 +162,12 @@ public class SObjectNodeTest extends CompositeTestBase {
         final Stream<AbstractSObjectBase> children = node.getChildrenOfType("Contacts");
         final Object[] childrenAry = children.toArray();
 
-        assertEquals("There should be two child records in this node", 2, childrenAry.length);
+        assertEquals(2, childrenAry.length, "There should be two child records in this node");
 
-        assertSame("First record should be smith contact", smith, childrenAry[0]);
-        assertSame("Second record should be evans contact", evans, childrenAry[1]);
+        assertSame(smith, childrenAry[0], "First record should be smith contact");
+        assertSame(evans, childrenAry[1], "Second record should be evans contact");
 
-        assertEquals("Size of the node should be 3", 3, node.size());
+        assertEquals(3, node.size(), "Size of the node should be 3");
     }
 
     @Test
@@ -181,19 +181,19 @@ public class SObjectNodeTest extends CompositeTestBase {
         final Stream<AbstractSObjectBase> children = node.getChildrenOfType("Contacts");
         final Object[] childrenAry = children.toArray();
 
-        assertEquals("There should be four records in this node", 4, childrenAry.length);
+        assertEquals(4, childrenAry.length, "There should be four records in this node");
 
-        assertSame("First record should be smith contact", smith, childrenAry[0]);
-        assertSame("Second record should be evans contact", evans, childrenAry[1]);
-        assertSame("Third record should be bond contact", bond, childrenAry[2]);
-        assertSame("Fourth record should be moneypeny contact", moneypenny, childrenAry[3]);
+        assertSame(smith, childrenAry[0], "First record should be smith contact");
+        assertSame(evans, childrenAry[1], "Second record should be evans contact");
+        assertSame(bond, childrenAry[2], "Third record should be bond contact");
+        assertSame(moneypenny, childrenAry[3], "Fourth record should be moneypeny contact");
 
-        assertEquals("Size of the node should be 5", 5, node.size());
+        assertEquals(5, node.size(), "Size of the node should be 5");
     }
 
     @Test
     public void typeOfShouldBeBasedOnSimpleClassName() {
-        assertEquals("Type of Account should be 'Account'", "Account", SObjectNode.typeOf(new Account()));
-        assertEquals("Type of Contact should be 'Contact'", "Contact", SObjectNode.typeOf(new Contact()));
+        assertEquals("Account", SObjectNode.typeOf(new Account()), "Type of Account should be 'Account'");
+        assertEquals("Contact", SObjectNode.typeOf(new Contact()), "Type of Contact should be 'Contact'");
     }
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectTreeResponseTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectTreeResponseTest.java
index 0ed4cbe..a4baf9e 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectTreeResponseTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectTreeResponseTest.java
@@ -25,15 +25,14 @@ import com.thoughtworks.xstream.XStream;
 import org.apache.camel.component.salesforce.api.dto.RestError;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
 import org.apache.camel.component.salesforce.api.utils.XStreamUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsCollectionContaining.hasItems;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 public class SObjectTreeResponseTest {
 
     @Test
@@ -60,11 +59,11 @@ public class SObjectTreeResponseTest {
         final ObjectReader reader = mapper.readerFor(SObjectTreeResponse.class);
         final SObjectTreeResponse response = reader.readValue(json);
 
-        assertNotNull("Response should be parsed", response);
+        assertNotNull(response, "Response should be parsed");
 
-        assertFalse("`hasErrors` flag should be false", response.hasErrors());
+        assertFalse(response.hasErrors(), "`hasErrors` flag should be false");
 
-        assertEquals("Should read 4 references", 4, response.getResults().size());
+        assertEquals(4, response.getResults().size(), "Should read 4 references");
         assertThat("4 references should be read as expected", response.getResults(), hasItems(new ReferenceId("ref1", "001D000000K0fXOIAZ", Collections.emptyList()), //
                                                                                               new ReferenceId("ref4", "001D000000K0fXPIAZ", Collections.emptyList()), //
                                                                                               new ReferenceId("ref2", "003D000000QV9n2IAD", Collections.emptyList()), //
@@ -90,11 +89,11 @@ public class SObjectTreeResponseTest {
         final ObjectReader reader = mapper.readerFor(SObjectTreeResponse.class);
         final SObjectTreeResponse response = reader.readValue(json);
 
-        assertNotNull("Response should be parsed", response);
+        assertNotNull(response, "Response should be parsed");
 
-        assertTrue("`hasErrors` flag should be true", response.hasErrors());
+        assertTrue(response.hasErrors(), "`hasErrors` flag should be true");
 
-        assertEquals("Should read one reference", 1, response.getResults().size());
+        assertEquals(1, response.getResults().size(), "Should read one reference");
         assertThat("The reference should be read as expected", response.getResults(),
                    hasItems(new ReferenceId("ref2", null, Arrays.asList(new RestError("INVALID_EMAIL_ADDRESS", "Email: invalid email address: 123", Arrays.asList("Email"))))));
     }
@@ -126,11 +125,11 @@ public class SObjectTreeResponseTest {
 
         final SObjectTreeResponse response = (SObjectTreeResponse)xStream.fromXML(xml);
 
-        assertNotNull("Response should be parsed", response);
+        assertNotNull(response, "Response should be parsed");
 
-        assertFalse("`hasErrors` flag should be false", response.hasErrors());
+        assertFalse(response.hasErrors(), "`hasErrors` flag should be false");
 
-        assertEquals("Should read 4 references", 4, response.getResults().size());
+        assertEquals(4, response.getResults().size(), "Should read 4 references");
         assertThat("4 references should be read as expected", response.getResults(), hasItems(new ReferenceId("ref1", "001D000000K0fXOIAZ", Collections.emptyList()), //
                                                                                               new ReferenceId("ref4", "001D000000K0fXPIAZ", Collections.emptyList()), //
                                                                                               new ReferenceId("ref2", "003D000000QV9n2IAD", Collections.emptyList()), //
@@ -155,11 +154,11 @@ public class SObjectTreeResponseTest {
 
         final SObjectTreeResponse response = (SObjectTreeResponse)xStream.fromXML(xml);
 
-        assertNotNull("Response should be parsed", response);
+        assertNotNull(response, "Response should be parsed");
 
-        assertTrue("`hasErrors` flag should be true", response.hasErrors());
+        assertTrue(response.hasErrors(), "`hasErrors` flag should be true");
 
-        assertEquals("Should read one reference", 1, response.getResults().size());
+        assertEquals(1, response.getResults().size(), "Should read one reference");
         assertThat("The reference should be read as expected", response.getResults(),
                    hasItems(new ReferenceId("ref2", null, Arrays.asList(new RestError("INVALID_EMAIL_ADDRESS", "Email: invalid email address: 123", Arrays.asList("Email"))))));
     }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectTreeTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectTreeTest.java
index e8e0c39..ba6aa40 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectTreeTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectTreeTest.java
@@ -29,11 +29,11 @@ import org.apache.camel.component.salesforce.api.utils.XStreamUtils;
 import org.apache.camel.component.salesforce.dto.generated.Account;
 import org.apache.camel.component.salesforce.dto.generated.Asset;
 import org.apache.camel.component.salesforce.dto.generated.Contact;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertSame;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
 public class SObjectTreeTest extends CompositeTestBase {
 
@@ -80,7 +80,7 @@ public class SObjectTreeTest extends CompositeTestBase {
                                 + "\"referenceId\":\"ref3\"," + "\"type\":\"Contact\"," + "\"url\":null" + "}" + "}" + "]" + "}" + "}," + "{" + "\"Industry\":\"Banking\","
                                 + "\"Name\":\"SampleAccount2\"," + "\"NumberOfEmployees\":100," + "\"Phone\":\"1234567890\"," + "\"Website\":\"www.salesforce2.com\","
                                 + "\"attributes\":{" + "\"referenceId\":\"ref4\"," + "\"type\":\"Account\"," + "\"url\":null" + "}" + "}" + "]" + "}";
-        assertEquals("Should serialize to JSON as in Salesforce example", expected, json);
+        assertEquals(expected, json, "Should serialize to JSON as in Salesforce example");
     }
 
     @Test
@@ -99,7 +99,7 @@ public class SObjectTreeTest extends CompositeTestBase {
 
         final String xml = xStream.toXML(tree);
 
-        assertEquals("Should serialize to XML as in Salesforce example", "<SObjectTreeRequest>"//
+        assertEquals("<SObjectTreeRequest>"//
                                                                          + "<records type=\"Account\" referenceId=\"ref1\">"//
                                                                          + "<Name>SampleAccount</Name>"//
                                                                          + "<Phone>1234567890</Phone>"//
@@ -127,7 +127,7 @@ public class SObjectTreeTest extends CompositeTestBase {
                                                                          + "<NumberOfEmployees>100</NumberOfEmployees>"//
                                                                          + "</records>"//
                                                                          + "</SObjectTreeRequest>",
-                     xml);
+                     xml, "Should serialize to XML as in Salesforce example");
     }
 
     @Test
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/JsonUtilsTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/JsonUtilsTest.java
index 6a28d3f..cfc1c8f 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/JsonUtilsTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/JsonUtilsTest.java
@@ -21,13 +21,13 @@ import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
 import com.fasterxml.jackson.module.jsonSchema.types.ObjectSchema;
 import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
 import org.apache.camel.component.salesforce.dto.generated.Account;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * Unit test for {@link JsonUtils}
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/QueryHelperTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/QueryHelperTest.java
index c71e140..4a9918f 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/QueryHelperTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/QueryHelperTest.java
@@ -18,7 +18,7 @@ package org.apache.camel.component.salesforce.api.utils;
 
 import org.apache.camel.component.salesforce.api.dto.SObjectField;
 import org.apache.camel.component.salesforce.dto.generated.Account;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/SalesforceTimeFormatsTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/SalesforceTimeFormatsTest.java
index 06ab18a..269798f 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/SalesforceTimeFormatsTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/SalesforceTimeFormatsTest.java
@@ -35,16 +35,12 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.type.TypeFactory;
 import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.annotations.XStreamAlias;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
 
 import static java.lang.String.format;
 import static org.assertj.core.api.Assertions.assertThat;
 
-@RunWith(Parameterized.class)
 public class SalesforceTimeFormatsTest {
 
     @XStreamAlias("Dto")
@@ -97,51 +93,39 @@ public class SalesforceTimeFormatsTest {
 
     private static final String XML_FMT = "<Dto><value>%s</value></Dto>";
 
-    @Parameter(0)
-    public DateTransferObject<?> dto;
-
-    @Parameter(1)
-    public String json;
-
-    @Parameter(3)
-    public Class<?> parameterType;
-
-    @Parameter(2)
-    public String xml;
-
     private final ObjectMapper objectMapper = JsonUtils.createObjectMapper();
 
     private final XStream xStream = XStreamUtils.createXStream(DateTransferObject.class);
 
-    @Test
-    public void shouldDeserializeJson() throws IOException {
+    @ParameterizedTest @MethodSource("cases")
+    public void shouldDeserializeJson(DateTransferObject<?> dto, String json, String xml, Class<?> parameterType) throws IOException {
         final JavaType javaType = TypeFactory.defaultInstance().constructParametricType(DateTransferObject.class, parameterType);
 
         final DateTransferObject<?> deserialized = objectMapper.readerFor(javaType).readValue(json);
 
-        assertDeserializationResult(deserialized);
+        assertDeserializationResult(dto, deserialized);
     }
 
-    @Test
-    public void shouldDeserializeXml() {
+    @ParameterizedTest @MethodSource("cases")
+    public void shouldDeserializeXml(DateTransferObject<?> dto, String json, String xml, Class<?> parameterType) {
         xStream.addDefaultImplementation(parameterType, Object.class);
 
         final DateTransferObject<?> deserialized = (DateTransferObject<?>)xStream.fromXML(xml);
 
-        assertDeserializationResult(deserialized);
+        assertDeserializationResult(dto, deserialized);
     }
 
-    @Test
-    public void shouldSerializeJson() throws JsonProcessingException {
+    @ParameterizedTest @MethodSource("cases")
+    public void shouldSerializeJson(DateTransferObject<?> dto, String json, String xml, Class<?> parameterType) throws JsonProcessingException {
         assertThat(objectMapper.writeValueAsString(dto)).isEqualTo(json);
     }
 
-    @Test
-    public void shouldSerializeXml() {
+    @ParameterizedTest @MethodSource("cases")
+    public void shouldSerializeXml(DateTransferObject<?> dto, String json, String xml, Class<?> parameterType) {
         assertThat(xStream.toXML(dto)).isEqualTo(xml);
     }
 
-    private void assertDeserializationResult(final DateTransferObject<?> deserialized) {
+    private void assertDeserializationResult(DateTransferObject<?> dto, final DateTransferObject<?> deserialized) {
         if (dto.value instanceof ZonedDateTime) {
             // Salesforce expresses time in UTC+offset (ISO-8601 , with this we
             // loose time zone information
@@ -154,7 +138,6 @@ public class SalesforceTimeFormatsTest {
         }
     }
 
-    @Parameters
     public static Iterable<Object[]> cases() {
         final LocalDate localDate = LocalDate.of(2007, 03, 19);
         final ZonedDateTime zonedDateTime = ZonedDateTime.of(localDate.atTime(10, 54, 57), ZoneId.of("Z"));
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/VersionTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/VersionTest.java
index dd3402e..7fb30db 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/VersionTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/utils/VersionTest.java
@@ -16,11 +16,11 @@
  */
 package org.apache.camel.component.salesforce.api.utils;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class VersionTest {
 
@@ -45,18 +45,16 @@ public class VersionTest {
         V35_0.requireAtLeast(34, 0);
     }
 
-    @Test(expected = UnsupportedOperationException.class)
+    @Test
     public void shouldObserveApiLimitsOnMajorVersions() {
-        V35_0.requireAtLeast(36, 0);
-
-        fail("No UnsupportedOperationException thrown, but expected");
+        assertThrows(UnsupportedOperationException.class,
+            () -> V35_0.requireAtLeast(36, 0));
     }
 
-    @Test(expected = UnsupportedOperationException.class)
+    @Test
     public void shouldObserveApiLimitsOnMinorVersions() {
-        V35_0.requireAtLeast(35, 1);
-
-        fail("No UnsupportedOperationException thrown, but expected");
+        assertThrows(UnsupportedOperationException.class,
+            () -> V35_0.requireAtLeast(35, 1));
     }
 
     @Test
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
index fd0e8ed..02a5522 100644
--- 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
@@ -19,11 +19,11 @@ package org.apache.camel.component.salesforce.internal;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
 import org.apache.camel.component.salesforce.internal.dto.LoginToken;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 public class LoginTokenTest {
 
@@ -47,10 +47,10 @@ public class LoginTokenTest {
 
         // assert ObjectMapper deserialized the SF OAuth response and returned a
         // valid token back
-        assertNotNull("An invalid token was returned", token);
+        assertNotNull(token, "An invalid token was returned");
         // assert No exception was thrown during the JSON deserialization
         // process
-        assertNull("Exception was thrown during JSON deserialisation", e);
+        assertNull(e, "Exception was thrown during JSON deserialisation");
         // assert one of the token fields
         assertEquals("false", token.getIsReadOnly());
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SalesforceSessionTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SalesforceSessionTest.java
index 8ea2c8f..806a056 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SalesforceSessionTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SalesforceSessionTest.java
@@ -27,10 +27,10 @@ import org.apache.camel.support.jsse.KeyStoreParameters;
 import org.eclipse.jetty.client.api.ContentResponse;
 import org.eclipse.jetty.client.api.Request;
 import org.eclipse.jetty.http.HttpStatus;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.eq;
@@ -58,7 +58,7 @@ public class SalesforceSessionTest {
 
         final String jwtAssertion = session.generateJwtAssertion();
 
-        Assert.assertNotNull(jwtAssertion);
+        assertNotNull(jwtAssertion);
     }
 
     @Test
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java
index a0d8e41..88aed11 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java
@@ -21,15 +21,16 @@ import org.apache.camel.component.salesforce.SalesforceHttpClient;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.support.jsse.SSLContextParameters;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 /**
  *
  */
-public class SessionIntegrationTest extends Assert implements SalesforceSession.SalesforceSessionListener {
+public class SessionIntegrationTest implements SalesforceSession.SalesforceSessionListener {
 
     private static final Logger LOG = LoggerFactory.getLogger(SessionIntegrationTest.class);
     private static final int TIMEOUT = 60000;
@@ -53,15 +54,15 @@ public class SessionIntegrationTest extends Assert implements SalesforceSession.
             String loginToken = session.login(session.getAccessToken());
             LOG.info("First token " + loginToken);
 
-            assertTrue("SalesforceSessionListener onLogin NOT called", onLoginTriggered);
+            assertTrue(onLoginTriggered, "SalesforceSessionListener onLogin NOT called");
             onLoginTriggered = false;
 
             // refresh token, also causes logout
             loginToken = session.login(loginToken);
             LOG.info("Refreshed token " + loginToken);
 
-            assertTrue("SalesforceSessionListener onLogout NOT called", onLogoutTriggered);
-            assertTrue("SalesforceSessionListener onLogin NOT called", onLoginTriggered);
+            assertTrue(onLogoutTriggered, "SalesforceSessionListener onLogout NOT called");
+            assertTrue(onLoginTriggered, "SalesforceSessionListener onLogin NOT called");
 
         } finally {
             // logout finally
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBaseTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBaseTest.java
index f09764a..9de5e34 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBaseTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBaseTest.java
@@ -36,15 +36,15 @@ import org.eclipse.jetty.client.api.Response;
 import org.eclipse.jetty.client.api.Response.CompleteListener;
 import org.eclipse.jetty.client.api.Result;
 import org.eclipse.jetty.http.HttpFields;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.mockito.ArgumentCaptor;
 
 import static java.util.Arrays.asList;
 import static java.util.Collections.singletonList;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.entry;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
@@ -81,7 +81,7 @@ public class AbstractClientBaseTest {
         when(session.getAccessToken()).thenReturn("token");
     }
 
-    @Before
+    @BeforeEach
     public void startClient() throws Exception {
         client.start();
     }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClientTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClientTest.java
index 39e3c80..742c17e 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClientTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClientTest.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.salesforce.internal.client;
 
 import org.apache.camel.component.salesforce.api.SalesforceException;
 import org.apache.camel.component.salesforce.api.dto.composite.SObjectBatch;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 public class DefaultCompositeApiClientTest {
 
@@ -33,11 +35,12 @@ public class DefaultCompositeApiClientTest {
         DefaultCompositeApiClient.checkCompositeBatchVersion(V35_0, batch.getVersion());
     }
 
-    @Test(expected = SalesforceException.class)
+    @Test
     public void shouldNotAllowNewerPayloadsWhenConfiguredWithOlderVersion() throws SalesforceException {
         final SObjectBatch batch = new SObjectBatch(V35_0);
 
-        DefaultCompositeApiClient.checkCompositeBatchVersion(V34_0, batch.getVersion());
+        assertThrows(SalesforceException.class,
+            () -> DefaultCompositeApiClient.checkCompositeBatchVersion(V34_0, batch.getVersion()));
     }
 
     @Test
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/processor/AbstractRestProcessorApprovalTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/processor/AbstractRestProcessorApprovalTest.java
index 0309218..5724ddf 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/processor/AbstractRestProcessorApprovalTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/processor/AbstractRestProcessorApprovalTest.java
@@ -37,10 +37,10 @@ import org.apache.camel.component.salesforce.internal.client.RestClient;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.support.DefaultExchange;
 import org.apache.camel.support.DefaultMessage;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
@@ -141,8 +141,8 @@ public class AbstractRestProcessorApprovalTest {
             sendBodyAndHeader(Collections.EMPTY_LIST, null);
             fail("SalesforceException should be thrown");
         } catch (final SalesforceException e) {
-            assertEquals("Exception should be about not giving a body or a header", "Missing approval parameter in header or ApprovalRequest or List of ApprovalRequests body",
-                         e.getMessage());
+            assertEquals("Missing approval parameter in header or ApprovalRequest or List of ApprovalRequests body",
+                         e.getMessage(), "Exception should be about not giving a body or a header");
         }
     }
 
@@ -152,8 +152,8 @@ public class AbstractRestProcessorApprovalTest {
             sendBodyAndHeader(null, null);
             fail("SalesforceException should be thrown");
         } catch (final SalesforceException e) {
-            assertEquals("Exception should be about not giving a body or a header", "Missing approval parameter in header or ApprovalRequest or List of ApprovalRequests body",
-                         e.getMessage());
+            assertEquals("Missing approval parameter in header or ApprovalRequest or List of ApprovalRequests body",
+                         e.getMessage(), "Exception should be about not giving a body or a header");
         }
     }
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/processor/JsonRestProcessorTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/processor/JsonRestProcessorTest.java
index 6de8f7c..0d644d0 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/processor/JsonRestProcessorTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/processor/JsonRestProcessorTest.java
@@ -36,7 +36,7 @@ import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.support.DefaultExchange;
 import org.apache.camel.support.DefaultMessage;
 import org.apache.commons.io.IOUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/streaming/ReplayExtensionTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/streaming/ReplayExtensionTest.java
index 6243d85..4acf1ad 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/streaming/ReplayExtensionTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/streaming/ReplayExtensionTest.java
@@ -24,9 +24,9 @@ import java.util.concurrent.ConcurrentMap;
 import org.cometd.bayeux.Channel;
 import org.cometd.bayeux.Message;
 import org.cometd.common.HashMapMessage;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class ReplayExtensionTest {
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelperTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelperTest.java
index cb582d3..988322c 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelperTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelperTest.java
@@ -29,12 +29,12 @@ import org.apache.camel.component.salesforce.SalesforceLoginConfig;
 import org.apache.camel.component.salesforce.api.SalesforceException;
 import org.apache.camel.component.salesforce.internal.SalesforceSession;
 import org.cometd.client.BayeuxClient;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.salesforce.internal.streaming.SubscriptionHelper.determineReplayIdFor;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
@@ -61,11 +61,11 @@ public class SubscriptionHelperTest {
         when(endpoint.getConfiguration()).thenReturn(config);
         when(component.getConfig()).thenReturn(new SalesforceEndpointConfig());
 
-        assertEquals("Expecting replayId for `my-topic-1` to be 10, as short topic names have priority", Optional.of(10L), determineReplayIdFor(endpoint, "my-topic-1"));
+        assertEquals(Optional.of(10L), determineReplayIdFor(endpoint, "my-topic-1"), "Expecting replayId for `my-topic-1` to be 10, as short topic names have priority");
 
-        assertEquals("Expecting replayId for `my-topic-2` to be 30, the only one given", Optional.of(30L), determineReplayIdFor(endpoint, "my-topic-2"));
+        assertEquals(Optional.of(30L), determineReplayIdFor(endpoint, "my-topic-2"), "Expecting replayId for `my-topic-2` to be 30, the only one given");
 
-        assertEquals("Expecting replayId for `my-topic-3` to be 14, the default", Optional.of(14L), determineReplayIdFor(endpoint, "my-topic-3"));
+        assertEquals(Optional.of(14L), determineReplayIdFor(endpoint, "my-topic-3"), "Expecting replayId for `my-topic-3` to be 14, the default");
     }
 
     @Test
@@ -87,25 +87,21 @@ public class SubscriptionHelperTest {
         when(endpoint.getComponent()).thenReturn(component);
         when(endpoint.getConfiguration()).thenReturn(endpointConfig);
 
-        assertEquals("Expecting replayId for `my-topic-1` to be 5, as endpoint configuration has priority", Optional.of(5L), determineReplayIdFor(endpoint, "my-topic-1"));
+        assertEquals(Optional.of(5L), determineReplayIdFor(endpoint, "my-topic-1"), "Expecting replayId for `my-topic-1` to be 5, as endpoint configuration has priority");
 
-        assertEquals("Expecting replayId for `my-topic-2` to be 3, as endpoint does not configure it", Optional.of(3L), determineReplayIdFor(endpoint, "my-topic-2"));
+        assertEquals(Optional.of(3L), determineReplayIdFor(endpoint, "my-topic-2"), "Expecting replayId for `my-topic-2` to be 3, as endpoint does not configure it");
 
-        assertEquals("Expecting replayId for `my-topic-3` to be 4, as it is endpoint's default", Optional.of(4L), determineReplayIdFor(endpoint, "my-topic-3"));
+        assertEquals(Optional.of(4L), determineReplayIdFor(endpoint, "my-topic-3"), "Expecting replayId for `my-topic-3` to be 4, as it is endpoint's default");
 
         endpointConfig.setDefaultReplayId(null);
 
-        assertEquals("Expecting replayId for `my-topic-3` to be 1, as it is component's default when endpoint does not have a default", Optional.of(1L),
-                     determineReplayIdFor(endpoint, "my-topic-3"));
+        assertEquals(Optional.of(1L), determineReplayIdFor(endpoint, "my-topic-3"), "Expecting replayId for `my-topic-3` to be 1, as it is component's default when endpoint does not have a default");
 
         when(endpoint.getReplayId()).thenReturn(6L);
 
-        assertEquals("Expecting replayId for `my-topic-1` to be 6, as it is endpoint configured explicitly on the endpoint", Optional.of(6L),
-                     determineReplayIdFor(endpoint, "my-topic-1"));
-        assertEquals("Expecting replayId for `my-topic-2` to be 6, as it is endpoint configured explicitly on the endpoint", Optional.of(6L),
-                     determineReplayIdFor(endpoint, "my-topic-2"));
-        assertEquals("Expecting replayId for `my-topic-3` to be 6, as it is endpoint configured explicitly on the endpoint", Optional.of(6L),
-                     determineReplayIdFor(endpoint, "my-topic-3"));
+        assertEquals(Optional.of(6L), determineReplayIdFor(endpoint, "my-topic-1"), "Expecting replayId for `my-topic-1` to be 6, as it is endpoint configured explicitly on the endpoint");
+        assertEquals(Optional.of(6L), determineReplayIdFor(endpoint, "my-topic-2"), "Expecting replayId for `my-topic-2` to be 6, as it is endpoint configured explicitly on the endpoint");
+        assertEquals(Optional.of(6L), determineReplayIdFor(endpoint, "my-topic-3"), "Expecting replayId for `my-topic-3` to be 6, as it is endpoint configured explicitly on the endpoint");
     }
 
     @Test
diff --git a/components/camel-salesforce/camel-salesforce-maven-plugin/pom.xml b/components/camel-salesforce/camel-salesforce-maven-plugin/pom.xml
index 0dfe43b..0907a32 100644
--- a/components/camel-salesforce/camel-salesforce-maven-plugin/pom.xml
+++ b/components/camel-salesforce/camel-salesforce-maven-plugin/pom.xml
@@ -177,8 +177,8 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -188,7 +188,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test</artifactId>
+            <artifactId>camel-test-junit5</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -211,7 +211,7 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
+            <artifactId>mockito-junit-jupiter</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/AbstractSalesforceMojoIntegrationTest.java b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/AbstractSalesforceMojoIntegrationTest.java
index c4afc3b..e510b4f 100644
--- a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/AbstractSalesforceMojoIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/AbstractSalesforceMojoIntegrationTest.java
@@ -29,7 +29,7 @@ import org.apache.camel.component.salesforce.SalesforceEndpointConfig;
 import org.apache.camel.component.salesforce.internal.client.RestClient;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
diff --git a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/CamelSalesforceMojoIntegrationTest.java b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/CamelSalesforceMojoIntegrationTest.java
index 77fc47c..c9ff1ff 100644
--- a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/CamelSalesforceMojoIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/CamelSalesforceMojoIntegrationTest.java
@@ -31,7 +31,7 @@ import com.google.testing.compile.Compiler;
 import com.google.testing.compile.JavaFileObjects;
 import org.apache.camel.component.salesforce.SalesforceEndpointConfig;
 import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.junit.rules.TemporaryFolder;
 
 import static org.apache.camel.maven.AbstractSalesforceMojoIntegrationTest.setup;
diff --git a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/CamelSalesforceMojoOutputTest.java b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/CamelSalesforceMojoOutputTest.java
index 4fc6901..70ae04b 100644
--- a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/CamelSalesforceMojoOutputTest.java
+++ b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/CamelSalesforceMojoOutputTest.java
@@ -34,25 +34,23 @@ import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
 import org.apache.camel.component.salesforce.internal.client.RestClient;
 import org.apache.camel.component.salesforce.internal.client.RestClient.ResponseCallback;
+import org.apache.camel.test.junit5.params.Parameter;
+import org.apache.camel.test.junit5.params.Parameterized;
+import org.apache.camel.test.junit5.params.Parameters;
+import org.apache.camel.test.junit5.params.Test;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
+import org.junit.jupiter.api.io.TempDir;
 import org.mockito.stubbing.Answer;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyMap;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.mock;
 
-@RunWith(Parameterized.class)
+@Parameterized
 public class CamelSalesforceMojoOutputTest {
     private static final String TEST_CALCULATED_FORMULA_FILE = "complex_calculated_formula.json";
     private static final String TEST_CASE_FILE = "case.json";
@@ -72,12 +70,8 @@ public class CamelSalesforceMojoOutputTest {
     @Parameter(2)
     public Set<String> sources;
 
-    @Rule
-    public TemporaryFolder temp = new TemporaryFolder();
-
     @Test
-    public void testProcessDescription() throws Exception {
-        final File pkgDir = temp.newFolder();
+    public void testProcessDescription(@TempDir File pkgDir) throws Exception {
         final GenerateMojo.GeneratorUtility utility = mojo.new GeneratorUtility();
 
         final RestClient client = mockRestClient();
@@ -96,7 +90,7 @@ public class CamelSalesforceMojoOutputTest {
 
             final String expectedContent = IOUtils.toString(CamelSalesforceMojoOutputTest.class.getResource("/generated/" + expected), StandardCharsets.UTF_8);
 
-            Assert.assertEquals("Generated source file in " + source + " must be equal to the one present in test/resources/" + expected, expectedContent, generatedContent);
+            assertEquals(expectedContent, generatedContent, "Generated source file in " + source + " must be equal to the one present in test/resources/" + expected);
         }
     }
 
diff --git a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/GenerateMojoTest.java b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/GenerateMojoTest.java
index 4bce69f..758298f 100644
--- a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/GenerateMojoTest.java
+++ b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/GenerateMojoTest.java
@@ -20,13 +20,13 @@ import java.util.ArrayList;
 
 import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
 import org.apache.camel.component.salesforce.api.dto.SObjectField;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.CoreMatchers.endsWith;
 import static org.hamcrest.CoreMatchers.equalTo;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class GenerateMojoTest {
 
diff --git a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/HttpProxyMojoIntegrationTest.java b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/HttpProxyMojoIntegrationTest.java
index 1a6c544..5c97479 100644
--- a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/HttpProxyMojoIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/HttpProxyMojoIntegrationTest.java
@@ -20,8 +20,8 @@ import java.io.IOException;
 import java.util.HashMap;
 
 import org.apache.camel.test.AvailablePortFinder;
-import org.junit.After;
-import org.junit.Before;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.littleshoot.proxy.HttpProxyServer;
 import org.littleshoot.proxy.ProxyAuthenticator;
 import org.littleshoot.proxy.impl.DefaultHttpProxyServer;
@@ -38,7 +38,7 @@ public class HttpProxyMojoIntegrationTest extends CamelSalesforceMojoIntegration
 
     private HttpProxyServer proxy;
 
-    @Before
+    @BeforeEach
     public void startProxy() {
         httpProxyPort = AvailablePortFinder.getNextAvailable();
 
@@ -55,7 +55,7 @@ public class HttpProxyMojoIntegrationTest extends CamelSalesforceMojoIntegration
         }).start();
     }
 
-    @After
+    @AfterEach
     public void stopProxy() {
         proxy.stop();
     }
diff --git a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/SchemaMojoIntegrationTest.java b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/SchemaMojoIntegrationTest.java
index cd65b5e..d7e0a4b 100644
--- a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/SchemaMojoIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/SchemaMojoIntegrationTest.java
@@ -22,12 +22,12 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
 import com.fasterxml.jackson.module.jsonSchema.types.ObjectSchema;
 import org.apache.camel.component.salesforce.api.utils.JsonUtils;
-import org.junit.Assert;
 import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.junit.rules.TemporaryFolder;
 
 import static org.apache.camel.maven.AbstractSalesforceMojoIntegrationTest.setup;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class SchemaMojoIntegrationTest {
 
@@ -49,10 +49,10 @@ public class SchemaMojoIntegrationTest {
 
         // validate generated schema
         final File schemaFile = mojo.outputDirectory.toPath().resolve("test-schema.json").toFile();
-        Assert.assertTrue("Output file was not created", schemaFile.exists());
+        assertTrue(schemaFile.exists(), "Output file was not created");
         final ObjectMapper objectMapper = JsonUtils.createObjectMapper();
         final JsonSchema jsonSchema = objectMapper.readValue(schemaFile, JsonSchema.class);
-        Assert.assertTrue("Expected root JSON schema with oneOf element", jsonSchema.isObjectSchema() && !((ObjectSchema)jsonSchema).getOneOf().isEmpty());
+        assertTrue(jsonSchema.isObjectSchema() && !((ObjectSchema)jsonSchema).getOneOf().isEmpty(), "Expected root JSON schema with oneOf element");
     }
 
 }
diff --git a/components/camel-test-junit5/pom.xml b/components/camel-test-junit5/pom.xml
index 3699d04..b035323 100644
--- a/components/camel-test-junit5/pom.xml
+++ b/components/camel-test-junit5/pom.xml
@@ -146,10 +146,14 @@
 			<groupId>org.junit.jupiter</groupId>
 			<artifactId>junit-jupiter-api</artifactId>
 		</dependency>
-		<dependency>
-			<groupId>org.junit.jupiter</groupId>
-			<artifactId>junit-jupiter-engine</artifactId>
-		</dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-engine</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-params</artifactId>
+        </dependency>
 		<dependency>
 			<groupId>org.apache.logging.log4j</groupId>
 			<artifactId>log4j-slf4j-impl</artifactId>
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java b/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/Parameter.java
similarity index 78%
copy from components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java
copy to components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/Parameter.java
index 8cb8c56..e5a1fac 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java
+++ b/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/Parameter.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.salesforce;
+package org.apache.camel.test.junit5.params;
 
-/**
- * JUnit group tag interface for tests that need to be run standalone, i.e. not
- * in parallel with other tests.
- */
-public interface Standalone {
-    // tag interface
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Parameter {
+    int value() default 0;
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java b/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/Parameterized.java
similarity index 65%
copy from components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java
copy to components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/Parameterized.java
index 8cb8c56..048585b 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java
+++ b/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/Parameterized.java
@@ -14,12 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.salesforce;
+package org.apache.camel.test.junit5.params;
 
-/**
- * JUnit group tag interface for tests that need to be run standalone, i.e. not
- * in parallel with other tests.
- */
-public interface Standalone {
-    // tag interface
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.junit.jupiter.api.extension.ExtendWith;
+
+@Target({ ElementType.ANNOTATION_TYPE, ElementType.TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+@ExtendWith(ParameterizedExtension.class)
+public @interface Parameterized {
 }
diff --git a/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/ParameterizedExtension.java b/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/ParameterizedExtension.java
new file mode 100644
index 0000000..62246be
--- /dev/null
+++ b/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/ParameterizedExtension.java
@@ -0,0 +1,127 @@
+/*
+ * 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.test.junit5.params;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.stream.Collectors;
+
+import org.junit.jupiter.api.extension.Extension;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.api.extension.TestInstancePostProcessor;
+import org.junit.jupiter.api.extension.TestInstantiationException;
+import org.junit.jupiter.api.extension.TestTemplateInvocationContext;
+import org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider;
+import org.junit.jupiter.params.converter.DefaultArgumentConverter;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.platform.commons.util.CollectionUtils;
+import org.junit.platform.commons.util.ReflectionUtils;
+
+import static org.junit.jupiter.params.provider.Arguments.arguments;
+import static org.junit.platform.commons.util.AnnotationUtils.isAnnotated;
+
+public class ParameterizedExtension implements TestTemplateInvocationContextProvider {
+
+    @Override
+    public boolean supportsTestTemplate(ExtensionContext context) {
+        return context.getTestMethod()
+                .map(m -> isAnnotated(m, Test.class))
+                .orElse(false);
+    }
+
+    @Override
+    public java.util.stream.Stream<TestTemplateInvocationContext> provideTestTemplateInvocationContexts(ExtensionContext extensionContext) {
+        Class<?> testClass = extensionContext.getRequiredTestClass();
+        try {
+            java.util.List<Method> parameters = java.util.stream.Stream.of(testClass.getDeclaredMethods())
+                    .filter(m -> Modifier.isStatic(m.getModifiers()))
+                    .filter(m -> m.getAnnotation(Parameters.class) != null)
+                    .collect(Collectors.toList());
+            if (parameters.size() != 1) {
+                throw new IllegalStateException("Class " + testClass.getName() + " should provide a single method annotated with @" + Parameters.class.getSimpleName());
+            }
+            Object params = parameters.iterator().next().invoke(null);
+            return CollectionUtils.toStream(params)
+                    .map(ParameterizedExtension::toArguments)
+                    .map(Arguments::get)
+                    .map(ParameterizedTemplate::new);
+        } catch (Exception e) {
+            throw new IllegalStateException("Unable to generate test templates for class " + testClass.getName());
+        }
+    }
+
+    private static Arguments toArguments(Object item) {
+        // Nothing to do except cast.
+        if (item instanceof Arguments) {
+            return (Arguments) item;
+        }
+        // Pass all multidimensional arrays "as is", in contrast to Object[].
+        // See https://github.com/junit-team/junit5/issues/1665
+        if (ReflectionUtils.isMultidimensionalArray(item)) {
+            return arguments(item);
+        }
+        // Special treatment for one-dimensional reference arrays.
+        // See https://github.com/junit-team/junit5/issues/1665
+        if (item instanceof Object[]) {
+            return arguments((Object[]) item);
+        }
+        // Pass everything else "as is".
+        return arguments(item);
+    }
+
+    public static class ParameterizedTemplate implements TestTemplateInvocationContext {
+
+        private final Object[] params;
+
+        public ParameterizedTemplate(Object[] params) {
+            this.params = params;
+        }
+
+        @Override
+        public String getDisplayName(int invocationIndex) {
+            return "[" + invocationIndex + "] " + java.util.stream.Stream.of(params).map(Object::toString).collect(Collectors.joining(", "));
+        }
+
+        @Override
+        public java.util.List<Extension> getAdditionalExtensions() {
+            return Arrays.asList(
+                    (TestInstancePostProcessor) this::postProcessTestInstance
+                    );
+        }
+
+        protected void postProcessTestInstance(Object testInstance, ExtensionContext context) throws Exception {
+            Class<?> clazz = testInstance.getClass();
+            java.util.List<Field> fields = java.util.stream.Stream.of(clazz.getDeclaredFields())
+                    .filter(f -> isAnnotated(f, Parameter.class))
+                    .sorted(Comparator.comparing(f -> (Integer) f.getAnnotation(Parameter.class).value()))
+                    .collect(Collectors.toList());
+            if (params.length != fields.size()) {
+                throw new TestInstantiationException("Expected " + fields.size() + " parameters bug got " + params.length + " when instantiating " + clazz.getName());
+            }
+            for (int i = 0; i < fields.size(); i++) {
+                Field f = fields.get(i);
+                f.setAccessible(true);
+                f.set(testInstance, DefaultArgumentConverter.INSTANCE.convert(params[i], f.getType()));
+            }
+        }
+
+    }
+
+}
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java b/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/Parameters.java
similarity index 70%
copy from components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java
copy to components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/Parameters.java
index 8cb8c56..cabf2e5 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java
+++ b/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/Parameters.java
@@ -14,12 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.salesforce;
+package org.apache.camel.test.junit5.params;
 
-/**
- * JUnit group tag interface for tests that need to be run standalone, i.e. not
- * in parallel with other tests.
- */
-public interface Standalone {
-    // tag interface
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface Parameters {
+    String name() default "{index}";
 }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java b/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/Test.java
similarity index 76%
copy from components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java
copy to components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/Test.java
index 8cb8c56..d00bcdc 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/Standalone.java
+++ b/components/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/params/Test.java
@@ -14,12 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.salesforce;
+package org.apache.camel.test.junit5.params;
 
-/**
- * JUnit group tag interface for tests that need to be run standalone, i.e. not
- * in parallel with other tests.
- */
-public interface Standalone {
-    // tag interface
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+import org.junit.jupiter.api.TestTemplate;
+
+@Retention(RetentionPolicy.RUNTIME)
+@TestTemplate
+public @interface Test {
 }