Skip to content

Commit 12e40eb

Browse files
committed
test: assert IllegalArgumentException is thrown when a multidimensional array is passed
1 parent beda3d6 commit 12e40eb

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

components/abstractions/src/test/java/com/microsoft/kiota/RequestInformationTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,23 @@ void BuildsUrlOnProvidedBaseUrl() {
5151
assertEquals("http://localhost/users", result.toString());
5252
}
5353

54+
@Test
55+
void ThrowsIllegalArgumentWhenMultidimensionalQueryParameterIsSet() {
56+
// Arrange as the request builders would
57+
final RequestInformation requestInfo = new RequestInformation();
58+
requestInfo.httpMethod = HttpMethod.GET;
59+
requestInfo.urlTemplate = "{+baseurl}/users{?datasetIds}";
60+
final GetQueryParameters queryParameters = new GetQueryParameters();
61+
queryParameters.parallelDatasetIds = new UUID[][] {
62+
{UUID.fromString("f0f351e7-8e5f-4d0e-8f2a-7b5e4b6f4f3e")},
63+
{UUID.fromString("a2f351e7-8e5f-4d0e-8f2a-7b5e4b6f4f3e")}
64+
};
65+
66+
// Assert
67+
var exception = assertThrows(IllegalArgumentException.class, () -> requestInfo.addQueryParameters(queryParameters));
68+
assertTrue(exception.getMessage().contains("multidimensional arrays are not supported"));
69+
}
70+
5471
@Test
5572
void SetsPathParametersOfDateTimeOffsetType() {
5673
// Arrange as the request builders would
@@ -483,6 +500,11 @@ class GetQueryParameters implements QueryParameters {
483500

484501
@jakarta.annotation.Nullable public UUID[] datasetIds;
485502

503+
/**
504+
* Search by dataset ids in parallel (or something like that)
505+
*/
506+
@jakarta.annotation.Nullable public UUID[][] parallelDatasetIds;
507+
486508
/** Per-dataset boolean indicating whether to resolve its child datasets */
487509
@jakarta.annotation.Nullable public Boolean[] expandChildren;
488510

@@ -491,13 +513,15 @@ class GetQueryParameters implements QueryParameters {
491513
*/
492514
@jakarta.annotation.Nullable public PeriodAndDuration[] messageAges;
493515

516+
494517
@jakarta.annotation.Nonnull public Map<String, Object> toQueryParameters() {
495518
final Map<String, Object> allQueryParams = new HashMap<>();
496519
allQueryParams.put("%24select", select);
497520
allQueryParams.put("%24search", search);
498521
allQueryParams.put("dataset", dataset);
499522
allQueryParams.put("datasets", datasets);
500523
allQueryParams.put("datasetIds", datasetIds);
524+
allQueryParams.put("parallelDatasetIds", parallelDatasetIds);
501525
allQueryParams.put("expandChildren", expandChildren);
502526
allQueryParams.put("periods", messageAges);
503527
return allQueryParams;

0 commit comments

Comments
 (0)