From d2596cef85df405f389b425700bb86263b5e771f Mon Sep 17 00:00:00 2001 From: Jisny Varghese Date: Sat, 4 Apr 2026 10:14:23 +0530 Subject: [PATCH 1/2] add checks --- .../client/tester/service/TagsTester.java | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) diff --git a/docling-testing/docling-version-tests/src/main/java/ai/docling/client/tester/service/TagsTester.java b/docling-testing/docling-version-tests/src/main/java/ai/docling/client/tester/service/TagsTester.java index 1634de0f..6415a04f 100644 --- a/docling-testing/docling-version-tests/src/main/java/ai/docling/client/tester/service/TagsTester.java +++ b/docling-testing/docling-version-tests/src/main/java/ai/docling/client/tester/service/TagsTester.java @@ -96,6 +96,24 @@ private void doConversion(DoclingServeContainer doclingContainer) { .build(); checkDoclingHealthy(doclingClient); + + // Convert with multiple output formats + testConvertWithMultipleFormats(doclingClient); + + // Convert with JSON format and validate DoclingDocument + testConvertWithJsonFormat(doclingClient); + + // Convert with different document options + testConvertWithDifferentOptions(doclingClient); + + // Clear converters + testClearConverters(doclingClient); + + // Clear results + testClearResults(doclingClient); + } + + private void testConvertWithMultipleFormats(DoclingServeApi doclingClient) { var options = ConvertDocumentOptions.builder() .abortOnError(true) .includeImages(true) @@ -109,6 +127,106 @@ private void doConversion(DoclingServeContainer doclingContainer) { checkDoclingResponse(doclingClient.convertSource(request)); } + + private void testConvertWithJsonFormat(DoclingServeApi doclingClient) { + var options = ConvertDocumentOptions.builder() + .toFormat(OutputFormat.JSON) + .build(); + + var request = ConvertDocumentRequest.builder() + .source(HttpSource.builder().url(URI.create("https://docling.ai")).build()) + .options(options) + .build(); + + var response = doclingClient.convertSource(request); + + assertThat(response) + .as("Response should not be null") + .isNotNull(); + + assertThat(response.getResponseType()) + .as("Response type should be IN_BODY") + .isEqualTo(ai.docling.serve.api.convert.response.ResponseType.IN_BODY); + + var inBodyResponse = (InBodyConvertDocumentResponse)response; + + assertThat(inBodyResponse.getStatus()) + .as("Response status should not be empty") + .isNotEmpty(); + + assertThat(inBodyResponse.getDocument()) + .as("Response should have a document") + .isNotNull(); + + var doclingDocument = inBodyResponse.getDocument().getJsonContent(); + assertThat(doclingDocument) + .as("Document should have JSON content") + .isNotNull(); + + assertThat(doclingDocument.getName()) + .as("Document name should not be empty") + .isNotEmpty(); + } + + private void testConvertWithDifferentOptions(DoclingServeApi doclingClient) { + var options = ConvertDocumentOptions.builder() + .doOcr(true) + .includeImages(true) + .tableMode(ai.docling.serve.api.convert.request.options.TableFormerMode.FAST) + .documentTimeout(Duration.ofMinutes(1)) + .build(); + + var request = ConvertDocumentRequest.builder() + .source(HttpSource.builder().url(URI.create("https://docling.ai")).build()) + .options(options) + .build(); + + var response = doclingClient.convertSource(request); + + assertThat(response) + .as("Response should not be null") + .isNotNull(); + + assertThat(response.getResponseType()) + .as("Response type should be IN_BODY") + .isEqualTo(ai.docling.serve.api.convert.response.ResponseType.IN_BODY); + + var inBodyResponse = (InBodyConvertDocumentResponse)response; + + assertThat(inBodyResponse.getStatus()) + .as("Response status should not be empty") + .isNotEmpty(); + + assertThat(inBodyResponse.getDocument()) + .as("Response should have a document") + .isNotNull(); + } + + private void testClearConverters(DoclingServeApi doclingClient) { + var request = ai.docling.serve.api.clear.request.ClearConvertersRequest.builder().build(); + var response = doclingClient.clearConverters(request); + + assertThat(response) + .as("Clear converters response should not be null") + .isNotNull(); + + assertThat(response.getStatus()) + .as("Clear converters status should be 'ok'") + .isEqualTo("ok"); + } + + private void testClearResults(DoclingServeApi doclingClient) { + var request = ai.docling.serve.api.clear.request.ClearResultsRequest.builder().build(); + var response = doclingClient.clearResults(request); + + assertThat(response) + .as("Clear results response should not be null") + .isNotNull(); + + assertThat(response.getStatus()) + .as("Clear results status should be 'ok'") + .isEqualTo("ok"); + } private void checkDoclingResponse(ConvertDocumentResponse response) { switch(response.getResponseType()) { From 9a5dd256d7bf603cb75f4ccea6fc818d5b2b7b5e Mon Sep 17 00:00:00 2001 From: Jisny Varghese Date: Tue, 14 Apr 2026 11:26:30 +0530 Subject: [PATCH 2/2] Address PR review comments: add imports and use simple class names - Add missing imports for ResponseType, TableFormerMode, ClearConvertersRequest, and ClearResultsRequest - Replace fully qualified class names with simple names throughout the file - Improves code readability by following standard Java import conventions --- .../docling/client/tester/service/TagsTester.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docling-testing/docling-version-tests/src/main/java/ai/docling/client/tester/service/TagsTester.java b/docling-testing/docling-version-tests/src/main/java/ai/docling/client/tester/service/TagsTester.java index 6415a04f..c4d5f645 100644 --- a/docling-testing/docling-version-tests/src/main/java/ai/docling/client/tester/service/TagsTester.java +++ b/docling-testing/docling-version-tests/src/main/java/ai/docling/client/tester/service/TagsTester.java @@ -19,13 +19,17 @@ import ai.docling.client.tester.domain.TagsTestResults; import ai.docling.core.DoclingDocument; import ai.docling.serve.api.DoclingServeApi; +import ai.docling.serve.api.clear.request.ClearConvertersRequest; +import ai.docling.serve.api.clear.request.ClearResultsRequest; import ai.docling.serve.api.convert.request.ConvertDocumentRequest; import ai.docling.serve.api.convert.request.options.ConvertDocumentOptions; import ai.docling.serve.api.convert.request.options.OutputFormat; +import ai.docling.serve.api.convert.request.options.TableFormerMode; import ai.docling.serve.api.convert.request.source.HttpSource; import ai.docling.serve.api.convert.response.ConvertDocumentResponse; import ai.docling.serve.api.convert.response.DocumentResponse; import ai.docling.serve.api.convert.response.InBodyConvertDocumentResponse; +import ai.docling.serve.api.convert.response.ResponseType; import ai.docling.serve.api.health.HealthCheckResponse; import ai.docling.testcontainers.serve.DoclingServeContainer; import ai.docling.testcontainers.serve.config.DoclingServeContainerConfig; @@ -146,7 +150,7 @@ private void testConvertWithJsonFormat(DoclingServeApi doclingClient) { assertThat(response.getResponseType()) .as("Response type should be IN_BODY") - .isEqualTo(ai.docling.serve.api.convert.response.ResponseType.IN_BODY); + .isEqualTo(ResponseType.IN_BODY); var inBodyResponse = (InBodyConvertDocumentResponse)response; @@ -172,7 +176,7 @@ private void testConvertWithDifferentOptions(DoclingServeApi doclingClient) { var options = ConvertDocumentOptions.builder() .doOcr(true) .includeImages(true) - .tableMode(ai.docling.serve.api.convert.request.options.TableFormerMode.FAST) + .tableMode(TableFormerMode.FAST) .documentTimeout(Duration.ofMinutes(1)) .build(); @@ -189,7 +193,7 @@ private void testConvertWithDifferentOptions(DoclingServeApi doclingClient) { assertThat(response.getResponseType()) .as("Response type should be IN_BODY") - .isEqualTo(ai.docling.serve.api.convert.response.ResponseType.IN_BODY); + .isEqualTo(ResponseType.IN_BODY); var inBodyResponse = (InBodyConvertDocumentResponse)response; @@ -203,7 +207,7 @@ private void testConvertWithDifferentOptions(DoclingServeApi doclingClient) { } private void testClearConverters(DoclingServeApi doclingClient) { - var request = ai.docling.serve.api.clear.request.ClearConvertersRequest.builder().build(); + var request = ClearConvertersRequest.builder().build(); var response = doclingClient.clearConverters(request); assertThat(response) @@ -216,7 +220,7 @@ private void testClearConverters(DoclingServeApi doclingClient) { } private void testClearResults(DoclingServeApi doclingClient) { - var request = ai.docling.serve.api.clear.request.ClearResultsRequest.builder().build(); + var request = ClearResultsRequest.builder().build(); var response = doclingClient.clearResults(request); assertThat(response)