From 1446d37692b326f5b1dbd26586b8cd886525fc1d Mon Sep 17 00:00:00 2001 From: "Merchant, Saifuddin A" Date: Fri, 9 May 2025 10:41:17 -0700 Subject: [PATCH 1/3] issue-1242 fixing version of PaginatedRequest implemented by v3._ListSecurityGroupsRequest and adding an integration test case --- .../_ListSecurityGroupsRequest.java | 2 +- .../client/v3/SecurityGroupsTest.java | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/securitygroups/_ListSecurityGroupsRequest.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/securitygroups/_ListSecurityGroupsRequest.java index 2ec1c16369..e8a4a0be88 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/securitygroups/_ListSecurityGroupsRequest.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/securitygroups/_ListSecurityGroupsRequest.java @@ -14,7 +14,7 @@ package org.cloudfoundry.client.v3.securitygroups; -import org.cloudfoundry.client.v2.PaginatedRequest; +import org.cloudfoundry.client.v3.PaginatedRequest; import org.immutables.value.Value; import org.cloudfoundry.client.v3.FilterParameter; import org.cloudfoundry.Nullable; diff --git a/integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java b/integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java index 2b8a0d4be1..59bcc53eaf 100644 --- a/integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java +++ b/integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java @@ -18,6 +18,8 @@ import java.time.Duration; import java.util.Arrays; +import java.util.Collections; + import org.cloudfoundry.AbstractIntegrationTest; import org.cloudfoundry.client.CloudFoundryClient; import org.cloudfoundry.client.v3.securitygroups.BindRunningSecurityGroupRequest; @@ -34,6 +36,7 @@ import org.cloudfoundry.client.v3.securitygroups.UnbindRunningSecurityGroupRequest; import org.cloudfoundry.client.v3.securitygroups.UnbindStagingSecurityGroupRequest; import org.cloudfoundry.client.v3.securitygroups.UpdateSecurityGroupRequest; +import org.cloudfoundry.util.PaginationUtils; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -196,6 +199,27 @@ public void listStaging() { .verify(Duration.ofMinutes(5)); } + @Test + public void listWithPagination() { + this.securityGroup + .map( + securityGroup -> + PaginationUtils.requestClientV3Resources( + page -> + cloudFoundryClient + .securityGroupsV3() + .list( + ListSecurityGroupsRequest.builder() + .page(page) + .perPage(1) + .names(Collections.singletonList(securityGroup.getName())) + .build()))) + .as(StepVerifier::create) + .expectNextCount(1) + .expectComplete() + .verify(Duration.ofMinutes(5)); + } + @Test public void bindStagingSecurityGroup() { Mono.zip(this.securityGroup, this.spaceId) From 33fce00ba8f4856ea34c2110ffd1cbb2ef7bc2ec Mon Sep 17 00:00:00 2001 From: "Merchant, Saifuddin A" Date: Wed, 14 May 2025 06:26:54 -0700 Subject: [PATCH 2/3] issue-1242 running mvn spotless:apply to fix formatting for SecurityGroupsTest --- .../org/cloudfoundry/client/v3/SecurityGroupsTest.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java b/integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java index 59bcc53eaf..a752f3c2e1 100644 --- a/integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java +++ b/integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java @@ -19,7 +19,6 @@ import java.time.Duration; import java.util.Arrays; import java.util.Collections; - import org.cloudfoundry.AbstractIntegrationTest; import org.cloudfoundry.client.CloudFoundryClient; import org.cloudfoundry.client.v3.securitygroups.BindRunningSecurityGroupRequest; @@ -212,7 +211,11 @@ public void listWithPagination() { ListSecurityGroupsRequest.builder() .page(page) .perPage(1) - .names(Collections.singletonList(securityGroup.getName())) + .names( + Collections + .singletonList( + securityGroup + .getName())) .build()))) .as(StepVerifier::create) .expectNextCount(1) From 563d3811c71ce7297348cac64c1934e993db6560 Mon Sep 17 00:00:00 2001 From: "Merchant, Saifuddin A" Date: Wed, 14 May 2025 17:32:55 -0700 Subject: [PATCH 3/3] issue-1242 Fixes issue that the subsequent listPage is not called because nothing subscribes to the Flux it returns. --- .../java/org/cloudfoundry/client/v3/SecurityGroupsTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java b/integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java index a752f3c2e1..30d8de45af 100644 --- a/integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java +++ b/integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java @@ -201,7 +201,8 @@ public void listStaging() { @Test public void listWithPagination() { this.securityGroup - .map( + .flux() + .flatMap( securityGroup -> PaginationUtils.requestClientV3Resources( page ->