Skip to content

Commit cb0dff5

Browse files
adding integration tests
1 parent bdc04f4 commit cb0dff5

File tree

1 file changed

+153
-10
lines changed

1 file changed

+153
-10
lines changed

integration-test/src/test/java/org/cloudfoundry/client/v3/SecurityGroupsTest.java

Lines changed: 153 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,35 +16,49 @@
1616

1717
package org.cloudfoundry.client.v3;
1818

19-
import org.cloudfoundry.CloudFoundryVersion;
20-
import org.cloudfoundry.IfCloudFoundryVersion;
2119
import org.cloudfoundry.AbstractIntegrationTest;
2220
import org.cloudfoundry.client.CloudFoundryClient;
21+
import org.cloudfoundry.client.v3.securitygroups.UnbindStagingSecurityGroupRequest;
22+
import org.cloudfoundry.client.v3.securitygroups.UnbindRunningSecurityGroupRequest;
23+
import org.cloudfoundry.client.v3.securitygroups.BindStagingSecurityGroupRequest;
24+
import org.cloudfoundry.client.v3.securitygroups.BindRunningSecurityGroupRequest;
2325
import org.cloudfoundry.client.v3.securitygroups.CreateSecurityGroupRequest;
24-
import org.cloudfoundry.client.v3.securitygroups.CreateSecurityGroupResponse;
2526
import org.cloudfoundry.client.v3.securitygroups.Rule;
27+
import org.cloudfoundry.client.v3.securitygroups.UpdateSecurityGroupRequest;
28+
import org.cloudfoundry.client.v3.securitygroups.DeleteSecurityGroupRequest;
29+
import org.cloudfoundry.client.v3.securitygroups.GetSecurityGroupRequest;
30+
import org.cloudfoundry.client.v3.securitygroups.ListSecurityGroupsRequest;
31+
import org.cloudfoundry.client.v3.securitygroups.ListRunningSecurityGroupsRequest;
32+
import org.cloudfoundry.client.v3.securitygroups.ListStagingSecurityGroupsRequest;
2633
import org.cloudfoundry.util.JobUtils;
27-
import org.cloudfoundry.util.PaginationUtils;
28-
import org.cloudfoundry.util.ResourceUtils;
34+
import org.junit.AfterClass;
35+
import org.junit.BeforeClass;
2936
import org.junit.Test;
3037
import org.springframework.beans.factory.annotation.Autowired;
31-
import reactor.core.publisher.Flux;
3238
import reactor.core.publisher.Mono;
3339
import reactor.test.StepVerifier;
3440

3541
import java.time.Duration;
3642

3743
import static org.cloudfoundry.client.v3.securitygroups.Protocol.TCP;
38-
import static org.cloudfoundry.util.tuple.TupleUtils.function;
3944

4045
public final class SecurityGroupsTest extends AbstractIntegrationTest {
4146

4247
@Autowired
4348
private CloudFoundryClient cloudFoundryClient;
4449

45-
@Test
46-
public void create() {
47-
String securityGroupName = this.nameFactory.getSecurityGroupName();
50+
@Autowired
51+
private Mono<String> organizationId;
52+
53+
private String securityGroupName;
54+
private Mono<String> securityGroupId;
55+
56+
@Autowired
57+
private Mono<String> spaceId;
58+
59+
@BeforeClass
60+
public void settup() {
61+
this.securityGroupName = this.nameFactory.getSecurityGroupName();
4862

4963
this.cloudFoundryClient.securityGroupsV3()
5064
.create(CreateSecurityGroupRequest.builder()
@@ -56,11 +70,140 @@ public void create() {
5670
.protocol(TCP)
5771
.build())
5872
.build())
73+
.doOnSuccess(response -> this.securityGroupId = Mono.just(response.getId()))
5974
.map(response -> response.getName())
6075
.as(StepVerifier::create)
6176
.expectNext(securityGroupName)
6277
.expectComplete()
6378
.verify(Duration.ofMinutes(5));
6479
}
6580

81+
@AfterClass
82+
public void tearDown() {
83+
this.cloudFoundryClient.securityGroupsV3().delete(
84+
DeleteSecurityGroupRequest.builder()
85+
.securityGroupId(this.securityGroupId.block())
86+
.build())
87+
.flatMap(
88+
job -> JobUtils.waitForCompletion(this.cloudFoundryClient,
89+
Duration.ofMinutes(5), job))
90+
.as(StepVerifier::create)
91+
.expectComplete()
92+
.verify(Duration.ofMinutes(5));
93+
}
94+
95+
@Test
96+
public void update() {
97+
this.cloudFoundryClient.securityGroupsV3().update(
98+
UpdateSecurityGroupRequest.builder()
99+
.securityGroupId(securityGroupId.block())
100+
.rule(Rule.builder()
101+
.destination("0.0.0.0/0")
102+
.ports("8080")
103+
.protocol(TCP)
104+
.build())
105+
.build())
106+
.as(StepVerifier::create)
107+
.expectComplete()
108+
.verify(Duration.ofMinutes(5));
109+
110+
}
111+
112+
@Test
113+
public void get() {
114+
this.cloudFoundryClient.securityGroupsV3().get(
115+
GetSecurityGroupRequest.builder()
116+
.securityGroupId(securityGroupId.block())
117+
.build())
118+
.map(securityGroup -> securityGroup.getName())
119+
.as(StepVerifier::create)
120+
.expectNext(this.securityGroupName)
121+
.expectComplete()
122+
.verify(Duration.ofMinutes(5));
123+
124+
}
125+
126+
@Test
127+
public void list() {
128+
this.cloudFoundryClient.securityGroupsV3().list(
129+
ListSecurityGroupsRequest.builder()
130+
.build())
131+
.as(StepVerifier::create)
132+
.expectComplete()
133+
.verify(Duration.ofMinutes(5));
134+
}
135+
136+
@Test
137+
public void listRunning() {
138+
this.cloudFoundryClient.securityGroupsV3().listRunning(
139+
ListRunningSecurityGroupsRequest.builder()
140+
.spaceId(this.spaceId.block())
141+
.build())
142+
.as(StepVerifier::create)
143+
.expectComplete()
144+
.verify(Duration.ofMinutes(5));
145+
}
146+
147+
@Test
148+
public void listStaging() {
149+
this.cloudFoundryClient.securityGroupsV3().listStaging(
150+
ListStagingSecurityGroupsRequest.builder()
151+
.spaceId(this.spaceId.block())
152+
.build())
153+
.as(StepVerifier::create)
154+
.expectComplete()
155+
.verify(Duration.ofMinutes(5));
156+
}
157+
158+
@Test
159+
public void bindStagingSecurityGroup() {
160+
this.cloudFoundryClient.securityGroupsV3().bindStagingSecurityGroup(
161+
BindStagingSecurityGroupRequest.builder()
162+
.securityGroupId(this.securityGroupId.block())
163+
.boundSpaces(Relationship.builder()
164+
.id(this.spaceId.block())
165+
.build())
166+
.build())
167+
.as(StepVerifier::create)
168+
.expectComplete()
169+
.verify(Duration.ofMinutes(5));
170+
}
171+
172+
@Test
173+
public void bindRunningSecurityGroup() {
174+
this.cloudFoundryClient.securityGroupsV3().bindRunningSecurityGroup(
175+
BindRunningSecurityGroupRequest.builder()
176+
.securityGroupId(this.securityGroupId.block())
177+
.boundSpaces(Relationship.builder()
178+
.id(this.spaceId.block())
179+
.build())
180+
.build())
181+
.as(StepVerifier::create)
182+
.expectComplete()
183+
.verify(Duration.ofMinutes(5));
184+
}
185+
186+
@Test
187+
public void unbindRunningSecurityGroup() {
188+
this.cloudFoundryClient.securityGroupsV3().unbindRunningSecurityGroup(
189+
UnbindRunningSecurityGroupRequest.builder()
190+
.securityGroupId(this.securityGroupId.block())
191+
.spaceId(this.spaceId.block())
192+
.build())
193+
.as(StepVerifier::create)
194+
.expectComplete()
195+
.verify(Duration.ofMinutes(5));
196+
}
197+
198+
@Test
199+
public void unbindStagingSecurityGroup() {
200+
this.cloudFoundryClient.securityGroupsV3().unbindStagingSecurityGroup(
201+
UnbindStagingSecurityGroupRequest.builder()
202+
.securityGroupId(this.securityGroupId.block())
203+
.spaceId(this.spaceId.block())
204+
.build())
205+
.as(StepVerifier::create)
206+
.expectComplete()
207+
.verify(Duration.ofMinutes(5));
208+
}
66209
}

0 commit comments

Comments
 (0)