You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2024/09/11 08:00:14 UTC

(camel) branch main updated (1e1c485f556 -> d57f849bff6)

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

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


    from 1e1c485f556 Regen
     new fc4c39d13cf CAMEL-19538: Replaced Thread.sleep() in camel-mllp
     new a3b4c935547 CAMEL-19538: Fixed awaitility issues in camel-mllp
     new 35e4563fe47 CAMEL-19538: added awaitility to the classpath, replaced awaitility lib in tests
     new ae071ab4eb0 CAMEL-19538: added assertThrows where needed
     new 721916b861b CAMEL-19538: changed some ineffective assertions
     new c2a17bc4ef3 CAMEL-19538: changed some ineffective assertions
     new d57f849bff6 CAMEL-19538: changed some ineffective assertions

The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 components/camel-mllp/pom.xml                      |  6 ++++
 .../MllpTcpServerConsumerLenientBindTest.java      |  8 +++--
 .../mllp/MllpIdleTimeoutStrategyTest.java          |  9 +++--
 ...TcpClientProducerIdleConnectionTimeoutTest.java | 37 +++++++++----------
 .../mllp/MllpTcpServerConsumerBindTimeoutTest.java | 19 +++++-----
 .../mllp/MllpTcpServerConsumerConnectionTest.java  | 42 +++++++++++-----------
 .../camel/test/executor/PooledExecutorTest.java    |  5 +--
 .../camel/test/tcp/JavaSocketManualTests.java      |  8 ++++-
 8 files changed, 70 insertions(+), 64 deletions(-)


(camel) 07/07: CAMEL-19538: changed some ineffective assertions

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit d57f849bff67100aeb6cd9da08e45e84260958ef
Author: Nikita Konovalov <nk...@redhat.com>
AuthorDate: Wed Aug 28 13:54:21 2024 +0200

    CAMEL-19538: changed some ineffective assertions
---
 .../java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java    | 2 +-
 .../org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java   | 2 +-
 .../camel/component/mllp/MllpTcpServerConsumerConnectionTest.java      | 3 +--
 3 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java b/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java
index 6dae69c084a..825a0e4ff8b 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java
@@ -27,9 +27,9 @@ import org.apache.camel.test.junit.rule.mllp.MllpClientResource;
 import org.apache.camel.test.junit.rule.mllp.MllpJUnitResourceTimeoutException;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.test.mllp.Hl7TestMessageGenerator;
+import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
-import org.awaitility.Awaitility;
 
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.apache.camel.test.junit5.TestSupport.assertStringContains;
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java
index 4f9ee0ffb58..9ee95852fa3 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java
@@ -33,11 +33,11 @@ import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit.rule.mllp.MllpServerResource;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.test.mllp.Hl7TestMessageGenerator;
+import org.awaitility.Awaitility;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.mockito.Mockito;
-import org.awaitility.Awaitility;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.never;
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
index 005ea041b01..6f39abc5f96 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
@@ -137,8 +137,7 @@ public class MllpTcpServerConsumerConnectionTest extends CamelTestSupport {
 
         Awaitility.await().untilAsserted(() -> {
 
-            MllpJUnitResourceException ex = assertThrows(MllpJUnitResourceException.class, () ->
-                    mllpClient.checkConnection(),
+            MllpJUnitResourceException ex = assertThrows(MllpJUnitResourceException.class, () -> mllpClient.checkConnection(),
                     "The MllpClientResource should have thrown an exception when writing to the reset socket");
 
             assertEquals("checkConnection failed - read() returned END_OF_STREAM", ex.getMessage());


(camel) 05/07: CAMEL-19538: changed some ineffective assertions

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 721916b861be525d8a158dc4c55bbbe2c8f54021
Author: Nikita Konovalov <nk...@redhat.com>
AuthorDate: Wed Aug 28 11:39:25 2024 +0200

    CAMEL-19538: changed some ineffective assertions
---
 .../MllpTcpClientProducerIdleConnectionTimeoutTest.java   | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
index 6718eb0a3c4..84e7b0ffd15 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
@@ -114,9 +114,9 @@ public class MllpTcpClientProducerIdleConnectionTimeoutTest extends CamelTestSup
         // Need to send one message to get the connection established
         source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
-        Awaitility.await().atMost(IDLE_TIMEOUT / 2, TimeUnit.MILLISECONDS).untilAsserted(() -> {
-            source.sendBody(Hl7TestMessageGenerator.generateMessage());
+        source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
+        Awaitility.await().atMost(IDLE_TIMEOUT / 2, TimeUnit.MILLISECONDS).untilAsserted(() -> {
             assertTrue(done.matches(5, TimeUnit.SECONDS), "Should have completed two exchanges");
 
             MockEndpoint.assertIsSatisfied(context, 5, TimeUnit.SECONDS);
@@ -139,18 +139,15 @@ public class MllpTcpClientProducerIdleConnectionTimeoutTest extends CamelTestSup
         // Need to send one message to get the connection established
         source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
-        Awaitility.await().atMost(IDLE_TIMEOUT / 2, TimeUnit.MILLISECONDS).untilAsserted(() -> {
-            source.sendBody(Hl7TestMessageGenerator.generateMessage());
+        source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
-            assertTrue(done.matches(5, TimeUnit.SECONDS), "Should have completed two exchanges");
-        });
+        Awaitility.await().atMost(IDLE_TIMEOUT / 2, TimeUnit.MILLISECONDS)
+                .untilAsserted(() -> assertTrue(done.matches(5, TimeUnit.SECONDS), "Should have completed two exchanges"));
 
         Awaitility.await().untilAsserted(() -> {
-            assertThrows(MllpJUnitResourceException.class, () ->
-                    mllpServer.checkClientConnections(),
+            assertThrows(MllpJUnitResourceException.class, () -> mllpServer.checkClientConnections(),
                     "Should receive and exception for the closed connection");
 
-
             source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
             MockEndpoint.assertIsSatisfied(context, 5, TimeUnit.SECONDS);


(camel) 04/07: CAMEL-19538: added assertThrows where needed

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ae071ab4eb0946fd75c35e09ab6ac67466c472f2
Author: Nikita Konovalov <nk...@redhat.com>
AuthorDate: Wed Jul 31 12:57:24 2024 +0200

    CAMEL-19538: added assertThrows where needed
---
 ...lpTcpClientProducerIdleConnectionTimeoutTest.java | 15 ++++++---------
 .../mllp/MllpTcpServerConsumerBindTimeoutTest.java   |  8 ++------
 .../mllp/MllpTcpServerConsumerConnectionTest.java    | 20 ++++++++++----------
 3 files changed, 18 insertions(+), 25 deletions(-)

diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
index 02d79063651..6718eb0a3c4 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
@@ -31,15 +31,14 @@ import org.apache.camel.test.junit.rule.mllp.MllpJUnitResourceException;
 import org.apache.camel.test.junit.rule.mllp.MllpServerResource;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.test.mllp.Hl7TestMessageGenerator;
+import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.awaitility.Awaitility;
 
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
 
 public class MllpTcpClientProducerIdleConnectionTimeoutTest extends CamelTestSupport {
 
@@ -146,13 +145,11 @@ public class MllpTcpClientProducerIdleConnectionTimeoutTest extends CamelTestSup
             assertTrue(done.matches(5, TimeUnit.SECONDS), "Should have completed two exchanges");
         });
 
-        Awaitility.await().atMost((long) (IDLE_TIMEOUT * 1.1), TimeUnit.MILLISECONDS).untilAsserted(() -> {
-            try {
-                mllpServer.checkClientConnections();
-                fail("Should receive and exception for the closed connection");
-            } catch (MllpJUnitResourceException expectedEx) {
-                // Eat this
-            }
+        Awaitility.await().untilAsserted(() -> {
+            assertThrows(MllpJUnitResourceException.class, () ->
+                    mllpServer.checkClientConnections(),
+                    "Should receive and exception for the closed connection");
+
 
             source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java
index bc74e1d7137..234f6ae09d8 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java
@@ -30,10 +30,8 @@ import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit.rule.mllp.MllpClientResource;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.test.mllp.Hl7TestMessageGenerator;
-import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
-import org.awaitility.Awaitility;
 
 public class MllpTcpServerConsumerBindTimeoutTest extends CamelTestSupport {
 
@@ -93,10 +91,8 @@ public class MllpTcpServerConsumerBindTimeoutTest extends CamelTestSupport {
         Thread tmpThread = new Thread(() -> {
             try {
                 ServerSocket tmpSocket = new ServerSocket(mllpClient.getMllpPort());
-                Awaitility.await().atMost(15, TimeUnit.SECONDS).untilAsserted(() -> {
-                    tmpSocket.close();
-                    Assertions.assertTrue(tmpSocket.isClosed());
-                });
+                Thread.sleep(15000);
+                tmpSocket.close();
             } catch (Exception ex) {
                 throw new RuntimeCamelException("Exception caught in dummy listener", ex);
             }
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
index 4ebe99d56bd..005ea041b01 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
@@ -26,14 +26,14 @@ import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit.rule.mllp.MllpClientResource;
 import org.apache.camel.test.junit.rule.mllp.MllpJUnitResourceException;
 import org.apache.camel.test.junit5.CamelTestSupport;
+import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
-import org.awaitility.Awaitility;
 
 import static org.apache.camel.test.junit5.ThrottlingExecutor.slowly;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.fail;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 public class MllpTcpServerConsumerConnectionTest extends CamelTestSupport {
     static final int RECEIVE_TIMEOUT = 1000;
@@ -135,14 +135,14 @@ public class MllpTcpServerConsumerConnectionTest extends CamelTestSupport {
         mllpClient.connect();
         mllpClient.sendMessageAndWaitForAcknowledgement(testMessage);
 
-        Awaitility.await().atMost(idleTimeout + RECEIVE_TIMEOUT, TimeUnit.MILLISECONDS).untilAsserted(() -> {
-            try {
-                mllpClient.checkConnection();
-                fail("The MllpClientResource should have thrown an exception when writing to the reset socket");
-            } catch (MllpJUnitResourceException expectedEx) {
-                assertEquals("checkConnection failed - read() returned END_OF_STREAM", expectedEx.getMessage());
-                assertNull(expectedEx.getCause());
-            }
+        Awaitility.await().untilAsserted(() -> {
+
+            MllpJUnitResourceException ex = assertThrows(MllpJUnitResourceException.class, () ->
+                    mllpClient.checkConnection(),
+                    "The MllpClientResource should have thrown an exception when writing to the reset socket");
+
+            assertEquals("checkConnection failed - read() returned END_OF_STREAM", ex.getMessage());
+            assertNull(ex.getCause());
 
             MockEndpoint.assertIsSatisfied(context, 15, TimeUnit.SECONDS);
         });


(camel) 01/07: CAMEL-19538: Replaced Thread.sleep() in camel-mllp

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit fc4c39d13cf51713dfe4da9d7c62975a865b6634
Author: Nikita Konovalov <nk...@redhat.com>
AuthorDate: Thu Jul 25 14:46:26 2024 +0200

    CAMEL-19538: Replaced Thread.sleep() in camel-mllp
---
 .../MllpTcpServerConsumerLenientBindTest.java      |  8 ++--
 .../mllp/MllpIdleTimeoutStrategyTest.java          |  9 +++--
 ...TcpClientProducerIdleConnectionTimeoutTest.java | 46 ++++++++++++----------
 .../mllp/MllpTcpServerConsumerBindTimeoutTest.java |  8 +++-
 .../mllp/MllpTcpServerConsumerConnectionTest.java  | 26 ++++++------
 ...rConsumerEndOfDataAndValidationTestSupport.java | 31 +++++++--------
 .../camel/test/executor/PooledExecutorTest.java    |  5 +--
 .../camel/test/tcp/JavaSocketManualTests.java      | 23 ++++++-----
 8 files changed, 84 insertions(+), 72 deletions(-)

diff --git a/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java b/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java
index 6e007d69885..e885463f5e8 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java
@@ -18,6 +18,7 @@ package org.apache.camel;
 
 import java.net.ServerSocket;
 import java.net.SocketTimeoutException;
+import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -28,6 +29,7 @@ import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.test.mllp.Hl7TestMessageGenerator;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
+import org.testcontainers.shaded.org.awaitility.Awaitility;
 
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.apache.camel.test.junit5.TestSupport.assertStringContains;
@@ -86,10 +88,10 @@ public class MllpTcpServerConsumerLenientBindTest extends CamelTestSupport {
             assertIsInstanceOf(SocketTimeoutException.class, expectedEx.getCause());
         }
         mllpClient.reset();
-
         portBlocker.close();
-        Thread.sleep(2000);
-        assertEquals(ServiceStatus.Started, context.getStatus());
+
+        Awaitility.await().pollDelay(2000, TimeUnit.MILLISECONDS)
+                .untilAsserted(() -> assertEquals(ServiceStatus.Started, context.getStatus()));
 
         mllpClient.connect();
         String acknowledgement
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java
index 699e1cd56fb..de9c31457c0 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java
@@ -37,6 +37,7 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.mockito.Mockito;
+import org.testcontainers.shaded.org.awaitility.Awaitility;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.never;
@@ -146,10 +147,12 @@ public class MllpIdleTimeoutStrategyTest extends CamelTestSupport {
 
     private void sendHl7Message(ProducerTemplate template) throws Exception {
         target.expectedMessageCount(1);
-        // Need to send one message to get the connection established
+
         template.sendBody(Hl7TestMessageGenerator.generateMessage());
-        Thread.sleep(IDLE_TIMEOUT * 3);
-        MockEndpoint.assertIsSatisfied(context, 5, TimeUnit.SECONDS);
+
+        // Need to send one message to get the connection established
+        Awaitility.await().pollDelay(IDLE_TIMEOUT * 3, TimeUnit.MILLISECONDS)
+                .untilAsserted(() -> MockEndpoint.assertIsSatisfied(context, 5, TimeUnit.SECONDS));
     }
 
     @Test
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
index 970e17acccc..9927885d52a 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
@@ -35,6 +35,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.testcontainers.shaded.org.awaitility.Awaitility;
 
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -114,17 +115,18 @@ public class MllpTcpClientProducerIdleConnectionTimeoutTest extends CamelTestSup
         // Need to send one message to get the connection established
         source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
-        Thread.sleep(IDLE_TIMEOUT / 2);
-        source.sendBody(Hl7TestMessageGenerator.generateMessage());
-
-        assertTrue(done.matches(5, TimeUnit.SECONDS), "Should have completed two exchanges");
+        Awaitility.await().untilAsserted(() -> {
+            source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
-        MockEndpoint.assertIsSatisfied(context, 5, TimeUnit.SECONDS);
+            assertTrue(done.matches(5, TimeUnit.SECONDS), "Should have completed two exchanges");
 
-        Thread.sleep((long) (IDLE_TIMEOUT * 1.1));
+            MockEndpoint.assertIsSatisfied(context, 5, TimeUnit.SECONDS);
+        });
 
-        assertThrows(MllpJUnitResourceException.class,
-                () -> mllpServer.checkClientConnections());
+        Awaitility.await().untilAsserted(() -> {
+            assertThrows(MllpJUnitResourceException.class,
+                    () -> mllpServer.checkClientConnections());
+        });
     }
 
     @Test
@@ -138,23 +140,25 @@ public class MllpTcpClientProducerIdleConnectionTimeoutTest extends CamelTestSup
         // Need to send one message to get the connection established
         source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
-        Thread.sleep(IDLE_TIMEOUT / 2);
-        source.sendBody(Hl7TestMessageGenerator.generateMessage());
-
-        assertTrue(done.matches(5, TimeUnit.SECONDS), "Should have completed two exchanges");
+        Awaitility.await().untilAsserted(() -> {
+            Thread.sleep(IDLE_TIMEOUT / 2);
+            source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
-        Thread.sleep((long) (IDLE_TIMEOUT * 1.1));
+            assertTrue(done.matches(5, TimeUnit.SECONDS), "Should have completed two exchanges");
+        });
 
-        try {
-            mllpServer.checkClientConnections();
-            fail("Should receive and exception for the closed connection");
-        } catch (MllpJUnitResourceException expectedEx) {
-            // Eat this
-        }
+        Awaitility.await().untilAsserted(() -> {
+            try {
+                mllpServer.checkClientConnections();
+                fail("Should receive and exception for the closed connection");
+            } catch (MllpJUnitResourceException expectedEx) {
+                // Eat this
+            }
 
-        source.sendBody(Hl7TestMessageGenerator.generateMessage());
+            source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
-        MockEndpoint.assertIsSatisfied(context, 5, TimeUnit.SECONDS);
+            MockEndpoint.assertIsSatisfied(context, 5, TimeUnit.SECONDS);
+        });
 
         log.debug("Breakpoint");
     }
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java
index 7a5519d629c..2419818a579 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java
@@ -30,8 +30,10 @@ import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit.rule.mllp.MllpClientResource;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.test.mllp.Hl7TestMessageGenerator;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
+import org.testcontainers.shaded.org.awaitility.Awaitility;
 
 public class MllpTcpServerConsumerBindTimeoutTest extends CamelTestSupport {
 
@@ -92,8 +94,10 @@ public class MllpTcpServerConsumerBindTimeoutTest extends CamelTestSupport {
             public void run() {
                 try {
                     ServerSocket tmpSocket = new ServerSocket(mllpClient.getMllpPort());
-                    Thread.sleep(15000);
-                    tmpSocket.close();
+                    Awaitility.await().untilAsserted(() -> {
+                        tmpSocket.close();
+                        Assertions.assertTrue(tmpSocket.isClosed());
+                    });
                 } catch (Exception ex) {
                     throw new RuntimeCamelException("Exception caught in dummy listener", ex);
                 }
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
index 4fc5c437b25..a4ebc6cc00f 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
@@ -28,6 +28,7 @@ import org.apache.camel.test.junit.rule.mllp.MllpJUnitResourceException;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
+import org.testcontainers.shaded.org.awaitility.Awaitility;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
@@ -83,13 +84,11 @@ public class MllpTcpServerConsumerConnectionTest extends CamelTestSupport {
 
         for (int i = 1; i <= connectionCount; ++i) {
             mllpClient.connect();
-            Thread.sleep(connectionMillis);
             mllpClient.close();
         }
 
         // Connect one more time and allow a client thread to start
         mllpClient.connect();
-        Thread.sleep(1000);
         mllpClient.close();
 
         MockEndpoint.assertIsSatisfied(context, 15, TimeUnit.SECONDS);
@@ -107,13 +106,11 @@ public class MllpTcpServerConsumerConnectionTest extends CamelTestSupport {
 
         for (int i = 1; i <= connectionCount; ++i) {
             mllpClient.connect();
-            Thread.sleep(connectionMillis);
             mllpClient.reset();
         }
 
         // Connect one more time and allow a client thread to start
         mllpClient.connect();
-        Thread.sleep(1000);
         mllpClient.reset();
 
         MockEndpoint.assertIsSatisfied(context, 15, TimeUnit.SECONDS);
@@ -136,17 +133,18 @@ public class MllpTcpServerConsumerConnectionTest extends CamelTestSupport {
 
         mllpClient.connect();
         mllpClient.sendMessageAndWaitForAcknowledgement(testMessage);
-        Thread.sleep(idleTimeout + RECEIVE_TIMEOUT);
-
-        try {
-            mllpClient.checkConnection();
-            fail("The MllpClientResource should have thrown an exception when writing to the reset socket");
-        } catch (MllpJUnitResourceException expectedEx) {
-            assertEquals("checkConnection failed - read() returned END_OF_STREAM", expectedEx.getMessage());
-            assertNull(expectedEx.getCause());
-        }
 
-        MockEndpoint.assertIsSatisfied(context, 15, TimeUnit.SECONDS);
+        Awaitility.await().untilAsserted(() -> {
+            try {
+                mllpClient.checkConnection();
+                fail("The MllpClientResource should have thrown an exception when writing to the reset socket");
+            } catch (MllpJUnitResourceException expectedEx) {
+                assertEquals("checkConnection failed - read() returned END_OF_STREAM", expectedEx.getMessage());
+                assertNull(expectedEx.getCause());
+            }
+
+            MockEndpoint.assertIsSatisfied(context, 15, TimeUnit.SECONDS);
+        });
     }
 
     void addTestRouteWithIdleTimeout(final int idleTimeout) throws Exception {
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java
index e1ded8a621e..4b947ae8075 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java
@@ -36,6 +36,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.testcontainers.shaded.org.awaitility.Awaitility;
 
 import static org.apache.camel.component.mllp.MllpExceptionTestSupport.LOG_PHI_TRUE;
 import static org.hamcrest.CoreMatchers.instanceOf;
@@ -138,8 +139,6 @@ public abstract class TcpServerConsumerEndOfDataAndValidationTestSupport extends
         setExpectedCounts();
 
         mllpClient.connect();
-
-        Thread.sleep(5000);
         mllpClient.sendMessageAndWaitForAcknowledgement(Hl7TestMessageGenerator.generateMessage(), 10000);
     }
 
@@ -187,7 +186,6 @@ public abstract class TcpServerConsumerEndOfDataAndValidationTestSupport extends
             log.info("Expected exception reading response");
         }
         mllpClient.disconnect();
-        Thread.sleep(1000);
         mllpClient.connect();
 
         log.info("Sending TEST_MESSAGE_4");
@@ -243,20 +241,21 @@ public abstract class TcpServerConsumerEndOfDataAndValidationTestSupport extends
         log.info("Sending first message");
         mllpClient.sendFramedData(Hl7TestMessageGenerator.generateMessage(10001));
 
-        Thread.sleep(RECEIVE_TIMEOUT * 5);
-
-        mllpClient.setSendEndOfBlock(true);
-        mllpClient.setSendEndOfData(true);
+        Awaitility.await().pollDelay(RECEIVE_TIMEOUT * 5, TimeUnit.MILLISECONDS).untilAsserted(() -> {
+            mllpClient.setSendEndOfBlock(true);
+            mllpClient.setSendEndOfData(true);
 
-        try {
-            log.info("Attempting to send second message");
-            String acknowledgement
-                    = mllpClient.sendMessageAndWaitForAcknowledgement(Hl7TestMessageGenerator.generateMessage(10002));
-            assertEquals("", acknowledgement, "If the send doesn't throw an exception, the acknowledgement should be empty");
-        } catch (MllpJUnitResourceException expected) {
-            assertThat("If the send throws an exception, the cause should be a SocketException", expected.getCause(),
-                    instanceOf(SocketException.class));
-        }
+            try {
+                log.info("Attempting to send second message");
+                String acknowledgement
+                        = mllpClient.sendMessageAndWaitForAcknowledgement(Hl7TestMessageGenerator.generateMessage(10002));
+                assertEquals("", acknowledgement,
+                        "If the send doesn't throw an exception, the acknowledgement should be empty");
+            } catch (MllpJUnitResourceException expected) {
+                assertThat("If the send throws an exception, the cause should be a SocketException", expected.getCause(),
+                        instanceOf(SocketException.class));
+            }
+        });
 
         mllpClient.disconnect();
         mllpClient.connect();
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/test/executor/PooledExecutorTest.java b/components/camel-mllp/src/test/java/org/apache/camel/test/executor/PooledExecutorTest.java
index 40c9898d69e..8ecf7344e53 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/test/executor/PooledExecutorTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/test/executor/PooledExecutorTest.java
@@ -52,15 +52,12 @@ public class PooledExecutorTest {
         log.info("Starting first set of runnables");
         startRunnables(runnableCount, runCount);
 
-        Thread.sleep(THREAD_COUNT * TestRunnable.SLEEP_MILLIS);
-
         log.info("Starting second set of runnables");
         startRunnables(runnableCount, runCount);
     }
 
-    void startRunnables(int runnableCount, int runCount) throws InterruptedException {
+    void startRunnables(int runnableCount, int runCount) {
         for (int id = 1; id <= runnableCount; ++id) {
-            Thread.sleep(TestRunnable.SLEEP_MILLIS / 2);
             try {
                 instance.addRunnable(new TestRunnable(id, runCount));
             } catch (RejectedExecutionException rejectedEx) {
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java b/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java
index 16a8c0c0175..30b8623f0c1 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java
@@ -31,7 +31,9 @@ import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.testcontainers.shaded.org.awaitility.Awaitility;
 
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
 /**
@@ -283,15 +285,18 @@ public class JavaSocketManualTests {
             log.info("Client Socket read() timed-out before close");
         }
         clientSocket.getOutputStream().write(27);
-        Thread.sleep(1000);
-        log.info("Client Socket available() returned {} after close", clientSocket.getInputStream().available());
-        log.info("Client Socket read() returned {} after close", clientSocket.getInputStream().read());
-        // Javadoc for Socket says closing the InputStream will close the connection
-        clientSocket.getInputStream().close();
-        if (!clientSocket.isClosed()) {
-            log.warn("Closing input stream didn't close socket");
-            clientSocket.close();
-        }
+        Awaitility.await().untilAsserted(() -> {
+            log.info("Client Socket available() returned {} after close", clientSocket.getInputStream().available());
+            log.info("Client Socket read() returned {} after close", clientSocket.getInputStream().read());
+            // Javadoc for Socket says closing the InputStream will close the connection
+            clientSocket.getInputStream().close();
+            if (!clientSocket.isClosed()) {
+                log.warn("Closing input stream didn't close socket");
+                clientSocket.close();
+            }
+            assertTrue(clientSocket.isClosed());
+        });
+
         log.info("Sleeping ...");
         Thread.sleep(5000);
 


(camel) 02/07: CAMEL-19538: Fixed awaitility issues in camel-mllp

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit a3b4c93554794011f6a1066f9140fa46adbd48e4
Author: Nikita Konovalov <nk...@redhat.com>
AuthorDate: Tue Jul 30 12:28:09 2024 +0200

    CAMEL-19538: Fixed awaitility issues in camel-mllp
---
 .../MllpTcpServerConsumerLenientBindTest.java      |  2 +-
 .../mllp/MllpIdleTimeoutStrategyTest.java          |  2 +-
 ...TcpClientProducerIdleConnectionTimeoutTest.java |  9 ++++-----
 .../mllp/MllpTcpServerConsumerBindTimeoutTest.java | 23 ++++++++++------------
 .../mllp/MllpTcpServerConsumerConnectionTest.java  | 19 +++++++++---------
 ...rConsumerEndOfDataAndValidationTestSupport.java |  3 ++-
 .../camel/test/tcp/JavaSocketManualTests.java      |  3 ++-
 7 files changed, 30 insertions(+), 31 deletions(-)

diff --git a/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java b/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java
index e885463f5e8..953984e6bcd 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java
@@ -90,7 +90,7 @@ public class MllpTcpServerConsumerLenientBindTest extends CamelTestSupport {
         mllpClient.reset();
         portBlocker.close();
 
-        Awaitility.await().pollDelay(2000, TimeUnit.MILLISECONDS)
+        Awaitility.await().atMost(2000, TimeUnit.MILLISECONDS).pollInterval(500, TimeUnit.MILLISECONDS)
                 .untilAsserted(() -> assertEquals(ServiceStatus.Started, context.getStatus()));
 
         mllpClient.connect();
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java
index de9c31457c0..e735790e119 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java
@@ -151,7 +151,7 @@ public class MllpIdleTimeoutStrategyTest extends CamelTestSupport {
         template.sendBody(Hl7TestMessageGenerator.generateMessage());
 
         // Need to send one message to get the connection established
-        Awaitility.await().pollDelay(IDLE_TIMEOUT * 3, TimeUnit.MILLISECONDS)
+        Awaitility.await().atMost(IDLE_TIMEOUT * 3, TimeUnit.MILLISECONDS).pollInterval(500, TimeUnit.MILLISECONDS)
                 .untilAsserted(() -> MockEndpoint.assertIsSatisfied(context, 5, TimeUnit.SECONDS));
     }
 
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
index 9927885d52a..b593b2e1d41 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
@@ -115,7 +115,7 @@ public class MllpTcpClientProducerIdleConnectionTimeoutTest extends CamelTestSup
         // Need to send one message to get the connection established
         source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
-        Awaitility.await().untilAsserted(() -> {
+        Awaitility.await().atMost(IDLE_TIMEOUT / 2, TimeUnit.MILLISECONDS).untilAsserted(() -> {
             source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
             assertTrue(done.matches(5, TimeUnit.SECONDS), "Should have completed two exchanges");
@@ -123,7 +123,7 @@ public class MllpTcpClientProducerIdleConnectionTimeoutTest extends CamelTestSup
             MockEndpoint.assertIsSatisfied(context, 5, TimeUnit.SECONDS);
         });
 
-        Awaitility.await().untilAsserted(() -> {
+        Awaitility.await().atMost((long) (IDLE_TIMEOUT * 1.1), TimeUnit.MILLISECONDS).untilAsserted(() -> {
             assertThrows(MllpJUnitResourceException.class,
                     () -> mllpServer.checkClientConnections());
         });
@@ -140,14 +140,13 @@ public class MllpTcpClientProducerIdleConnectionTimeoutTest extends CamelTestSup
         // Need to send one message to get the connection established
         source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
-        Awaitility.await().untilAsserted(() -> {
-            Thread.sleep(IDLE_TIMEOUT / 2);
+        Awaitility.await().atMost(IDLE_TIMEOUT / 2, TimeUnit.MILLISECONDS).untilAsserted(() -> {
             source.sendBody(Hl7TestMessageGenerator.generateMessage());
 
             assertTrue(done.matches(5, TimeUnit.SECONDS), "Should have completed two exchanges");
         });
 
-        Awaitility.await().untilAsserted(() -> {
+        Awaitility.await().atMost((long) (IDLE_TIMEOUT * 1.1), TimeUnit.MILLISECONDS).untilAsserted(() -> {
             try {
                 mllpServer.checkClientConnections();
                 fail("Should receive and exception for the closed connection");
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java
index 2419818a579..972294c930e 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java
@@ -90,20 +90,17 @@ public class MllpTcpServerConsumerBindTimeoutTest extends CamelTestSupport {
     public void testReceiveSingleMessage() throws Exception {
         result.expectedMessageCount(1);
 
-        Thread tmpThread = new Thread() {
-            public void run() {
-                try {
-                    ServerSocket tmpSocket = new ServerSocket(mllpClient.getMllpPort());
-                    Awaitility.await().untilAsserted(() -> {
-                        tmpSocket.close();
-                        Assertions.assertTrue(tmpSocket.isClosed());
-                    });
-                } catch (Exception ex) {
-                    throw new RuntimeCamelException("Exception caught in dummy listener", ex);
-                }
+        Thread tmpThread = new Thread(() -> {
+            try {
+                ServerSocket tmpSocket = new ServerSocket(mllpClient.getMllpPort());
+                Awaitility.await().atMost(15, TimeUnit.SECONDS).untilAsserted(() -> {
+                    tmpSocket.close();
+                    Assertions.assertTrue(tmpSocket.isClosed());
+                });
+            } catch (Exception ex) {
+                throw new RuntimeCamelException("Exception caught in dummy listener", ex);
             }
-
-        };
+        });
 
         tmpThread.start();
 
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
index a4ebc6cc00f..a0e952a94ac 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
@@ -30,6 +30,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.testcontainers.shaded.org.awaitility.Awaitility;
 
+import static org.apache.camel.test.junit5.ThrottlingExecutor.slowly;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.fail;
@@ -82,10 +83,10 @@ public class MllpTcpServerConsumerConnectionTest extends CamelTestSupport {
 
         addTestRouteWithIdleTimeout(-1);
 
-        for (int i = 1; i <= connectionCount; ++i) {
-            mllpClient.connect();
-            mllpClient.close();
-        }
+        slowly().repeat(connectionCount).awaiting(connectionMillis, TimeUnit.MILLISECONDS)
+                .beforeEach((i) -> mllpClient.connect())
+                .afterEach((i) -> mllpClient.reset())
+                .execute();
 
         // Connect one more time and allow a client thread to start
         mllpClient.connect();
@@ -104,10 +105,10 @@ public class MllpTcpServerConsumerConnectionTest extends CamelTestSupport {
 
         addTestRouteWithIdleTimeout(-1);
 
-        for (int i = 1; i <= connectionCount; ++i) {
-            mllpClient.connect();
-            mllpClient.reset();
-        }
+        slowly().repeat(connectionCount).awaiting(connectionMillis, TimeUnit.MILLISECONDS)
+                .beforeEach((i) -> mllpClient.connect())
+                .afterEach((i) -> mllpClient.reset())
+                .execute();
 
         // Connect one more time and allow a client thread to start
         mllpClient.connect();
@@ -134,7 +135,7 @@ public class MllpTcpServerConsumerConnectionTest extends CamelTestSupport {
         mllpClient.connect();
         mllpClient.sendMessageAndWaitForAcknowledgement(testMessage);
 
-        Awaitility.await().untilAsserted(() -> {
+        Awaitility.await().atMost(idleTimeout + RECEIVE_TIMEOUT, TimeUnit.MILLISECONDS).untilAsserted(() -> {
             try {
                 mllpClient.checkConnection();
                 fail("The MllpClientResource should have thrown an exception when writing to the reset socket");
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java
index 4b947ae8075..89b8fe1d0ff 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java
@@ -241,7 +241,8 @@ public abstract class TcpServerConsumerEndOfDataAndValidationTestSupport extends
         log.info("Sending first message");
         mllpClient.sendFramedData(Hl7TestMessageGenerator.generateMessage(10001));
 
-        Awaitility.await().pollDelay(RECEIVE_TIMEOUT * 5, TimeUnit.MILLISECONDS).untilAsserted(() -> {
+        Awaitility.await().atMost(RECEIVE_TIMEOUT * 5, TimeUnit.MILLISECONDS).pollInterval(500, TimeUnit.MILLISECONDS)
+                .untilAsserted(() -> {
             mllpClient.setSendEndOfBlock(true);
             mllpClient.setSendEndOfData(true);
 
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java b/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java
index 30b8623f0c1..1c0eac3fd42 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java
@@ -24,6 +24,7 @@ import java.io.OutputStream;
 import java.net.ServerSocket;
 import java.net.Socket;
 import java.net.SocketTimeoutException;
+import java.util.concurrent.TimeUnit;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
@@ -285,7 +286,7 @@ public class JavaSocketManualTests {
             log.info("Client Socket read() timed-out before close");
         }
         clientSocket.getOutputStream().write(27);
-        Awaitility.await().untilAsserted(() -> {
+        Awaitility.await().atMost(1000, TimeUnit.MILLISECONDS).untilAsserted(() -> {
             log.info("Client Socket available() returned {} after close", clientSocket.getInputStream().available());
             log.info("Client Socket read() returned {} after close", clientSocket.getInputStream().read());
             // Javadoc for Socket says closing the InputStream will close the connection


(camel) 03/07: CAMEL-19538: added awaitility to the classpath, replaced awaitility lib in tests

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 35e4563fe47f3437876b1ded73538f82082e550e
Author: Nikita Konovalov <nk...@redhat.com>
AuthorDate: Tue Jul 30 13:03:35 2024 +0200

    CAMEL-19538: added awaitility to the classpath, replaced awaitility lib in tests
---
 components/camel-mllp/pom.xml                                       | 6 ++++++
 .../java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java | 2 +-
 .../apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java    | 2 +-
 .../mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java        | 2 +-
 .../camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java  | 2 +-
 .../camel/component/mllp/MllpTcpServerConsumerConnectionTest.java   | 2 +-
 .../mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java    | 2 +-
 .../test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java  | 2 +-
 8 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/components/camel-mllp/pom.xml b/components/camel-mllp/pom.xml
index b48929492ac..31d3705d687 100644
--- a/components/camel-mllp/pom.xml
+++ b/components/camel-mllp/pom.xml
@@ -83,6 +83,12 @@
             <scope>test</scope>
             <type>test-jar</type>
         </dependency>
+        <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+            <version>4.2.1</version>
+            <scope>test</scope>
+        </dependency>
 
     </dependencies>
 </project>
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java b/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java
index 953984e6bcd..6dae69c084a 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/MllpTcpServerConsumerLenientBindTest.java
@@ -29,7 +29,7 @@ import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.test.mllp.Hl7TestMessageGenerator;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
-import org.testcontainers.shaded.org.awaitility.Awaitility;
+import org.awaitility.Awaitility;
 
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.apache.camel.test.junit5.TestSupport.assertStringContains;
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java
index e735790e119..4f9ee0ffb58 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpIdleTimeoutStrategyTest.java
@@ -37,7 +37,7 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.mockito.Mockito;
-import org.testcontainers.shaded.org.awaitility.Awaitility;
+import org.awaitility.Awaitility;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.never;
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
index b593b2e1d41..02d79063651 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpClientProducerIdleConnectionTimeoutTest.java
@@ -35,7 +35,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.testcontainers.shaded.org.awaitility.Awaitility;
+import org.awaitility.Awaitility;
 
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java
index 972294c930e..bc74e1d7137 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerBindTimeoutTest.java
@@ -33,7 +33,7 @@ import org.apache.camel.test.mllp.Hl7TestMessageGenerator;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
-import org.testcontainers.shaded.org.awaitility.Awaitility;
+import org.awaitility.Awaitility;
 
 public class MllpTcpServerConsumerBindTimeoutTest extends CamelTestSupport {
 
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
index a0e952a94ac..4ebe99d56bd 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerConnectionTest.java
@@ -28,7 +28,7 @@ import org.apache.camel.test.junit.rule.mllp.MllpJUnitResourceException;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
-import org.testcontainers.shaded.org.awaitility.Awaitility;
+import org.awaitility.Awaitility;
 
 import static org.apache.camel.test.junit5.ThrottlingExecutor.slowly;
 import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java
index 89b8fe1d0ff..1a3a569ef5a 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java
@@ -36,7 +36,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.testcontainers.shaded.org.awaitility.Awaitility;
+import org.awaitility.Awaitility;
 
 import static org.apache.camel.component.mllp.MllpExceptionTestSupport.LOG_PHI_TRUE;
 import static org.hamcrest.CoreMatchers.instanceOf;
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java b/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java
index 1c0eac3fd42..4741a539dcd 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java
@@ -32,7 +32,7 @@ import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.testcontainers.shaded.org.awaitility.Awaitility;
+import org.awaitility.Awaitility;
 
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;


(camel) 06/07: CAMEL-19538: changed some ineffective assertions

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit c2a17bc4ef3dbe45c2b9ac6e7e712206c447cc37
Author: Nikita Konovalov <nk...@redhat.com>
AuthorDate: Wed Aug 28 13:54:21 2024 +0200

    CAMEL-19538: changed some ineffective assertions
---
 ...rConsumerEndOfDataAndValidationTestSupport.java | 32 +++++++++++-----------
 .../camel/test/tcp/JavaSocketManualTests.java      | 18 ++++++------
 2 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java
index 1a3a569ef5a..e1ded8a621e 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/TcpServerConsumerEndOfDataAndValidationTestSupport.java
@@ -36,7 +36,6 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.awaitility.Awaitility;
 
 import static org.apache.camel.component.mllp.MllpExceptionTestSupport.LOG_PHI_TRUE;
 import static org.hamcrest.CoreMatchers.instanceOf;
@@ -139,6 +138,8 @@ public abstract class TcpServerConsumerEndOfDataAndValidationTestSupport extends
         setExpectedCounts();
 
         mllpClient.connect();
+
+        Thread.sleep(5000);
         mllpClient.sendMessageAndWaitForAcknowledgement(Hl7TestMessageGenerator.generateMessage(), 10000);
     }
 
@@ -186,6 +187,7 @@ public abstract class TcpServerConsumerEndOfDataAndValidationTestSupport extends
             log.info("Expected exception reading response");
         }
         mllpClient.disconnect();
+        Thread.sleep(1000);
         mllpClient.connect();
 
         log.info("Sending TEST_MESSAGE_4");
@@ -241,22 +243,20 @@ public abstract class TcpServerConsumerEndOfDataAndValidationTestSupport extends
         log.info("Sending first message");
         mllpClient.sendFramedData(Hl7TestMessageGenerator.generateMessage(10001));
 
-        Awaitility.await().atMost(RECEIVE_TIMEOUT * 5, TimeUnit.MILLISECONDS).pollInterval(500, TimeUnit.MILLISECONDS)
-                .untilAsserted(() -> {
-            mllpClient.setSendEndOfBlock(true);
-            mllpClient.setSendEndOfData(true);
+        Thread.sleep(RECEIVE_TIMEOUT * 5);
 
-            try {
-                log.info("Attempting to send second message");
-                String acknowledgement
-                        = mllpClient.sendMessageAndWaitForAcknowledgement(Hl7TestMessageGenerator.generateMessage(10002));
-                assertEquals("", acknowledgement,
-                        "If the send doesn't throw an exception, the acknowledgement should be empty");
-            } catch (MllpJUnitResourceException expected) {
-                assertThat("If the send throws an exception, the cause should be a SocketException", expected.getCause(),
-                        instanceOf(SocketException.class));
-            }
-        });
+        mllpClient.setSendEndOfBlock(true);
+        mllpClient.setSendEndOfData(true);
+
+        try {
+            log.info("Attempting to send second message");
+            String acknowledgement
+                    = mllpClient.sendMessageAndWaitForAcknowledgement(Hl7TestMessageGenerator.generateMessage(10002));
+            assertEquals("", acknowledgement, "If the send doesn't throw an exception, the acknowledgement should be empty");
+        } catch (MllpJUnitResourceException expected) {
+            assertThat("If the send throws an exception, the cause should be a SocketException", expected.getCause(),
+                    instanceOf(SocketException.class));
+        }
 
         mllpClient.disconnect();
         mllpClient.connect();
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java b/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java
index 4741a539dcd..5358445bb7a 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/test/tcp/JavaSocketManualTests.java
@@ -26,13 +26,13 @@ import java.net.Socket;
 import java.net.SocketTimeoutException;
 import java.util.concurrent.TimeUnit;
 
+import org.awaitility.Awaitility;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.awaitility.Awaitility;
 
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
@@ -286,15 +286,15 @@ public class JavaSocketManualTests {
             log.info("Client Socket read() timed-out before close");
         }
         clientSocket.getOutputStream().write(27);
+        log.info("Client Socket available() returned {} after close", clientSocket.getInputStream().available());
+        log.info("Client Socket read() returned {} after close", clientSocket.getInputStream().read());
+        // Javadoc for Socket says closing the InputStream will close the connection
+        clientSocket.getInputStream().close();
+        if (!clientSocket.isClosed()) {
+            log.warn("Closing input stream didn't close socket");
+            clientSocket.close();
+        }
         Awaitility.await().atMost(1000, TimeUnit.MILLISECONDS).untilAsserted(() -> {
-            log.info("Client Socket available() returned {} after close", clientSocket.getInputStream().available());
-            log.info("Client Socket read() returned {} after close", clientSocket.getInputStream().read());
-            // Javadoc for Socket says closing the InputStream will close the connection
-            clientSocket.getInputStream().close();
-            if (!clientSocket.isClosed()) {
-                log.warn("Closing input stream didn't close socket");
-                clientSocket.close();
-            }
             assertTrue(clientSocket.isClosed());
         });