1616
1717package org .cloudfoundry .client .v3 ;
1818
19- import org .cloudfoundry .CloudFoundryVersion ;
20- import org .cloudfoundry .IfCloudFoundryVersion ;
2119import org .cloudfoundry .AbstractIntegrationTest ;
2220import 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 ;
2325import org .cloudfoundry .client .v3 .securitygroups .CreateSecurityGroupRequest ;
24- import org .cloudfoundry .client .v3 .securitygroups .CreateSecurityGroupResponse ;
2526import 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 ;
2633import 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 ;
2936import org .junit .Test ;
3037import org .springframework .beans .factory .annotation .Autowired ;
31- import reactor .core .publisher .Flux ;
3238import reactor .core .publisher .Mono ;
3339import reactor .test .StepVerifier ;
3440
3541import java .time .Duration ;
3642
3743import static org .cloudfoundry .client .v3 .securitygroups .Protocol .TCP ;
38- import static org .cloudfoundry .util .tuple .TupleUtils .function ;
3944
4045public 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