27
27
28
28
import com .google .api .gax .longrunning .OperationFuture ;
29
29
import com .google .cloud .compute .v1 .AddResourcePoliciesRegionDiskRequest ;
30
+ import com .google .cloud .compute .v1 .BulkInsertDiskRequest ;
31
+ import com .google .cloud .compute .v1 .BulkInsertRegionDiskRequest ;
30
32
import com .google .cloud .compute .v1 .DisksClient ;
31
33
import com .google .cloud .compute .v1 .InsertResourcePolicyRequest ;
32
34
import com .google .cloud .compute .v1 .ListDisksRequest ;
39
41
import com .google .cloud .compute .v1 .StopGroupAsyncReplicationDiskRequest ;
40
42
import com .google .cloud .compute .v1 .StopGroupAsyncReplicationRegionDiskRequest ;
41
43
import compute .disks .consistencygroup .AddDiskToConsistencyGroup ;
44
+ import compute .disks .consistencygroup .CloneRegionalDisksFromConsistencyGroup ;
45
+ import compute .disks .consistencygroup .CloneZonalDisksFromConsistencyGroup ;
42
46
import compute .disks .consistencygroup .CreateConsistencyGroup ;
43
47
import compute .disks .consistencygroup .DeleteConsistencyGroup ;
44
48
import compute .disks .consistencygroup .ListRegionalDisksInConsistencyGroup ;
@@ -248,4 +252,53 @@ public void testStopZonalDiskReplicationConsistencyGroup() throws Exception {
248
252
assertEquals (Status .DONE , status );
249
253
}
250
254
}
255
+
256
+ @ Test
257
+ public void testCloneRegionalDisksFromConsistencyGroup () throws Exception {
258
+ try (MockedStatic <RegionDisksClient > mockedRegionDisksClient =
259
+ mockStatic (RegionDisksClient .class )) {
260
+ Operation operation = mock (Operation .class );
261
+ RegionDisksClient mockClient = mock (RegionDisksClient .class );
262
+ OperationFuture mockFuture = mock (OperationFuture .class );
263
+
264
+ mockedRegionDisksClient .when (RegionDisksClient ::create ).thenReturn (mockClient );
265
+ when (mockClient .bulkInsertAsync (any (BulkInsertRegionDiskRequest .class )))
266
+ .thenReturn (mockFuture );
267
+ when (mockFuture .get (anyLong (), any (TimeUnit .class ))).thenReturn (operation );
268
+ when (operation .getStatus ()).thenReturn (Status .DONE );
269
+
270
+ Status status = CloneRegionalDisksFromConsistencyGroup
271
+ .cloneRegionalDisksFromConsistencyGroup (
272
+ PROJECT_ID , REGION , CONSISTENCY_GROUP_NAME );
273
+
274
+ verify (mockClient , times (1 ))
275
+ .bulkInsertAsync (any (BulkInsertRegionDiskRequest .class ));
276
+ verify (mockFuture , times (1 )).get (anyLong (), any (TimeUnit .class ));
277
+ assertEquals (Status .DONE , status );
278
+ }
279
+ }
280
+
281
+ @ Test
282
+ public void testCloneZonalDisksFromConsistencyGroup () throws Exception {
283
+ try (MockedStatic <DisksClient > mockedRegionDisksClient =
284
+ mockStatic (DisksClient .class )) {
285
+ Operation operation = mock (Operation .class );
286
+ DisksClient mockClient = mock (DisksClient .class );
287
+ OperationFuture mockFuture = mock (OperationFuture .class );
288
+
289
+ mockedRegionDisksClient .when (DisksClient ::create ).thenReturn (mockClient );
290
+ when (mockClient .bulkInsertAsync (any (BulkInsertDiskRequest .class )))
291
+ .thenReturn (mockFuture );
292
+ when (mockFuture .get (anyLong (), any (TimeUnit .class ))).thenReturn (operation );
293
+ when (operation .getStatus ()).thenReturn (Status .DONE );
294
+
295
+ Status status = CloneZonalDisksFromConsistencyGroup
296
+ .cloneZonalDisksFromConsistencyGroup (PROJECT_ID , REGION , CONSISTENCY_GROUP_NAME );
297
+
298
+ verify (mockClient , times (1 ))
299
+ .bulkInsertAsync (any (BulkInsertDiskRequest .class ));
300
+ verify (mockFuture , times (1 )).get (anyLong (), any (TimeUnit .class ));
301
+ assertEquals (Status .DONE , status );
302
+ }
303
+ }
251
304
}
0 commit comments