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

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


The following commit(s) were added to refs/heads/main by this push:
     new 71722a5af97 CAMEL-19544 - remove Thread.sleep in sql component test
71722a5af97 is described below

commit 71722a5af97cde7cd4d0da88c8d8004f92dba0ff
Author: AurĂ©lien Pupier <[email protected]>
AuthorDate: Fri Jun 14 14:17:28 2024 +0200

    CAMEL-19544 - remove Thread.sleep in sql component test
    
    Gain 800ms locally but easier to read code
    
    It remains several Thread.sleep but that are testing timeouts of the sql
    component or trying to simulate a little delay so I guess we need to
    keep them.
    
    Signed-off-by: AurĂ©lien Pupier <[email protected]>
---
 .../sql/SqlConsumerDeleteBatchCompleteTest.java        | 18 ++++++------------
 .../component/sql/SqlConsumerDeleteFailedTest.java     |  8 +++-----
 .../camel/component/sql/SqlConsumerDeleteTest.java     | 14 +++-----------
 .../component/sql/SqlConsumerDeleteTransformTest.java  | 15 +++------------
 4 files changed, 15 insertions(+), 40 deletions(-)

diff --git 
a/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteBatchCompleteTest.java
 
b/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteBatchCompleteTest.java
index 935357d5915..dc0715f43e7 100644
--- 
a/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteBatchCompleteTest.java
+++ 
b/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteBatchCompleteTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.component.sql;
 
+import java.util.concurrent.TimeUnit;
+
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit5.CamelTestSupport;
@@ -27,7 +29,7 @@ import 
org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
 import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
 import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.awaitility.Awaitility.await;
 
 /**
  *
@@ -67,17 +69,9 @@ public class SqlConsumerDeleteBatchCompleteTest extends 
CamelTestSupport {
 
         MockEndpoint.assertIsSatisfied(context);
 
-        // some servers may be a bit slow for this
-        for (int i = 0; i < 5; i++) {
-            // give it a little time to delete
-            Thread.sleep(200);
-            int rows = jdbcTemplate.queryForObject("select count(*) from 
projects", Integer.class);
-            if (rows == 0) {
-                break;
-            }
-        }
-        assertEquals(Integer.valueOf(0), jdbcTemplate.queryForObject("select 
count(*) from projects", Integer.class),
-                "Should have deleted all 3 rows");
+        await("Should have deleted all 3 rows")
+                .timeout(1, TimeUnit.SECONDS)
+                .until(() -> jdbcTemplate.queryForObject("select count(*) from 
projects", Integer.class) == 0);
     }
 
     @Override
diff --git 
a/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteFailedTest.java
 
b/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteFailedTest.java
index e31f41b4f2a..3a20073614a 100644
--- 
a/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteFailedTest.java
+++ 
b/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteFailedTest.java
@@ -32,6 +32,7 @@ import 
org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
 import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
 import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
 
+import static org.awaitility.Awaitility.await;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
@@ -80,11 +81,8 @@ public class SqlConsumerDeleteFailedTest extends 
CamelTestSupport {
         assertEquals(3, exchanges.get(1).getIn().getBody(Map.class).get("ID"));
         assertEquals("Linux", 
exchanges.get(1).getIn().getBody(Map.class).get("PROJECT"));
 
-        // give it a little tine to delete
-        Thread.sleep(500);
-
-        assertEquals(Integer.valueOf(1), jdbcTemplate.queryForObject("select 
count(*) from projects", Integer.class),
-                "Should have deleted 2 rows");
+        await("Should have deleted 2 rows, keeping 1")
+                .until(() -> jdbcTemplate.queryForObject("select count(*) from 
projects", Integer.class) == 1);
         assertEquals("AMQ", jdbcTemplate.queryForObject("select PROJECT from 
projects where license = 'BAD'", String.class),
                 "Should be AMQ project that is BAD");
     }
diff --git 
a/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteTest.java
 
b/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteTest.java
index d807966aef3..4b9516b1447 100644
--- 
a/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteTest.java
+++ 
b/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteTest.java
@@ -31,6 +31,7 @@ import 
org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
 import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
 import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
 
+import static org.awaitility.Awaitility.await;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
@@ -81,17 +82,8 @@ public class SqlConsumerDeleteTest extends CamelTestSupport {
         assertEquals(3, exchanges.get(2).getIn().getBody(Map.class).get("ID"));
         assertEquals("Linux", 
exchanges.get(2).getIn().getBody(Map.class).get("PROJECT"));
 
-        // some servers may be a bit slow for this
-        for (int i = 0; i < 5; i++) {
-            // give it a little time to delete
-            Thread.sleep(200);
-            int rows = jdbcTemplate.queryForObject("select count(*) from 
projects", Integer.class);
-            if (rows == 0) {
-                break;
-            }
-        }
-        assertEquals(Integer.valueOf(0), jdbcTemplate.queryForObject("select 
count(*) from projects", Integer.class),
-                "Should have deleted all 3 rows");
+        await("Should have deleted all 3 rows")
+                .until(() -> jdbcTemplate.queryForObject("select count(*) from 
projects", Integer.class) == 0);
     }
 
     @Override
diff --git 
a/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteTransformTest.java
 
b/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteTransformTest.java
index 794caae6a58..e6c2e9fae7c 100644
--- 
a/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteTransformTest.java
+++ 
b/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlConsumerDeleteTransformTest.java
@@ -27,7 +27,7 @@ import 
org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
 import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
 import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.awaitility.Awaitility.await;
 
 /**
  *
@@ -67,17 +67,8 @@ public class SqlConsumerDeleteTransformTest extends 
CamelTestSupport {
 
         MockEndpoint.assertIsSatisfied(context);
 
-        // some servers may be a bit slow for this
-        for (int i = 0; i < 5; i++) {
-            // give it a little time to delete
-            Thread.sleep(200);
-            int rows = jdbcTemplate.queryForObject("select count(*) from 
projects", Integer.class);
-            if (rows == 0) {
-                break;
-            }
-        }
-        assertEquals(Integer.valueOf(0), jdbcTemplate.queryForObject("select 
count(*) from projects", Integer.class),
-                "Should have deleted all 3 rows");
+        await("Should have deleted all 3 rows")
+                .until(() -> jdbcTemplate.queryForObject("select count(*) from 
projects", Integer.class) == 0);
     }
 
     @Override

Reply via email to