Skip to content

Commit 8211ff5

Browse files
authored
[TA] Add more overload API and test (Azure#30797)
1 parent 70bcaa2 commit 8211ff5

File tree

24 files changed

+2688
-21
lines changed

24 files changed

+2688
-21
lines changed

eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ the main ServiceBusClientBuilder. -->
472472
<suppress checks="VisibilityModifier" files="com.azure.search.documents.indexes.FieldBuilderTests.java"/>
473473

474474
<!-- Suppression for bug https://github.com/checkstyle/checkstyle/issues/11001 -->
475-
<suppress checks="ParenPad" files="com.azure.ai.textanalytics.TextAnalyticsClientTestBase" lines="970, 974"/>
475+
<suppress checks="ParenPad" files="com.azure.ai.textanalytics.TextAnalyticsClientTestBase" lines="990, 994"/>
476476

477477
<!-- These APIs have already leaked implementation and cannot be changed -->
478478
<suppress checks="com.azure.tools.checkstyle.checks.NoImplInPublicAPI" files="com.azure.messaging.eventhubs.LogPartitionProcessor"/>

sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClient.java

Lines changed: 437 additions & 2 deletions
Large diffs are not rendered by default.

sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClient.java

Lines changed: 398 additions & 0 deletions
Large diffs are not rendered by default.

sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java

Lines changed: 291 additions & 3 deletions
Large diffs are not rendered by default.

sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java

Lines changed: 257 additions & 3 deletions
Large diffs are not rendered by default.

sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java

Lines changed: 124 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1881,26 +1881,49 @@ public void analyzeSentimentZalgoText(HttpClient httpClient, TextAnalyticsServic
18811881
// Healthcare LRO
18821882
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
18831883
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
1884-
@Disabled("https://github.com/Azure/azure-sdk-for-java/issues/22208")
1885-
public void healthcareLroPagination(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {
1884+
public void healthcareStringInputWithoutOptions(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {
18861885
client = getTextAnalyticsAsyncClient(httpClient, serviceVersion);
1887-
healthcareLroPaginationRunner((documents, options) -> {
1886+
healthcareStringInputRunner((documents, dummyOptions) -> {
18881887
SyncPoller<AnalyzeHealthcareEntitiesOperationDetail, AnalyzeHealthcareEntitiesPagedFlux>
1889-
syncPoller = client.beginAnalyzeHealthcareEntities(documents, options).getSyncPoller();
1888+
syncPoller = client.beginAnalyzeHealthcareEntities(documents).getSyncPoller();
18901889
syncPoller = setPollInterval(syncPoller);
18911890
syncPoller.waitForCompletion();
18921891
AnalyzeHealthcareEntitiesPagedFlux analyzeHealthcareEntitiesPagedFlux = syncPoller.getFinalResult();
1892+
validateAnalyzeHealthcareEntitiesResultCollectionList(
1893+
false,
1894+
getExpectedAnalyzeHealthcareEntitiesResultCollectionListForSinglePage(),
1895+
analyzeHealthcareEntitiesPagedFlux.toStream().collect(Collectors.toList()));
1896+
});
1897+
}
1898+
1899+
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
1900+
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
1901+
public void healthcareStringInputWithOptions(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {
1902+
client = getTextAnalyticsAsyncClient(httpClient, serviceVersion);
1903+
healthcareStringInputRunner((documents, options) -> {
1904+
boolean isValidApiVersionForDisplayName = serviceVersion != TextAnalyticsServiceVersion.V3_0
1905+
&& serviceVersion != TextAnalyticsServiceVersion.V3_1;
1906+
if (isValidApiVersionForDisplayName) {
1907+
options.setDisplayName("operationName");
1908+
}
1909+
SyncPoller<AnalyzeHealthcareEntitiesOperationDetail, AnalyzeHealthcareEntitiesPagedFlux>
1910+
syncPoller = client.beginAnalyzeHealthcareEntities(documents, "en", options).getSyncPoller();
1911+
syncPoller = setPollInterval(syncPoller);
1912+
PollResponse<AnalyzeHealthcareEntitiesOperationDetail> pollResponse = syncPoller.waitForCompletion();
1913+
if (isValidApiVersionForDisplayName) {
1914+
assertEquals(options.getDisplayName(), pollResponse.getValue().getDisplayName());
1915+
}
1916+
AnalyzeHealthcareEntitiesPagedFlux analyzeHealthcareEntitiesPagedFlux = syncPoller.getFinalResult();
18931917
validateAnalyzeHealthcareEntitiesResultCollectionList(
18941918
options.isIncludeStatistics(),
1895-
getExpectedAnalyzeHealthcareEntitiesResultCollectionListForMultiplePages(0, 10, 0),
1919+
getExpectedAnalyzeHealthcareEntitiesResultCollectionListForSinglePage(),
18961920
analyzeHealthcareEntitiesPagedFlux.toStream().collect(Collectors.toList()));
1897-
}, 10);
1921+
});
18981922
}
18991923

19001924
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
19011925
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
1902-
@Disabled("https://github.com/Azure/azure-sdk-for-java/issues/22208")
1903-
public void healthcareLroWithOptions(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {
1926+
public void healthcareMaxOverload(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {
19041927
client = getTextAnalyticsAsyncClient(httpClient, serviceVersion);
19051928
healthcareLroRunner((documents, options) -> {
19061929
boolean isValidApiVersionForDisplayName = serviceVersion != TextAnalyticsServiceVersion.V3_0
@@ -1923,6 +1946,23 @@ public void healthcareLroWithOptions(HttpClient httpClient, TextAnalyticsService
19231946
});
19241947
}
19251948

1949+
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
1950+
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
1951+
public void healthcareLroPagination(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {
1952+
client = getTextAnalyticsAsyncClient(httpClient, serviceVersion);
1953+
healthcareLroPaginationRunner((documents, options) -> {
1954+
SyncPoller<AnalyzeHealthcareEntitiesOperationDetail, AnalyzeHealthcareEntitiesPagedFlux>
1955+
syncPoller = client.beginAnalyzeHealthcareEntities(documents, options).getSyncPoller();
1956+
syncPoller = setPollInterval(syncPoller);
1957+
syncPoller.waitForCompletion();
1958+
AnalyzeHealthcareEntitiesPagedFlux analyzeHealthcareEntitiesPagedFlux = syncPoller.getFinalResult();
1959+
validateAnalyzeHealthcareEntitiesResultCollectionList(
1960+
options.isIncludeStatistics(),
1961+
getExpectedAnalyzeHealthcareEntitiesResultCollectionListForMultiplePages(0, 10, 0),
1962+
analyzeHealthcareEntitiesPagedFlux.toStream().collect(Collectors.toList()));
1963+
}, 10);
1964+
}
1965+
19261966
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
19271967
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
19281968
public void healthcareLroEmptyInput(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {
@@ -2213,6 +2253,33 @@ public void cancelHealthcareLro(HttpClient httpClient, TextAnalyticsServiceVersi
22132253
}
22142254

22152255
// Analyze Actions LRO
2256+
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
2257+
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
2258+
public void analyzeActionsStringInput(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {
2259+
client = getTextAnalyticsAsyncClient(httpClient, serviceVersion);
2260+
analyzeActionsStringInputRunner((documents, tasks) -> {
2261+
SyncPoller<AnalyzeActionsOperationDetail, AnalyzeActionsResultPagedFlux> syncPoller =
2262+
client.beginAnalyzeActions(documents, tasks).getSyncPoller();
2263+
syncPoller = setPollInterval(syncPoller);
2264+
syncPoller.waitForCompletion();
2265+
AnalyzeActionsResultPagedFlux result = syncPoller.getFinalResult();
2266+
2267+
validateAnalyzeBatchActionsResultList(false, false,
2268+
Arrays.asList(getExpectedAnalyzeBatchActionsResult(
2269+
IterableStream.of(asList(getExpectedRecognizeEntitiesActionResult(false, null,
2270+
TIME_NOW, getRecognizeEntitiesResultCollection(), null))),
2271+
IterableStream.of(asList(getExpectedRecognizeLinkedEntitiesActionResult(false, null,
2272+
TIME_NOW, getRecognizeLinkedEntitiesResultCollectionForActions(), null))),
2273+
IterableStream.of(asList(getExpectedRecognizePiiEntitiesActionResult(false, null,
2274+
TIME_NOW,
2275+
getRecognizePiiEntitiesResultCollection(), null))),
2276+
IterableStream.of(asList(getExpectedExtractKeyPhrasesActionResult(false, null,
2277+
TIME_NOW, getExtractKeyPhrasesResultCollection(), null))),
2278+
IterableStream.of(asList(getExpectedAnalyzeSentimentActionResult(false, null,
2279+
TIME_NOW, getAnalyzeSentimentResultCollectionForActions(), null))))),
2280+
result.toStream().collect(Collectors.toList()));
2281+
});
2282+
}
22162283

22172284
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
22182285
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
@@ -2538,6 +2605,22 @@ public void multiCategoryClassifyAction(HttpClient httpClient, TextAnalyticsServ
25382605
});
25392606
}
25402607

2608+
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
2609+
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
2610+
public void recognizeCustomEntitiesStringInput(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {
2611+
client = getTextAnalyticsAsyncClient(httpClient, serviceVersion);
2612+
recognizeCustomEntitiesRunner((documents, parameters) -> {
2613+
SyncPoller<RecognizeCustomEntitiesOperationDetail, RecognizeCustomEntitiesPagedFlux> syncPoller =
2614+
client.beginRecognizeCustomEntities(documents, parameters.get(0), parameters.get(1)).getSyncPoller();
2615+
syncPoller = setPollInterval(syncPoller);
2616+
syncPoller.waitForCompletion();
2617+
RecognizeCustomEntitiesPagedFlux pagedFlux = syncPoller.getFinalResult();
2618+
pagedFlux.toStream().collect(Collectors.toList()).forEach(resultCollection ->
2619+
resultCollection.forEach(documentResult ->
2620+
validateCategorizedEntities(documentResult.getEntities().stream().collect(Collectors.toList()))));
2621+
});
2622+
}
2623+
25412624
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
25422625
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
25432626
public void recognizeCustomEntities(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {
@@ -2558,6 +2641,23 @@ public void recognizeCustomEntities(HttpClient httpClient, TextAnalyticsServiceV
25582641
});
25592642
}
25602643

2644+
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
2645+
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
2646+
public void singleLabelClassificationStringInput(HttpClient httpClient,
2647+
TextAnalyticsServiceVersion serviceVersion) {
2648+
client = getTextAnalyticsAsyncClient(httpClient, serviceVersion);
2649+
classifyCustomSingleLabelRunner((documents, parameters) -> {
2650+
SyncPoller<ClassifyDocumentOperationDetail, ClassifyDocumentPagedFlux> syncPoller =
2651+
client.beginSingleLabelClassify(documents, parameters.get(0), parameters.get(1))
2652+
.getSyncPoller();
2653+
syncPoller = setPollInterval(syncPoller);
2654+
syncPoller.waitForCompletion();
2655+
ClassifyDocumentPagedFlux pagedFlux = syncPoller.getFinalResult();
2656+
pagedFlux.toStream().collect(Collectors.toList()).forEach(resultCollection ->
2657+
resultCollection.forEach(documentResult -> validateLabelClassificationResult(documentResult)));
2658+
});
2659+
}
2660+
25612661
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
25622662
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
25632663
public void singleLabelClassification(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {
@@ -2576,6 +2676,22 @@ public void singleLabelClassification(HttpClient httpClient, TextAnalyticsServic
25762676
});
25772677
}
25782678

2679+
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
2680+
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
2681+
public void multiLabelClassificationStringInput(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {
2682+
client = getTextAnalyticsAsyncClient(httpClient, serviceVersion);
2683+
classifyCustomMultiLabelRunner((documents, parameters) -> {
2684+
SyncPoller<ClassifyDocumentOperationDetail, ClassifyDocumentPagedFlux> syncPoller =
2685+
client.beginMultiLabelClassify(documents, parameters.get(0), parameters.get(1))
2686+
.getSyncPoller();
2687+
syncPoller = setPollInterval(syncPoller);
2688+
syncPoller.waitForCompletion();
2689+
ClassifyDocumentPagedFlux pagedFlux = syncPoller.getFinalResult();
2690+
pagedFlux.toStream().collect(Collectors.toList()).forEach(resultCollection ->
2691+
resultCollection.forEach(documentResult -> validateLabelClassificationResult(documentResult)));
2692+
});
2693+
}
2694+
25792695
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
25802696
@MethodSource("com.azure.ai.textanalytics.TestUtils#getTestParameters")
25812697
public void multiLabelClassification(HttpClient httpClient, TextAnalyticsServiceVersion serviceVersion) {

0 commit comments

Comments
 (0)