2727
2828import com .google .api .gax .longrunning .OperationFuture ;
2929import com .google .cloud .compute .v1 .AddResourcePoliciesRegionDiskRequest ;
30+ import com .google .cloud .compute .v1 .BulkInsertDiskRequest ;
31+ import com .google .cloud .compute .v1 .BulkInsertRegionDiskRequest ;
3032import com .google .cloud .compute .v1 .DisksClient ;
3133import com .google .cloud .compute .v1 .InsertResourcePolicyRequest ;
3234import com .google .cloud .compute .v1 .ListDisksRequest ;
3941import com .google .cloud .compute .v1 .StopGroupAsyncReplicationDiskRequest ;
4042import com .google .cloud .compute .v1 .StopGroupAsyncReplicationRegionDiskRequest ;
4143import compute .disks .consistencygroup .AddDiskToConsistencyGroup ;
44+ import compute .disks .consistencygroup .CloneRegionalDisksFromConsistencyGroup ;
45+ import compute .disks .consistencygroup .CloneZonalDisksFromConsistencyGroup ;
4246import compute .disks .consistencygroup .CreateConsistencyGroup ;
4347import compute .disks .consistencygroup .DeleteConsistencyGroup ;
4448import compute .disks .consistencygroup .ListRegionalDisksInConsistencyGroup ;
@@ -248,4 +252,53 @@ public void testStopZonalDiskReplicationConsistencyGroup() throws Exception {
248252 assertEquals (Status .DONE , status );
249253 }
250254 }
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+ }
251304}
0 commit comments