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-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new 28bc17fd89 Add one test for batch operation with Docling
28bc17fd89 is described below
commit 28bc17fd896a5feb9f7b66b86d31445cadad5480
Author: Aurélien Pupier <[email protected]>
AuthorDate: Thu Jan 29 12:06:08 2026 +0100
Add one test for batch operation with Docling
Signed-off-by: Aurélien Pupier <[email protected]>
---
.../component/docling/it/DoclingResource.java | 13 +++++++
.../component/docling/it/DoclingRoutes.java | 4 +++
.../quarkus/component/docling/it/DoclingTest.java | 40 ++++++++++++++++++++--
3 files changed, 55 insertions(+), 2 deletions(-)
diff --git
a/integration-tests/docling/src/main/java/org/apache/camel/quarkus/component/docling/it/DoclingResource.java
b/integration-tests/docling/src/main/java/org/apache/camel/quarkus/component/docling/it/DoclingResource.java
index 3633edc9ec..6978d04892 100644
---
a/integration-tests/docling/src/main/java/org/apache/camel/quarkus/component/docling/it/DoclingResource.java
+++
b/integration-tests/docling/src/main/java/org/apache/camel/quarkus/component/docling/it/DoclingResource.java
@@ -21,6 +21,7 @@ import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
+import java.util.List;
import io.quarkus.runtime.annotations.RegisterForReflection;
import jakarta.enterprise.context.ApplicationScoped;
@@ -35,6 +36,7 @@ import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
+import org.apache.camel.component.docling.BatchProcessingResults;
import org.apache.camel.component.docling.DocumentMetadata;
import org.jboss.logging.Logger;
@@ -181,6 +183,17 @@ public class DoclingResource {
return convert(documentContent, "direct:convertToJsonWithCLI", "Failed
to convert to JSON with CLI");
}
+ @Path("/batch/convert/markdown")
+ @POST
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Produces(MediaType.APPLICATION_JSON)
+ public BatchProcessingResults convertBatchToMarkdown(List<String>
filePaths) {
+ return producerTemplate.requestBody(
+ "direct:batch-markdown",
+ filePaths,
+ BatchProcessingResults.class);
+ }
+
private Response convert(String documentContent, String endpointUri,
String logErrorMessage) throws IOException {
java.nio.file.Path tempFile = Files.createTempFile("docling-test",
".md");
Files.writeString(tempFile, documentContent);
diff --git
a/integration-tests/docling/src/main/java/org/apache/camel/quarkus/component/docling/it/DoclingRoutes.java
b/integration-tests/docling/src/main/java/org/apache/camel/quarkus/component/docling/it/DoclingRoutes.java
index b0c76f33f1..cee5370f98 100644
---
a/integration-tests/docling/src/main/java/org/apache/camel/quarkus/component/docling/it/DoclingRoutes.java
+++
b/integration-tests/docling/src/main/java/org/apache/camel/quarkus/component/docling/it/DoclingRoutes.java
@@ -66,5 +66,9 @@ public class DoclingRoutes extends RouteBuilder {
from("direct:convertToJsonWithCLI")
.to("docling:convert?operation=CONVERT_TO_JSON&contentInBody=true&useDoclingServe=false");
+
+ from("direct:batch-markdown")
+
.to("docling:convert?operation=BATCH_CONVERT_TO_MARKDOWN&batchSize=10&batchParallelism=4&contentInBody=true")
+ .log("Converted in batch to Markdown: ${body}");
}
}
diff --git
a/integration-tests/docling/src/test/java/org/apache/camel/quarkus/component/docling/it/DoclingTest.java
b/integration-tests/docling/src/test/java/org/apache/camel/quarkus/component/docling/it/DoclingTest.java
index 14fa372798..f7e890ca56 100644
---
a/integration-tests/docling/src/test/java/org/apache/camel/quarkus/component/docling/it/DoclingTest.java
+++
b/integration-tests/docling/src/test/java/org/apache/camel/quarkus/component/docling/it/DoclingTest.java
@@ -16,6 +16,13 @@
*/
package org.apache.camel.quarkus.component.docling.it;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardOpenOption;
+import java.util.ArrayList;
+import java.util.List;
+
import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
import io.restassured.RestAssured;
@@ -28,6 +35,7 @@ import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.emptyString;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
+import static org.hamcrest.core.IsEqual.equalTo;
import static org.hamcrest.core.StringStartsWith.startsWith;
@QuarkusTest
@@ -190,8 +198,36 @@ class DoclingTest {
}
@Test
- @Disabled("test to implement")
- void convertToMarkdownAsyncInBatch() {
+ void convertToMarkdownAsyncInBatch() throws IOException {
+ List<String> filePaths = createTestFiles();
+ RestAssured.given()
+ .contentType(ContentType.JSON)
+ .body(filePaths)
+ .when()
+ .post("/docling/batch/convert/markdown")
+ .then()
+ .statusCode(200)
+ .body("totalDocuments", equalTo(filePaths.size()))
+ .body("successCount", equalTo(filePaths.size()))
+ .body("results[0].result", containsString(
+ """
+ # Test doc 0
+
+ content 0"""));
+ }
+
+ private List<String> createTestFiles() throws IOException {
+ List<String> filePaths = new ArrayList<>();
+ for (int i = 0; i < 5; i++) {
+ Path filepath = Files.createTempFile("test-docling-batch-" + i +
"-", ".md");
+ Files.writeString(filepath,
+ """
+ # Test doc %s
+
+ content %s""".formatted(i, i),
StandardOpenOption.CREATE);
+ filePaths.add(filepath.toAbsolutePath().toString());
+ }
+ return filePaths;
}
@Test