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

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


The following commit(s) were added to refs/heads/main by this push:
     new 9781d8e955 file: migrate the sortBy test to non flaky harness #3584 
(#5765)
9781d8e955 is described below

commit 9781d8e955837b3f9bd225a70a0a1317d7fcdb60
Author: Alexandre Gallice <[email protected]>
AuthorDate: Mon Feb 19 14:24:18 2024 +0100

    file: migrate the sortBy test to non flaky harness #3584 (#5765)
---
 .../quarkus/component/file/it/FileResource.java    |  7 ---
 .../quarkus/component/file/it/FileRoutes.java      |  4 +-
 .../component/file/it/FileLanguageTest.java        | 49 ++++++++++++++--
 .../camel/quarkus/component/file/it/FileTest.java  | 66 +---------------------
 .../component/file/it/NonFlakyFileTest.java        | 13 +++++
 .../file/it/NonFlakyFileTestResource.java          | 11 ++++
 6 files changed, 70 insertions(+), 80 deletions(-)

diff --git 
a/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileResource.java
 
b/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileResource.java
index 4c8e6d6b2f..550caca4ce 100644
--- 
a/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileResource.java
+++ 
b/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileResource.java
@@ -98,13 +98,6 @@ public class FileResource {
         return result;
     }
 
-    @Path("/resetMock/{mockId}")
-    @GET
-    public void resetMock(@PathParam("mockId") String mockId) {
-        MockEndpoint mockEndpoint = context.getEndpoint("mock:" + mockId, 
MockEndpoint.class);
-        mockEndpoint.reset();
-    }
-
     @Path("/create-file")
     @POST
     @Consumes(MediaType.TEXT_PLAIN)
diff --git 
a/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileRoutes.java
 
b/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileRoutes.java
index a88c3eb381..1caf3c4dfa 100644
--- 
a/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileRoutes.java
+++ 
b/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileRoutes.java
@@ -78,9 +78,7 @@ public class FileRoutes extends RouteBuilder {
         
from(("file://target/test-files/filter?initialDelay=0&delay=10&filter=#myFilter"))
                 .convertBodyTo(String.class).to("mock:filter");
 
-        
from(("file://target/sortBy?initialDelay=0&delay=10&sortBy=reverse:file:name"))
-                .id(SORT_BY)
-                .noAutoStartup()
+        
from(("file://target/test-files/sortby-in?initialDelay=0&delay=10&sortBy=reverse:file:name"))
                 .convertBodyTo(String.class).to("mock:" + SORT_BY);
 
         from("direct:pollEnrich")
diff --git 
a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileLanguageTest.java
 
b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileLanguageTest.java
index 327591bf00..028dce8d64 100644
--- 
a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileLanguageTest.java
+++ 
b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileLanguageTest.java
@@ -23,6 +23,8 @@ import java.util.Date;
 
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import org.apache.camel.quarkus.core.util.FileUtils;
 import org.junit.jupiter.api.Test;
 
 import static 
org.apache.camel.quarkus.component.file.it.FileLanguageRoutes.FILE_LANGUAGE;
@@ -36,13 +38,13 @@ class FileLanguageTest {
     @Test
     public void fileLanguageExt() throws UnsupportedEncodingException, 
InterruptedException {
         // Create a new file
-        String txtFileName = FileTest.createFile(FILE_BODY, "/file/create/" + 
FileLanguageRoutes.FILE_LANG_TXT_IN, null,
+        String txtFileName = createFile(FILE_BODY, "/file/create/" + 
FileLanguageRoutes.FILE_LANG_TXT_IN, null,
                 "in.txt");
-        String xmlFileName = FileTest.createFile(FILE_BODY, "/file/create/" + 
FileLanguageRoutes.FILE_LANG_TXT_IN, null,
+        String xmlFileName = createFile(FILE_BODY, "/file/create/" + 
FileLanguageRoutes.FILE_LANG_TXT_IN, null,
                 "in.xml");
 
         // Start route with ${file:onlyname.noext}.txt"
-        FileTest.startRouteAndWait(FILE_LANGUAGE + "_txt");
+        startRouteAndWait(FILE_LANGUAGE + "_txt");
 
         // Read the file matched fileLanguage
         RestAssured
@@ -61,10 +63,10 @@ class FileLanguageTest {
     @Test
     public void fileLanguageDate() throws UnsupportedEncodingException, 
InterruptedException {
         // Create a new file
-        FileTest.createFile(FILE_BODY, "/file/create/" + 
FileLanguageRoutes.FILE_LANG_DATE_IN, null, "in.xml");
+        createFile(FILE_BODY, "/file/create/" + 
FileLanguageRoutes.FILE_LANG_DATE_IN, null, "in.xml");
 
         // Start route with 
${date:now:yyyyMMdd}-${in.header.myHeader}.${file:ext}
-        FileTest.startRouteAndWait(FILE_LANGUAGE + "_date");
+        startRouteAndWait(FILE_LANGUAGE + "_date");
 
         SimpleDateFormat format = new SimpleDateFormat();
         format.applyPattern("yyyyMMdd");
@@ -78,4 +80,41 @@ class FileLanguageTest {
                 .body(equalTo(FILE_BODY));
     }
 
+    private static void startRouteAndWait(String routeId) throws 
InterruptedException {
+        RestAssured.given()
+                .contentType(ContentType.TEXT)
+                .body(routeId)
+                .post("/file/startRoute")
+                .then()
+                .statusCode(204);
+
+        // wait for start
+        Thread.sleep(500);
+    }
+
+    private static String createFile(String content, String path, String 
charset, String prefix)
+            throws UnsupportedEncodingException {
+        if (charset == null) {
+            charset = "UTF-8";
+        }
+        return createFile(content.getBytes(charset), path, charset, prefix);
+    }
+
+    private static String createFile(byte[] content, String path, String 
charset, String fileName) {
+        String createdFilePath = RestAssured.given()
+                .urlEncodingEnabled(true)
+                .queryParam("charset", charset)
+                .contentType(ContentType.BINARY)
+                .body(content)
+                .queryParam("fileName", fileName)
+                .post(path)
+                .then()
+                .statusCode(201)
+                .extract()
+                .body()
+                .asString();
+
+        return FileUtils.nixifyPath(createdFilePath);
+    }
+
 }
diff --git 
a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java
 
b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java
index f91983f54f..12238e8cc6 100644
--- 
a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java
+++ 
b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java
@@ -17,51 +17,25 @@
 package org.apache.camel.quarkus.component.file.it;
 
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
-import io.restassured.http.ContentType;
 import io.restassured.path.json.JsonPath;
 import io.restassured.response.ValidatableResponse;
 import org.apache.camel.quarkus.core.util.FileUtils;
 import org.junit.jupiter.api.Test;
 
-import static 
org.apache.camel.quarkus.component.file.it.FileResource.SEPARATOR;
-import static org.apache.camel.quarkus.component.file.it.FileResource.SORT_BY;
 import static org.awaitility.Awaitility.await;
-import static org.hamcrest.core.IsEqual.equalTo;
 
 @QuarkusTest
 class FileTest {
 
-    private static final String FILE_CONTENT_01 = "Hello1";
-    private static final String FILE_CONTENT_02 = "Hello2";
-    private static final String FILE_CONTENT_03 = "Hello3";
-
-    @Test
-    public void sortBy() throws IOException, InterruptedException {
-        createFile(FILE_CONTENT_03, "/file/create/" + SORT_BY, null, "c_" + 
UUID.randomUUID().toString());
-        createFile(FILE_CONTENT_01, "/file/create/" + SORT_BY, null, "a_" + 
UUID.randomUUID().toString());
-        createFile(FILE_CONTENT_02, "/file/create/" + SORT_BY, null, "b_" + 
UUID.randomUUID().toString());
-
-        startRouteAndWait(SORT_BY);
-
-        await().atMost(10, TimeUnit.SECONDS).until(
-                () -> RestAssured
-                        .get("/file/getFromMock/" + SORT_BY)
-                        .then()
-                        .extract().asString(),
-                equalTo(FILE_CONTENT_03 + SEPARATOR + FILE_CONTENT_02 + 
SEPARATOR + FILE_CONTENT_01));
-    }
-
     @Test
-    public void fileWatchCreateUpdate() throws IOException, 
InterruptedException {
+    public void fileWatchCreateUpdate() throws IOException {
         final Path dir = 
Files.createTempDirectory(FileTest.class.getSimpleName()).toRealPath();
         RestAssured.given()
                 .queryParam("path", dir.toString())
@@ -83,44 +57,6 @@ class FileTest {
         awaitEvent(dir, file, "DELETE");
     }
 
-    static String createFile(String content, String path, String charset, 
String prefix)
-            throws UnsupportedEncodingException {
-        if (charset == null) {
-            charset = "UTF-8";
-        }
-        return createFile(content.getBytes(charset), path, charset, prefix);
-    }
-
-    static String createFile(byte[] content, String path, String charset, 
String fileName) {
-        String createdFilePath = RestAssured.given()
-                .urlEncodingEnabled(true)
-                .queryParam("charset", charset)
-                .contentType(ContentType.BINARY)
-                .body(content)
-                .queryParam("fileName", fileName)
-                .post(path)
-                .then()
-                .statusCode(201)
-                .extract()
-                .body()
-                .asString();
-
-        return FileUtils.nixifyPath(createdFilePath);
-    }
-
-    static void startRouteAndWait(String routeId) throws InterruptedException {
-        RestAssured.given()
-                .contentType(ContentType.TEXT)
-                .body(routeId)
-                .post("/file/startRoute")
-                .then()
-                .statusCode(204);
-
-        // wait for start
-        Thread.sleep(500);
-
-    }
-
     private static void awaitEvent(final Path dir, final Path file, final 
String type) {
         await()
                 .pollInterval(10, TimeUnit.MILLISECONDS)
diff --git 
a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/NonFlakyFileTest.java
 
b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/NonFlakyFileTest.java
index 503c6bd9dd..6854d55288 100644
--- 
a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/NonFlakyFileTest.java
+++ 
b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/NonFlakyFileTest.java
@@ -31,6 +31,8 @@ import io.restassured.http.ContentType;
 import org.hamcrest.Matchers;
 import org.junit.jupiter.api.Test;
 
+import static 
org.apache.camel.quarkus.component.file.it.FileResource.SEPARATOR;
+import static org.apache.camel.quarkus.component.file.it.FileResource.SORT_BY;
 import static 
org.apache.camel.quarkus.component.file.it.NonFlakyFileTestResource.*;
 import static org.apache.commons.io.FileUtils.readFileToString;
 import static org.awaitility.Awaitility.await;
@@ -195,4 +197,15 @@ class NonFlakyFileTest {
                     && records.values().contains(0) && 
records.values().contains(1);
         });
     }
+
+    @Test
+    void filesCreatedInWrongOrderShouldBeSortedByReverseFilename() {
+        await().atMost(10, TimeUnit.SECONDS).until(
+                () -> RestAssured
+                        .get("/file/getFromMock/" + SORT_BY)
+                        .then()
+                        .extract().asString(),
+                equalTo(SORT_BY_NAME_3_CONTENT + SEPARATOR + 
SORT_BY_NAME_2_CONTENT + SEPARATOR + SORT_BY_NAME_1_CONTENT));
+    }
+
 }
diff --git 
a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/NonFlakyFileTestResource.java
 
b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/NonFlakyFileTestResource.java
index fe36912dcb..ea11deafc4 100644
--- 
a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/NonFlakyFileTestResource.java
+++ 
b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/NonFlakyFileTestResource.java
@@ -60,6 +60,13 @@ public class NonFlakyFileTestResource implements 
QuarkusTestResourceLifecycleMan
     static final String BATCH_FILE_NAME_1_CONTENT = BATCH_FILE_NAME_1 + 
"-CONTENT";
     static final String BATCH_FILE_NAME_2 = "batch-file-2";
     static final String BATCH_FILE_NAME_2_CONTENT = BATCH_FILE_NAME_2 + 
"-CONTENT";
+    static final String SORT_BY_FOLDER_IN = "sortby-in";
+    static final String SORT_BY_NAME_1 = "sortby-file-1";
+    static final String SORT_BY_NAME_1_CONTENT = SORT_BY_NAME_1 + "-CONTENT";
+    static final String SORT_BY_NAME_2 = "sortby-file-2";
+    static final String SORT_BY_NAME_2_CONTENT = SORT_BY_NAME_2 + "-CONTENT";
+    static final String SORT_BY_NAME_3 = "sortby-file-3";
+    static final String SORT_BY_NAME_3_CONTENT = SORT_BY_NAME_3 + "-CONTENT";
 
     private final Map<Path, byte[]> createdTestFilesExpectedContent = new 
HashMap<>();
 
@@ -84,6 +91,10 @@ public class NonFlakyFileTestResource implements 
QuarkusTestResourceLifecycleMan
             createTestFile("batch-in", BATCH_FILE_NAME_1);
             createTestFile("batch-in", BATCH_FILE_NAME_2);
 
+            createTestFile("sortby-in", SORT_BY_NAME_3);
+            createTestFile("sortby-in", SORT_BY_NAME_1);
+            createTestFile("sortby-in", SORT_BY_NAME_2);
+
             // Do not use  createTestFile("file-creation"... as it is already 
reserved by the createFileShouldSucceed test
             // Do not use  createTestFile("charset-write"... as it is already 
reserved by the writeFileWithIso8859_1CharsetShouldSucceed test
             // Do not use  createTestFile("read-lock-out"... as it is already 
reserved by the readLockCantBeAcquiredOnFileSmallerThanReadLockMinLength test

Reply via email to