• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.cloud.vmmigration.v1;
18 
19 import static com.google.cloud.vmmigration.v1.VmMigrationClient.ListCloneJobsPagedResponse;
20 import static com.google.cloud.vmmigration.v1.VmMigrationClient.ListCutoverJobsPagedResponse;
21 import static com.google.cloud.vmmigration.v1.VmMigrationClient.ListDatacenterConnectorsPagedResponse;
22 import static com.google.cloud.vmmigration.v1.VmMigrationClient.ListGroupsPagedResponse;
23 import static com.google.cloud.vmmigration.v1.VmMigrationClient.ListLocationsPagedResponse;
24 import static com.google.cloud.vmmigration.v1.VmMigrationClient.ListMigratingVmsPagedResponse;
25 import static com.google.cloud.vmmigration.v1.VmMigrationClient.ListReplicationCyclesPagedResponse;
26 import static com.google.cloud.vmmigration.v1.VmMigrationClient.ListSourcesPagedResponse;
27 import static com.google.cloud.vmmigration.v1.VmMigrationClient.ListTargetProjectsPagedResponse;
28 import static com.google.cloud.vmmigration.v1.VmMigrationClient.ListUtilizationReportsPagedResponse;
29 
30 import com.google.api.gax.core.NoCredentialsProvider;
31 import com.google.api.gax.httpjson.GaxHttpJsonProperties;
32 import com.google.api.gax.httpjson.testing.MockHttpService;
33 import com.google.api.gax.rpc.ApiClientHeaderProvider;
34 import com.google.api.gax.rpc.ApiException;
35 import com.google.api.gax.rpc.ApiExceptionFactory;
36 import com.google.api.gax.rpc.InvalidArgumentException;
37 import com.google.api.gax.rpc.StatusCode;
38 import com.google.api.gax.rpc.testing.FakeStatusCode;
39 import com.google.cloud.location.GetLocationRequest;
40 import com.google.cloud.location.ListLocationsRequest;
41 import com.google.cloud.location.ListLocationsResponse;
42 import com.google.cloud.location.Location;
43 import com.google.cloud.vmmigration.v1.stub.HttpJsonVmMigrationStub;
44 import com.google.common.collect.Lists;
45 import com.google.longrunning.Operation;
46 import com.google.protobuf.Any;
47 import com.google.protobuf.Duration;
48 import com.google.protobuf.Empty;
49 import com.google.protobuf.FieldMask;
50 import com.google.protobuf.Timestamp;
51 import com.google.rpc.Status;
52 import java.io.IOException;
53 import java.util.ArrayList;
54 import java.util.Arrays;
55 import java.util.HashMap;
56 import java.util.List;
57 import java.util.concurrent.ExecutionException;
58 import javax.annotation.Generated;
59 import org.junit.After;
60 import org.junit.AfterClass;
61 import org.junit.Assert;
62 import org.junit.Before;
63 import org.junit.BeforeClass;
64 import org.junit.Test;
65 
66 @Generated("by gapic-generator-java")
67 public class VmMigrationClientHttpJsonTest {
68   private static MockHttpService mockService;
69   private static VmMigrationClient client;
70 
71   @BeforeClass
startStaticServer()72   public static void startStaticServer() throws IOException {
73     mockService =
74         new MockHttpService(
75             HttpJsonVmMigrationStub.getMethodDescriptors(),
76             VmMigrationSettings.getDefaultEndpoint());
77     VmMigrationSettings settings =
78         VmMigrationSettings.newHttpJsonBuilder()
79             .setTransportChannelProvider(
80                 VmMigrationSettings.defaultHttpJsonTransportProviderBuilder()
81                     .setHttpTransport(mockService)
82                     .build())
83             .setCredentialsProvider(NoCredentialsProvider.create())
84             .build();
85     client = VmMigrationClient.create(settings);
86   }
87 
88   @AfterClass
stopServer()89   public static void stopServer() {
90     client.close();
91   }
92 
93   @Before
setUp()94   public void setUp() {}
95 
96   @After
tearDown()97   public void tearDown() throws Exception {
98     mockService.reset();
99   }
100 
101   @Test
listSourcesTest()102   public void listSourcesTest() throws Exception {
103     Source responsesElement = Source.newBuilder().build();
104     ListSourcesResponse expectedResponse =
105         ListSourcesResponse.newBuilder()
106             .setNextPageToken("")
107             .addAllSources(Arrays.asList(responsesElement))
108             .build();
109     mockService.addResponse(expectedResponse);
110 
111     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
112 
113     ListSourcesPagedResponse pagedListResponse = client.listSources(parent);
114 
115     List<Source> resources = Lists.newArrayList(pagedListResponse.iterateAll());
116 
117     Assert.assertEquals(1, resources.size());
118     Assert.assertEquals(expectedResponse.getSourcesList().get(0), resources.get(0));
119 
120     List<String> actualRequests = mockService.getRequestPaths();
121     Assert.assertEquals(1, actualRequests.size());
122 
123     String apiClientHeaderKey =
124         mockService
125             .getRequestHeaders()
126             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
127             .iterator()
128             .next();
129     Assert.assertTrue(
130         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
131             .matcher(apiClientHeaderKey)
132             .matches());
133   }
134 
135   @Test
listSourcesExceptionTest()136   public void listSourcesExceptionTest() throws Exception {
137     ApiException exception =
138         ApiExceptionFactory.createException(
139             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
140     mockService.addException(exception);
141 
142     try {
143       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
144       client.listSources(parent);
145       Assert.fail("No exception raised");
146     } catch (InvalidArgumentException e) {
147       // Expected exception.
148     }
149   }
150 
151   @Test
listSourcesTest2()152   public void listSourcesTest2() throws Exception {
153     Source responsesElement = Source.newBuilder().build();
154     ListSourcesResponse expectedResponse =
155         ListSourcesResponse.newBuilder()
156             .setNextPageToken("")
157             .addAllSources(Arrays.asList(responsesElement))
158             .build();
159     mockService.addResponse(expectedResponse);
160 
161     String parent = "projects/project-5833/locations/location-5833";
162 
163     ListSourcesPagedResponse pagedListResponse = client.listSources(parent);
164 
165     List<Source> resources = Lists.newArrayList(pagedListResponse.iterateAll());
166 
167     Assert.assertEquals(1, resources.size());
168     Assert.assertEquals(expectedResponse.getSourcesList().get(0), resources.get(0));
169 
170     List<String> actualRequests = mockService.getRequestPaths();
171     Assert.assertEquals(1, actualRequests.size());
172 
173     String apiClientHeaderKey =
174         mockService
175             .getRequestHeaders()
176             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
177             .iterator()
178             .next();
179     Assert.assertTrue(
180         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
181             .matcher(apiClientHeaderKey)
182             .matches());
183   }
184 
185   @Test
listSourcesExceptionTest2()186   public void listSourcesExceptionTest2() throws Exception {
187     ApiException exception =
188         ApiExceptionFactory.createException(
189             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
190     mockService.addException(exception);
191 
192     try {
193       String parent = "projects/project-5833/locations/location-5833";
194       client.listSources(parent);
195       Assert.fail("No exception raised");
196     } catch (InvalidArgumentException e) {
197       // Expected exception.
198     }
199   }
200 
201   @Test
getSourceTest()202   public void getSourceTest() throws Exception {
203     Source expectedResponse =
204         Source.newBuilder()
205             .setName(SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]").toString())
206             .setCreateTime(Timestamp.newBuilder().build())
207             .setUpdateTime(Timestamp.newBuilder().build())
208             .putAllLabels(new HashMap<String, String>())
209             .setDescription("description-1724546052")
210             .build();
211     mockService.addResponse(expectedResponse);
212 
213     SourceName name = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
214 
215     Source actualResponse = client.getSource(name);
216     Assert.assertEquals(expectedResponse, actualResponse);
217 
218     List<String> actualRequests = mockService.getRequestPaths();
219     Assert.assertEquals(1, actualRequests.size());
220 
221     String apiClientHeaderKey =
222         mockService
223             .getRequestHeaders()
224             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
225             .iterator()
226             .next();
227     Assert.assertTrue(
228         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
229             .matcher(apiClientHeaderKey)
230             .matches());
231   }
232 
233   @Test
getSourceExceptionTest()234   public void getSourceExceptionTest() throws Exception {
235     ApiException exception =
236         ApiExceptionFactory.createException(
237             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
238     mockService.addException(exception);
239 
240     try {
241       SourceName name = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
242       client.getSource(name);
243       Assert.fail("No exception raised");
244     } catch (InvalidArgumentException e) {
245       // Expected exception.
246     }
247   }
248 
249   @Test
getSourceTest2()250   public void getSourceTest2() throws Exception {
251     Source expectedResponse =
252         Source.newBuilder()
253             .setName(SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]").toString())
254             .setCreateTime(Timestamp.newBuilder().build())
255             .setUpdateTime(Timestamp.newBuilder().build())
256             .putAllLabels(new HashMap<String, String>())
257             .setDescription("description-1724546052")
258             .build();
259     mockService.addResponse(expectedResponse);
260 
261     String name = "projects/project-2226/locations/location-2226/sources/source-2226";
262 
263     Source actualResponse = client.getSource(name);
264     Assert.assertEquals(expectedResponse, actualResponse);
265 
266     List<String> actualRequests = mockService.getRequestPaths();
267     Assert.assertEquals(1, actualRequests.size());
268 
269     String apiClientHeaderKey =
270         mockService
271             .getRequestHeaders()
272             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
273             .iterator()
274             .next();
275     Assert.assertTrue(
276         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
277             .matcher(apiClientHeaderKey)
278             .matches());
279   }
280 
281   @Test
getSourceExceptionTest2()282   public void getSourceExceptionTest2() throws Exception {
283     ApiException exception =
284         ApiExceptionFactory.createException(
285             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
286     mockService.addException(exception);
287 
288     try {
289       String name = "projects/project-2226/locations/location-2226/sources/source-2226";
290       client.getSource(name);
291       Assert.fail("No exception raised");
292     } catch (InvalidArgumentException e) {
293       // Expected exception.
294     }
295   }
296 
297   @Test
createSourceTest()298   public void createSourceTest() throws Exception {
299     Source expectedResponse =
300         Source.newBuilder()
301             .setName(SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]").toString())
302             .setCreateTime(Timestamp.newBuilder().build())
303             .setUpdateTime(Timestamp.newBuilder().build())
304             .putAllLabels(new HashMap<String, String>())
305             .setDescription("description-1724546052")
306             .build();
307     Operation resultOperation =
308         Operation.newBuilder()
309             .setName("createSourceTest")
310             .setDone(true)
311             .setResponse(Any.pack(expectedResponse))
312             .build();
313     mockService.addResponse(resultOperation);
314 
315     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
316     Source source = Source.newBuilder().build();
317     String sourceId = "sourceId1746327190";
318 
319     Source actualResponse = client.createSourceAsync(parent, source, sourceId).get();
320     Assert.assertEquals(expectedResponse, actualResponse);
321 
322     List<String> actualRequests = mockService.getRequestPaths();
323     Assert.assertEquals(1, actualRequests.size());
324 
325     String apiClientHeaderKey =
326         mockService
327             .getRequestHeaders()
328             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
329             .iterator()
330             .next();
331     Assert.assertTrue(
332         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
333             .matcher(apiClientHeaderKey)
334             .matches());
335   }
336 
337   @Test
createSourceExceptionTest()338   public void createSourceExceptionTest() throws Exception {
339     ApiException exception =
340         ApiExceptionFactory.createException(
341             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
342     mockService.addException(exception);
343 
344     try {
345       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
346       Source source = Source.newBuilder().build();
347       String sourceId = "sourceId1746327190";
348       client.createSourceAsync(parent, source, sourceId).get();
349       Assert.fail("No exception raised");
350     } catch (ExecutionException e) {
351     }
352   }
353 
354   @Test
createSourceTest2()355   public void createSourceTest2() throws Exception {
356     Source expectedResponse =
357         Source.newBuilder()
358             .setName(SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]").toString())
359             .setCreateTime(Timestamp.newBuilder().build())
360             .setUpdateTime(Timestamp.newBuilder().build())
361             .putAllLabels(new HashMap<String, String>())
362             .setDescription("description-1724546052")
363             .build();
364     Operation resultOperation =
365         Operation.newBuilder()
366             .setName("createSourceTest")
367             .setDone(true)
368             .setResponse(Any.pack(expectedResponse))
369             .build();
370     mockService.addResponse(resultOperation);
371 
372     String parent = "projects/project-5833/locations/location-5833";
373     Source source = Source.newBuilder().build();
374     String sourceId = "sourceId1746327190";
375 
376     Source actualResponse = client.createSourceAsync(parent, source, sourceId).get();
377     Assert.assertEquals(expectedResponse, actualResponse);
378 
379     List<String> actualRequests = mockService.getRequestPaths();
380     Assert.assertEquals(1, actualRequests.size());
381 
382     String apiClientHeaderKey =
383         mockService
384             .getRequestHeaders()
385             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
386             .iterator()
387             .next();
388     Assert.assertTrue(
389         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
390             .matcher(apiClientHeaderKey)
391             .matches());
392   }
393 
394   @Test
createSourceExceptionTest2()395   public void createSourceExceptionTest2() throws Exception {
396     ApiException exception =
397         ApiExceptionFactory.createException(
398             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
399     mockService.addException(exception);
400 
401     try {
402       String parent = "projects/project-5833/locations/location-5833";
403       Source source = Source.newBuilder().build();
404       String sourceId = "sourceId1746327190";
405       client.createSourceAsync(parent, source, sourceId).get();
406       Assert.fail("No exception raised");
407     } catch (ExecutionException e) {
408     }
409   }
410 
411   @Test
updateSourceTest()412   public void updateSourceTest() throws Exception {
413     Source expectedResponse =
414         Source.newBuilder()
415             .setName(SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]").toString())
416             .setCreateTime(Timestamp.newBuilder().build())
417             .setUpdateTime(Timestamp.newBuilder().build())
418             .putAllLabels(new HashMap<String, String>())
419             .setDescription("description-1724546052")
420             .build();
421     Operation resultOperation =
422         Operation.newBuilder()
423             .setName("updateSourceTest")
424             .setDone(true)
425             .setResponse(Any.pack(expectedResponse))
426             .build();
427     mockService.addResponse(resultOperation);
428 
429     Source source =
430         Source.newBuilder()
431             .setName(SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]").toString())
432             .setCreateTime(Timestamp.newBuilder().build())
433             .setUpdateTime(Timestamp.newBuilder().build())
434             .putAllLabels(new HashMap<String, String>())
435             .setDescription("description-1724546052")
436             .build();
437     FieldMask updateMask = FieldMask.newBuilder().build();
438 
439     Source actualResponse = client.updateSourceAsync(source, updateMask).get();
440     Assert.assertEquals(expectedResponse, actualResponse);
441 
442     List<String> actualRequests = mockService.getRequestPaths();
443     Assert.assertEquals(1, actualRequests.size());
444 
445     String apiClientHeaderKey =
446         mockService
447             .getRequestHeaders()
448             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
449             .iterator()
450             .next();
451     Assert.assertTrue(
452         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
453             .matcher(apiClientHeaderKey)
454             .matches());
455   }
456 
457   @Test
updateSourceExceptionTest()458   public void updateSourceExceptionTest() throws Exception {
459     ApiException exception =
460         ApiExceptionFactory.createException(
461             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
462     mockService.addException(exception);
463 
464     try {
465       Source source =
466           Source.newBuilder()
467               .setName(SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]").toString())
468               .setCreateTime(Timestamp.newBuilder().build())
469               .setUpdateTime(Timestamp.newBuilder().build())
470               .putAllLabels(new HashMap<String, String>())
471               .setDescription("description-1724546052")
472               .build();
473       FieldMask updateMask = FieldMask.newBuilder().build();
474       client.updateSourceAsync(source, updateMask).get();
475       Assert.fail("No exception raised");
476     } catch (ExecutionException e) {
477     }
478   }
479 
480   @Test
deleteSourceTest()481   public void deleteSourceTest() throws Exception {
482     Empty expectedResponse = Empty.newBuilder().build();
483     Operation resultOperation =
484         Operation.newBuilder()
485             .setName("deleteSourceTest")
486             .setDone(true)
487             .setResponse(Any.pack(expectedResponse))
488             .build();
489     mockService.addResponse(resultOperation);
490 
491     SourceName name = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
492 
493     client.deleteSourceAsync(name).get();
494 
495     List<String> actualRequests = mockService.getRequestPaths();
496     Assert.assertEquals(1, actualRequests.size());
497 
498     String apiClientHeaderKey =
499         mockService
500             .getRequestHeaders()
501             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
502             .iterator()
503             .next();
504     Assert.assertTrue(
505         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
506             .matcher(apiClientHeaderKey)
507             .matches());
508   }
509 
510   @Test
deleteSourceExceptionTest()511   public void deleteSourceExceptionTest() throws Exception {
512     ApiException exception =
513         ApiExceptionFactory.createException(
514             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
515     mockService.addException(exception);
516 
517     try {
518       SourceName name = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
519       client.deleteSourceAsync(name).get();
520       Assert.fail("No exception raised");
521     } catch (ExecutionException e) {
522     }
523   }
524 
525   @Test
deleteSourceTest2()526   public void deleteSourceTest2() throws Exception {
527     Empty expectedResponse = Empty.newBuilder().build();
528     Operation resultOperation =
529         Operation.newBuilder()
530             .setName("deleteSourceTest")
531             .setDone(true)
532             .setResponse(Any.pack(expectedResponse))
533             .build();
534     mockService.addResponse(resultOperation);
535 
536     String name = "projects/project-2226/locations/location-2226/sources/source-2226";
537 
538     client.deleteSourceAsync(name).get();
539 
540     List<String> actualRequests = mockService.getRequestPaths();
541     Assert.assertEquals(1, actualRequests.size());
542 
543     String apiClientHeaderKey =
544         mockService
545             .getRequestHeaders()
546             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
547             .iterator()
548             .next();
549     Assert.assertTrue(
550         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
551             .matcher(apiClientHeaderKey)
552             .matches());
553   }
554 
555   @Test
deleteSourceExceptionTest2()556   public void deleteSourceExceptionTest2() throws Exception {
557     ApiException exception =
558         ApiExceptionFactory.createException(
559             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
560     mockService.addException(exception);
561 
562     try {
563       String name = "projects/project-2226/locations/location-2226/sources/source-2226";
564       client.deleteSourceAsync(name).get();
565       Assert.fail("No exception raised");
566     } catch (ExecutionException e) {
567     }
568   }
569 
570   @Test
fetchInventoryTest()571   public void fetchInventoryTest() throws Exception {
572     FetchInventoryResponse expectedResponse =
573         FetchInventoryResponse.newBuilder().setUpdateTime(Timestamp.newBuilder().build()).build();
574     mockService.addResponse(expectedResponse);
575 
576     SourceName source = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
577 
578     FetchInventoryResponse actualResponse = client.fetchInventory(source);
579     Assert.assertEquals(expectedResponse, actualResponse);
580 
581     List<String> actualRequests = mockService.getRequestPaths();
582     Assert.assertEquals(1, actualRequests.size());
583 
584     String apiClientHeaderKey =
585         mockService
586             .getRequestHeaders()
587             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
588             .iterator()
589             .next();
590     Assert.assertTrue(
591         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
592             .matcher(apiClientHeaderKey)
593             .matches());
594   }
595 
596   @Test
fetchInventoryExceptionTest()597   public void fetchInventoryExceptionTest() throws Exception {
598     ApiException exception =
599         ApiExceptionFactory.createException(
600             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
601     mockService.addException(exception);
602 
603     try {
604       SourceName source = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
605       client.fetchInventory(source);
606       Assert.fail("No exception raised");
607     } catch (InvalidArgumentException e) {
608       // Expected exception.
609     }
610   }
611 
612   @Test
fetchInventoryTest2()613   public void fetchInventoryTest2() throws Exception {
614     FetchInventoryResponse expectedResponse =
615         FetchInventoryResponse.newBuilder().setUpdateTime(Timestamp.newBuilder().build()).build();
616     mockService.addResponse(expectedResponse);
617 
618     String source = "projects/project-3586/locations/location-3586/sources/source-3586";
619 
620     FetchInventoryResponse actualResponse = client.fetchInventory(source);
621     Assert.assertEquals(expectedResponse, actualResponse);
622 
623     List<String> actualRequests = mockService.getRequestPaths();
624     Assert.assertEquals(1, actualRequests.size());
625 
626     String apiClientHeaderKey =
627         mockService
628             .getRequestHeaders()
629             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
630             .iterator()
631             .next();
632     Assert.assertTrue(
633         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
634             .matcher(apiClientHeaderKey)
635             .matches());
636   }
637 
638   @Test
fetchInventoryExceptionTest2()639   public void fetchInventoryExceptionTest2() throws Exception {
640     ApiException exception =
641         ApiExceptionFactory.createException(
642             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
643     mockService.addException(exception);
644 
645     try {
646       String source = "projects/project-3586/locations/location-3586/sources/source-3586";
647       client.fetchInventory(source);
648       Assert.fail("No exception raised");
649     } catch (InvalidArgumentException e) {
650       // Expected exception.
651     }
652   }
653 
654   @Test
listUtilizationReportsTest()655   public void listUtilizationReportsTest() throws Exception {
656     UtilizationReport responsesElement = UtilizationReport.newBuilder().build();
657     ListUtilizationReportsResponse expectedResponse =
658         ListUtilizationReportsResponse.newBuilder()
659             .setNextPageToken("")
660             .addAllUtilizationReports(Arrays.asList(responsesElement))
661             .build();
662     mockService.addResponse(expectedResponse);
663 
664     SourceName parent = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
665 
666     ListUtilizationReportsPagedResponse pagedListResponse = client.listUtilizationReports(parent);
667 
668     List<UtilizationReport> resources = Lists.newArrayList(pagedListResponse.iterateAll());
669 
670     Assert.assertEquals(1, resources.size());
671     Assert.assertEquals(expectedResponse.getUtilizationReportsList().get(0), resources.get(0));
672 
673     List<String> actualRequests = mockService.getRequestPaths();
674     Assert.assertEquals(1, actualRequests.size());
675 
676     String apiClientHeaderKey =
677         mockService
678             .getRequestHeaders()
679             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
680             .iterator()
681             .next();
682     Assert.assertTrue(
683         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
684             .matcher(apiClientHeaderKey)
685             .matches());
686   }
687 
688   @Test
listUtilizationReportsExceptionTest()689   public void listUtilizationReportsExceptionTest() throws Exception {
690     ApiException exception =
691         ApiExceptionFactory.createException(
692             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
693     mockService.addException(exception);
694 
695     try {
696       SourceName parent = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
697       client.listUtilizationReports(parent);
698       Assert.fail("No exception raised");
699     } catch (InvalidArgumentException e) {
700       // Expected exception.
701     }
702   }
703 
704   @Test
listUtilizationReportsTest2()705   public void listUtilizationReportsTest2() throws Exception {
706     UtilizationReport responsesElement = UtilizationReport.newBuilder().build();
707     ListUtilizationReportsResponse expectedResponse =
708         ListUtilizationReportsResponse.newBuilder()
709             .setNextPageToken("")
710             .addAllUtilizationReports(Arrays.asList(responsesElement))
711             .build();
712     mockService.addResponse(expectedResponse);
713 
714     String parent = "projects/project-8435/locations/location-8435/sources/source-8435";
715 
716     ListUtilizationReportsPagedResponse pagedListResponse = client.listUtilizationReports(parent);
717 
718     List<UtilizationReport> resources = Lists.newArrayList(pagedListResponse.iterateAll());
719 
720     Assert.assertEquals(1, resources.size());
721     Assert.assertEquals(expectedResponse.getUtilizationReportsList().get(0), resources.get(0));
722 
723     List<String> actualRequests = mockService.getRequestPaths();
724     Assert.assertEquals(1, actualRequests.size());
725 
726     String apiClientHeaderKey =
727         mockService
728             .getRequestHeaders()
729             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
730             .iterator()
731             .next();
732     Assert.assertTrue(
733         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
734             .matcher(apiClientHeaderKey)
735             .matches());
736   }
737 
738   @Test
listUtilizationReportsExceptionTest2()739   public void listUtilizationReportsExceptionTest2() throws Exception {
740     ApiException exception =
741         ApiExceptionFactory.createException(
742             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
743     mockService.addException(exception);
744 
745     try {
746       String parent = "projects/project-8435/locations/location-8435/sources/source-8435";
747       client.listUtilizationReports(parent);
748       Assert.fail("No exception raised");
749     } catch (InvalidArgumentException e) {
750       // Expected exception.
751     }
752   }
753 
754   @Test
getUtilizationReportTest()755   public void getUtilizationReportTest() throws Exception {
756     UtilizationReport expectedResponse =
757         UtilizationReport.newBuilder()
758             .setName(
759                 UtilizationReportName.of(
760                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[UTILIZATION_REPORT]")
761                     .toString())
762             .setDisplayName("displayName1714148973")
763             .setStateTime(Timestamp.newBuilder().build())
764             .setError(Status.newBuilder().build())
765             .setCreateTime(Timestamp.newBuilder().build())
766             .setFrameEndTime(Timestamp.newBuilder().build())
767             .setVmCount(261463431)
768             .addAllVms(new ArrayList<VmUtilizationInfo>())
769             .build();
770     mockService.addResponse(expectedResponse);
771 
772     UtilizationReportName name =
773         UtilizationReportName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[UTILIZATION_REPORT]");
774 
775     UtilizationReport actualResponse = client.getUtilizationReport(name);
776     Assert.assertEquals(expectedResponse, actualResponse);
777 
778     List<String> actualRequests = mockService.getRequestPaths();
779     Assert.assertEquals(1, actualRequests.size());
780 
781     String apiClientHeaderKey =
782         mockService
783             .getRequestHeaders()
784             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
785             .iterator()
786             .next();
787     Assert.assertTrue(
788         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
789             .matcher(apiClientHeaderKey)
790             .matches());
791   }
792 
793   @Test
getUtilizationReportExceptionTest()794   public void getUtilizationReportExceptionTest() throws Exception {
795     ApiException exception =
796         ApiExceptionFactory.createException(
797             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
798     mockService.addException(exception);
799 
800     try {
801       UtilizationReportName name =
802           UtilizationReportName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[UTILIZATION_REPORT]");
803       client.getUtilizationReport(name);
804       Assert.fail("No exception raised");
805     } catch (InvalidArgumentException e) {
806       // Expected exception.
807     }
808   }
809 
810   @Test
getUtilizationReportTest2()811   public void getUtilizationReportTest2() throws Exception {
812     UtilizationReport expectedResponse =
813         UtilizationReport.newBuilder()
814             .setName(
815                 UtilizationReportName.of(
816                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[UTILIZATION_REPORT]")
817                     .toString())
818             .setDisplayName("displayName1714148973")
819             .setStateTime(Timestamp.newBuilder().build())
820             .setError(Status.newBuilder().build())
821             .setCreateTime(Timestamp.newBuilder().build())
822             .setFrameEndTime(Timestamp.newBuilder().build())
823             .setVmCount(261463431)
824             .addAllVms(new ArrayList<VmUtilizationInfo>())
825             .build();
826     mockService.addResponse(expectedResponse);
827 
828     String name =
829         "projects/project-8681/locations/location-8681/sources/source-8681/utilizationReports/utilizationReport-8681";
830 
831     UtilizationReport actualResponse = client.getUtilizationReport(name);
832     Assert.assertEquals(expectedResponse, actualResponse);
833 
834     List<String> actualRequests = mockService.getRequestPaths();
835     Assert.assertEquals(1, actualRequests.size());
836 
837     String apiClientHeaderKey =
838         mockService
839             .getRequestHeaders()
840             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
841             .iterator()
842             .next();
843     Assert.assertTrue(
844         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
845             .matcher(apiClientHeaderKey)
846             .matches());
847   }
848 
849   @Test
getUtilizationReportExceptionTest2()850   public void getUtilizationReportExceptionTest2() throws Exception {
851     ApiException exception =
852         ApiExceptionFactory.createException(
853             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
854     mockService.addException(exception);
855 
856     try {
857       String name =
858           "projects/project-8681/locations/location-8681/sources/source-8681/utilizationReports/utilizationReport-8681";
859       client.getUtilizationReport(name);
860       Assert.fail("No exception raised");
861     } catch (InvalidArgumentException e) {
862       // Expected exception.
863     }
864   }
865 
866   @Test
createUtilizationReportTest()867   public void createUtilizationReportTest() throws Exception {
868     UtilizationReport expectedResponse =
869         UtilizationReport.newBuilder()
870             .setName(
871                 UtilizationReportName.of(
872                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[UTILIZATION_REPORT]")
873                     .toString())
874             .setDisplayName("displayName1714148973")
875             .setStateTime(Timestamp.newBuilder().build())
876             .setError(Status.newBuilder().build())
877             .setCreateTime(Timestamp.newBuilder().build())
878             .setFrameEndTime(Timestamp.newBuilder().build())
879             .setVmCount(261463431)
880             .addAllVms(new ArrayList<VmUtilizationInfo>())
881             .build();
882     Operation resultOperation =
883         Operation.newBuilder()
884             .setName("createUtilizationReportTest")
885             .setDone(true)
886             .setResponse(Any.pack(expectedResponse))
887             .build();
888     mockService.addResponse(resultOperation);
889 
890     SourceName parent = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
891     UtilizationReport utilizationReport = UtilizationReport.newBuilder().build();
892     String utilizationReportId = "utilizationReportId1215771057";
893 
894     UtilizationReport actualResponse =
895         client.createUtilizationReportAsync(parent, utilizationReport, utilizationReportId).get();
896     Assert.assertEquals(expectedResponse, actualResponse);
897 
898     List<String> actualRequests = mockService.getRequestPaths();
899     Assert.assertEquals(1, actualRequests.size());
900 
901     String apiClientHeaderKey =
902         mockService
903             .getRequestHeaders()
904             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
905             .iterator()
906             .next();
907     Assert.assertTrue(
908         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
909             .matcher(apiClientHeaderKey)
910             .matches());
911   }
912 
913   @Test
createUtilizationReportExceptionTest()914   public void createUtilizationReportExceptionTest() throws Exception {
915     ApiException exception =
916         ApiExceptionFactory.createException(
917             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
918     mockService.addException(exception);
919 
920     try {
921       SourceName parent = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
922       UtilizationReport utilizationReport = UtilizationReport.newBuilder().build();
923       String utilizationReportId = "utilizationReportId1215771057";
924       client.createUtilizationReportAsync(parent, utilizationReport, utilizationReportId).get();
925       Assert.fail("No exception raised");
926     } catch (ExecutionException e) {
927     }
928   }
929 
930   @Test
createUtilizationReportTest2()931   public void createUtilizationReportTest2() throws Exception {
932     UtilizationReport expectedResponse =
933         UtilizationReport.newBuilder()
934             .setName(
935                 UtilizationReportName.of(
936                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[UTILIZATION_REPORT]")
937                     .toString())
938             .setDisplayName("displayName1714148973")
939             .setStateTime(Timestamp.newBuilder().build())
940             .setError(Status.newBuilder().build())
941             .setCreateTime(Timestamp.newBuilder().build())
942             .setFrameEndTime(Timestamp.newBuilder().build())
943             .setVmCount(261463431)
944             .addAllVms(new ArrayList<VmUtilizationInfo>())
945             .build();
946     Operation resultOperation =
947         Operation.newBuilder()
948             .setName("createUtilizationReportTest")
949             .setDone(true)
950             .setResponse(Any.pack(expectedResponse))
951             .build();
952     mockService.addResponse(resultOperation);
953 
954     String parent = "projects/project-8435/locations/location-8435/sources/source-8435";
955     UtilizationReport utilizationReport = UtilizationReport.newBuilder().build();
956     String utilizationReportId = "utilizationReportId1215771057";
957 
958     UtilizationReport actualResponse =
959         client.createUtilizationReportAsync(parent, utilizationReport, utilizationReportId).get();
960     Assert.assertEquals(expectedResponse, actualResponse);
961 
962     List<String> actualRequests = mockService.getRequestPaths();
963     Assert.assertEquals(1, actualRequests.size());
964 
965     String apiClientHeaderKey =
966         mockService
967             .getRequestHeaders()
968             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
969             .iterator()
970             .next();
971     Assert.assertTrue(
972         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
973             .matcher(apiClientHeaderKey)
974             .matches());
975   }
976 
977   @Test
createUtilizationReportExceptionTest2()978   public void createUtilizationReportExceptionTest2() throws Exception {
979     ApiException exception =
980         ApiExceptionFactory.createException(
981             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
982     mockService.addException(exception);
983 
984     try {
985       String parent = "projects/project-8435/locations/location-8435/sources/source-8435";
986       UtilizationReport utilizationReport = UtilizationReport.newBuilder().build();
987       String utilizationReportId = "utilizationReportId1215771057";
988       client.createUtilizationReportAsync(parent, utilizationReport, utilizationReportId).get();
989       Assert.fail("No exception raised");
990     } catch (ExecutionException e) {
991     }
992   }
993 
994   @Test
deleteUtilizationReportTest()995   public void deleteUtilizationReportTest() throws Exception {
996     Empty expectedResponse = Empty.newBuilder().build();
997     Operation resultOperation =
998         Operation.newBuilder()
999             .setName("deleteUtilizationReportTest")
1000             .setDone(true)
1001             .setResponse(Any.pack(expectedResponse))
1002             .build();
1003     mockService.addResponse(resultOperation);
1004 
1005     UtilizationReportName name =
1006         UtilizationReportName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[UTILIZATION_REPORT]");
1007 
1008     client.deleteUtilizationReportAsync(name).get();
1009 
1010     List<String> actualRequests = mockService.getRequestPaths();
1011     Assert.assertEquals(1, actualRequests.size());
1012 
1013     String apiClientHeaderKey =
1014         mockService
1015             .getRequestHeaders()
1016             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1017             .iterator()
1018             .next();
1019     Assert.assertTrue(
1020         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1021             .matcher(apiClientHeaderKey)
1022             .matches());
1023   }
1024 
1025   @Test
deleteUtilizationReportExceptionTest()1026   public void deleteUtilizationReportExceptionTest() throws Exception {
1027     ApiException exception =
1028         ApiExceptionFactory.createException(
1029             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1030     mockService.addException(exception);
1031 
1032     try {
1033       UtilizationReportName name =
1034           UtilizationReportName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[UTILIZATION_REPORT]");
1035       client.deleteUtilizationReportAsync(name).get();
1036       Assert.fail("No exception raised");
1037     } catch (ExecutionException e) {
1038     }
1039   }
1040 
1041   @Test
deleteUtilizationReportTest2()1042   public void deleteUtilizationReportTest2() throws Exception {
1043     Empty expectedResponse = Empty.newBuilder().build();
1044     Operation resultOperation =
1045         Operation.newBuilder()
1046             .setName("deleteUtilizationReportTest")
1047             .setDone(true)
1048             .setResponse(Any.pack(expectedResponse))
1049             .build();
1050     mockService.addResponse(resultOperation);
1051 
1052     String name =
1053         "projects/project-8681/locations/location-8681/sources/source-8681/utilizationReports/utilizationReport-8681";
1054 
1055     client.deleteUtilizationReportAsync(name).get();
1056 
1057     List<String> actualRequests = mockService.getRequestPaths();
1058     Assert.assertEquals(1, actualRequests.size());
1059 
1060     String apiClientHeaderKey =
1061         mockService
1062             .getRequestHeaders()
1063             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1064             .iterator()
1065             .next();
1066     Assert.assertTrue(
1067         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1068             .matcher(apiClientHeaderKey)
1069             .matches());
1070   }
1071 
1072   @Test
deleteUtilizationReportExceptionTest2()1073   public void deleteUtilizationReportExceptionTest2() throws Exception {
1074     ApiException exception =
1075         ApiExceptionFactory.createException(
1076             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1077     mockService.addException(exception);
1078 
1079     try {
1080       String name =
1081           "projects/project-8681/locations/location-8681/sources/source-8681/utilizationReports/utilizationReport-8681";
1082       client.deleteUtilizationReportAsync(name).get();
1083       Assert.fail("No exception raised");
1084     } catch (ExecutionException e) {
1085     }
1086   }
1087 
1088   @Test
listDatacenterConnectorsTest()1089   public void listDatacenterConnectorsTest() throws Exception {
1090     DatacenterConnector responsesElement = DatacenterConnector.newBuilder().build();
1091     ListDatacenterConnectorsResponse expectedResponse =
1092         ListDatacenterConnectorsResponse.newBuilder()
1093             .setNextPageToken("")
1094             .addAllDatacenterConnectors(Arrays.asList(responsesElement))
1095             .build();
1096     mockService.addResponse(expectedResponse);
1097 
1098     SourceName parent = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
1099 
1100     ListDatacenterConnectorsPagedResponse pagedListResponse =
1101         client.listDatacenterConnectors(parent);
1102 
1103     List<DatacenterConnector> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1104 
1105     Assert.assertEquals(1, resources.size());
1106     Assert.assertEquals(expectedResponse.getDatacenterConnectorsList().get(0), resources.get(0));
1107 
1108     List<String> actualRequests = mockService.getRequestPaths();
1109     Assert.assertEquals(1, actualRequests.size());
1110 
1111     String apiClientHeaderKey =
1112         mockService
1113             .getRequestHeaders()
1114             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1115             .iterator()
1116             .next();
1117     Assert.assertTrue(
1118         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1119             .matcher(apiClientHeaderKey)
1120             .matches());
1121   }
1122 
1123   @Test
listDatacenterConnectorsExceptionTest()1124   public void listDatacenterConnectorsExceptionTest() throws Exception {
1125     ApiException exception =
1126         ApiExceptionFactory.createException(
1127             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1128     mockService.addException(exception);
1129 
1130     try {
1131       SourceName parent = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
1132       client.listDatacenterConnectors(parent);
1133       Assert.fail("No exception raised");
1134     } catch (InvalidArgumentException e) {
1135       // Expected exception.
1136     }
1137   }
1138 
1139   @Test
listDatacenterConnectorsTest2()1140   public void listDatacenterConnectorsTest2() throws Exception {
1141     DatacenterConnector responsesElement = DatacenterConnector.newBuilder().build();
1142     ListDatacenterConnectorsResponse expectedResponse =
1143         ListDatacenterConnectorsResponse.newBuilder()
1144             .setNextPageToken("")
1145             .addAllDatacenterConnectors(Arrays.asList(responsesElement))
1146             .build();
1147     mockService.addResponse(expectedResponse);
1148 
1149     String parent = "projects/project-8435/locations/location-8435/sources/source-8435";
1150 
1151     ListDatacenterConnectorsPagedResponse pagedListResponse =
1152         client.listDatacenterConnectors(parent);
1153 
1154     List<DatacenterConnector> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1155 
1156     Assert.assertEquals(1, resources.size());
1157     Assert.assertEquals(expectedResponse.getDatacenterConnectorsList().get(0), resources.get(0));
1158 
1159     List<String> actualRequests = mockService.getRequestPaths();
1160     Assert.assertEquals(1, actualRequests.size());
1161 
1162     String apiClientHeaderKey =
1163         mockService
1164             .getRequestHeaders()
1165             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1166             .iterator()
1167             .next();
1168     Assert.assertTrue(
1169         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1170             .matcher(apiClientHeaderKey)
1171             .matches());
1172   }
1173 
1174   @Test
listDatacenterConnectorsExceptionTest2()1175   public void listDatacenterConnectorsExceptionTest2() throws Exception {
1176     ApiException exception =
1177         ApiExceptionFactory.createException(
1178             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1179     mockService.addException(exception);
1180 
1181     try {
1182       String parent = "projects/project-8435/locations/location-8435/sources/source-8435";
1183       client.listDatacenterConnectors(parent);
1184       Assert.fail("No exception raised");
1185     } catch (InvalidArgumentException e) {
1186       // Expected exception.
1187     }
1188   }
1189 
1190   @Test
getDatacenterConnectorTest()1191   public void getDatacenterConnectorTest() throws Exception {
1192     DatacenterConnector expectedResponse =
1193         DatacenterConnector.newBuilder()
1194             .setCreateTime(Timestamp.newBuilder().build())
1195             .setUpdateTime(Timestamp.newBuilder().build())
1196             .setName(
1197                 DatacenterConnectorName.of(
1198                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[DATACENTER_CONNECTOR]")
1199                     .toString())
1200             .setRegistrationId("registrationId-567498828")
1201             .setServiceAccount("serviceAccount1079137720")
1202             .setVersion("version351608024")
1203             .setBucket("bucket-1378203158")
1204             .setStateTime(Timestamp.newBuilder().build())
1205             .setError(Status.newBuilder().build())
1206             .setApplianceInfrastructureVersion("applianceInfrastructureVersion560843272")
1207             .setApplianceSoftwareVersion("applianceSoftwareVersion-1982719036")
1208             .setAvailableVersions(AvailableUpdates.newBuilder().build())
1209             .setUpgradeStatus(UpgradeStatus.newBuilder().build())
1210             .build();
1211     mockService.addResponse(expectedResponse);
1212 
1213     DatacenterConnectorName name =
1214         DatacenterConnectorName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[DATACENTER_CONNECTOR]");
1215 
1216     DatacenterConnector actualResponse = client.getDatacenterConnector(name);
1217     Assert.assertEquals(expectedResponse, actualResponse);
1218 
1219     List<String> actualRequests = mockService.getRequestPaths();
1220     Assert.assertEquals(1, actualRequests.size());
1221 
1222     String apiClientHeaderKey =
1223         mockService
1224             .getRequestHeaders()
1225             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1226             .iterator()
1227             .next();
1228     Assert.assertTrue(
1229         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1230             .matcher(apiClientHeaderKey)
1231             .matches());
1232   }
1233 
1234   @Test
getDatacenterConnectorExceptionTest()1235   public void getDatacenterConnectorExceptionTest() throws Exception {
1236     ApiException exception =
1237         ApiExceptionFactory.createException(
1238             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1239     mockService.addException(exception);
1240 
1241     try {
1242       DatacenterConnectorName name =
1243           DatacenterConnectorName.of(
1244               "[PROJECT]", "[LOCATION]", "[SOURCE]", "[DATACENTER_CONNECTOR]");
1245       client.getDatacenterConnector(name);
1246       Assert.fail("No exception raised");
1247     } catch (InvalidArgumentException e) {
1248       // Expected exception.
1249     }
1250   }
1251 
1252   @Test
getDatacenterConnectorTest2()1253   public void getDatacenterConnectorTest2() throws Exception {
1254     DatacenterConnector expectedResponse =
1255         DatacenterConnector.newBuilder()
1256             .setCreateTime(Timestamp.newBuilder().build())
1257             .setUpdateTime(Timestamp.newBuilder().build())
1258             .setName(
1259                 DatacenterConnectorName.of(
1260                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[DATACENTER_CONNECTOR]")
1261                     .toString())
1262             .setRegistrationId("registrationId-567498828")
1263             .setServiceAccount("serviceAccount1079137720")
1264             .setVersion("version351608024")
1265             .setBucket("bucket-1378203158")
1266             .setStateTime(Timestamp.newBuilder().build())
1267             .setError(Status.newBuilder().build())
1268             .setApplianceInfrastructureVersion("applianceInfrastructureVersion560843272")
1269             .setApplianceSoftwareVersion("applianceSoftwareVersion-1982719036")
1270             .setAvailableVersions(AvailableUpdates.newBuilder().build())
1271             .setUpgradeStatus(UpgradeStatus.newBuilder().build())
1272             .build();
1273     mockService.addResponse(expectedResponse);
1274 
1275     String name =
1276         "projects/project-9617/locations/location-9617/sources/source-9617/datacenterConnectors/datacenterConnector-9617";
1277 
1278     DatacenterConnector actualResponse = client.getDatacenterConnector(name);
1279     Assert.assertEquals(expectedResponse, actualResponse);
1280 
1281     List<String> actualRequests = mockService.getRequestPaths();
1282     Assert.assertEquals(1, actualRequests.size());
1283 
1284     String apiClientHeaderKey =
1285         mockService
1286             .getRequestHeaders()
1287             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1288             .iterator()
1289             .next();
1290     Assert.assertTrue(
1291         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1292             .matcher(apiClientHeaderKey)
1293             .matches());
1294   }
1295 
1296   @Test
getDatacenterConnectorExceptionTest2()1297   public void getDatacenterConnectorExceptionTest2() throws Exception {
1298     ApiException exception =
1299         ApiExceptionFactory.createException(
1300             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1301     mockService.addException(exception);
1302 
1303     try {
1304       String name =
1305           "projects/project-9617/locations/location-9617/sources/source-9617/datacenterConnectors/datacenterConnector-9617";
1306       client.getDatacenterConnector(name);
1307       Assert.fail("No exception raised");
1308     } catch (InvalidArgumentException e) {
1309       // Expected exception.
1310     }
1311   }
1312 
1313   @Test
createDatacenterConnectorTest()1314   public void createDatacenterConnectorTest() throws Exception {
1315     DatacenterConnector expectedResponse =
1316         DatacenterConnector.newBuilder()
1317             .setCreateTime(Timestamp.newBuilder().build())
1318             .setUpdateTime(Timestamp.newBuilder().build())
1319             .setName(
1320                 DatacenterConnectorName.of(
1321                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[DATACENTER_CONNECTOR]")
1322                     .toString())
1323             .setRegistrationId("registrationId-567498828")
1324             .setServiceAccount("serviceAccount1079137720")
1325             .setVersion("version351608024")
1326             .setBucket("bucket-1378203158")
1327             .setStateTime(Timestamp.newBuilder().build())
1328             .setError(Status.newBuilder().build())
1329             .setApplianceInfrastructureVersion("applianceInfrastructureVersion560843272")
1330             .setApplianceSoftwareVersion("applianceSoftwareVersion-1982719036")
1331             .setAvailableVersions(AvailableUpdates.newBuilder().build())
1332             .setUpgradeStatus(UpgradeStatus.newBuilder().build())
1333             .build();
1334     Operation resultOperation =
1335         Operation.newBuilder()
1336             .setName("createDatacenterConnectorTest")
1337             .setDone(true)
1338             .setResponse(Any.pack(expectedResponse))
1339             .build();
1340     mockService.addResponse(resultOperation);
1341 
1342     SourceName parent = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
1343     DatacenterConnector datacenterConnector = DatacenterConnector.newBuilder().build();
1344     String datacenterConnectorId = "datacenterConnectorId-761889719";
1345 
1346     DatacenterConnector actualResponse =
1347         client
1348             .createDatacenterConnectorAsync(parent, datacenterConnector, datacenterConnectorId)
1349             .get();
1350     Assert.assertEquals(expectedResponse, actualResponse);
1351 
1352     List<String> actualRequests = mockService.getRequestPaths();
1353     Assert.assertEquals(1, actualRequests.size());
1354 
1355     String apiClientHeaderKey =
1356         mockService
1357             .getRequestHeaders()
1358             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1359             .iterator()
1360             .next();
1361     Assert.assertTrue(
1362         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1363             .matcher(apiClientHeaderKey)
1364             .matches());
1365   }
1366 
1367   @Test
createDatacenterConnectorExceptionTest()1368   public void createDatacenterConnectorExceptionTest() throws Exception {
1369     ApiException exception =
1370         ApiExceptionFactory.createException(
1371             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1372     mockService.addException(exception);
1373 
1374     try {
1375       SourceName parent = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
1376       DatacenterConnector datacenterConnector = DatacenterConnector.newBuilder().build();
1377       String datacenterConnectorId = "datacenterConnectorId-761889719";
1378       client
1379           .createDatacenterConnectorAsync(parent, datacenterConnector, datacenterConnectorId)
1380           .get();
1381       Assert.fail("No exception raised");
1382     } catch (ExecutionException e) {
1383     }
1384   }
1385 
1386   @Test
createDatacenterConnectorTest2()1387   public void createDatacenterConnectorTest2() throws Exception {
1388     DatacenterConnector expectedResponse =
1389         DatacenterConnector.newBuilder()
1390             .setCreateTime(Timestamp.newBuilder().build())
1391             .setUpdateTime(Timestamp.newBuilder().build())
1392             .setName(
1393                 DatacenterConnectorName.of(
1394                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[DATACENTER_CONNECTOR]")
1395                     .toString())
1396             .setRegistrationId("registrationId-567498828")
1397             .setServiceAccount("serviceAccount1079137720")
1398             .setVersion("version351608024")
1399             .setBucket("bucket-1378203158")
1400             .setStateTime(Timestamp.newBuilder().build())
1401             .setError(Status.newBuilder().build())
1402             .setApplianceInfrastructureVersion("applianceInfrastructureVersion560843272")
1403             .setApplianceSoftwareVersion("applianceSoftwareVersion-1982719036")
1404             .setAvailableVersions(AvailableUpdates.newBuilder().build())
1405             .setUpgradeStatus(UpgradeStatus.newBuilder().build())
1406             .build();
1407     Operation resultOperation =
1408         Operation.newBuilder()
1409             .setName("createDatacenterConnectorTest")
1410             .setDone(true)
1411             .setResponse(Any.pack(expectedResponse))
1412             .build();
1413     mockService.addResponse(resultOperation);
1414 
1415     String parent = "projects/project-8435/locations/location-8435/sources/source-8435";
1416     DatacenterConnector datacenterConnector = DatacenterConnector.newBuilder().build();
1417     String datacenterConnectorId = "datacenterConnectorId-761889719";
1418 
1419     DatacenterConnector actualResponse =
1420         client
1421             .createDatacenterConnectorAsync(parent, datacenterConnector, datacenterConnectorId)
1422             .get();
1423     Assert.assertEquals(expectedResponse, actualResponse);
1424 
1425     List<String> actualRequests = mockService.getRequestPaths();
1426     Assert.assertEquals(1, actualRequests.size());
1427 
1428     String apiClientHeaderKey =
1429         mockService
1430             .getRequestHeaders()
1431             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1432             .iterator()
1433             .next();
1434     Assert.assertTrue(
1435         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1436             .matcher(apiClientHeaderKey)
1437             .matches());
1438   }
1439 
1440   @Test
createDatacenterConnectorExceptionTest2()1441   public void createDatacenterConnectorExceptionTest2() throws Exception {
1442     ApiException exception =
1443         ApiExceptionFactory.createException(
1444             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1445     mockService.addException(exception);
1446 
1447     try {
1448       String parent = "projects/project-8435/locations/location-8435/sources/source-8435";
1449       DatacenterConnector datacenterConnector = DatacenterConnector.newBuilder().build();
1450       String datacenterConnectorId = "datacenterConnectorId-761889719";
1451       client
1452           .createDatacenterConnectorAsync(parent, datacenterConnector, datacenterConnectorId)
1453           .get();
1454       Assert.fail("No exception raised");
1455     } catch (ExecutionException e) {
1456     }
1457   }
1458 
1459   @Test
deleteDatacenterConnectorTest()1460   public void deleteDatacenterConnectorTest() throws Exception {
1461     Empty expectedResponse = Empty.newBuilder().build();
1462     Operation resultOperation =
1463         Operation.newBuilder()
1464             .setName("deleteDatacenterConnectorTest")
1465             .setDone(true)
1466             .setResponse(Any.pack(expectedResponse))
1467             .build();
1468     mockService.addResponse(resultOperation);
1469 
1470     DatacenterConnectorName name =
1471         DatacenterConnectorName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[DATACENTER_CONNECTOR]");
1472 
1473     client.deleteDatacenterConnectorAsync(name).get();
1474 
1475     List<String> actualRequests = mockService.getRequestPaths();
1476     Assert.assertEquals(1, actualRequests.size());
1477 
1478     String apiClientHeaderKey =
1479         mockService
1480             .getRequestHeaders()
1481             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1482             .iterator()
1483             .next();
1484     Assert.assertTrue(
1485         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1486             .matcher(apiClientHeaderKey)
1487             .matches());
1488   }
1489 
1490   @Test
deleteDatacenterConnectorExceptionTest()1491   public void deleteDatacenterConnectorExceptionTest() throws Exception {
1492     ApiException exception =
1493         ApiExceptionFactory.createException(
1494             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1495     mockService.addException(exception);
1496 
1497     try {
1498       DatacenterConnectorName name =
1499           DatacenterConnectorName.of(
1500               "[PROJECT]", "[LOCATION]", "[SOURCE]", "[DATACENTER_CONNECTOR]");
1501       client.deleteDatacenterConnectorAsync(name).get();
1502       Assert.fail("No exception raised");
1503     } catch (ExecutionException e) {
1504     }
1505   }
1506 
1507   @Test
deleteDatacenterConnectorTest2()1508   public void deleteDatacenterConnectorTest2() throws Exception {
1509     Empty expectedResponse = Empty.newBuilder().build();
1510     Operation resultOperation =
1511         Operation.newBuilder()
1512             .setName("deleteDatacenterConnectorTest")
1513             .setDone(true)
1514             .setResponse(Any.pack(expectedResponse))
1515             .build();
1516     mockService.addResponse(resultOperation);
1517 
1518     String name =
1519         "projects/project-9617/locations/location-9617/sources/source-9617/datacenterConnectors/datacenterConnector-9617";
1520 
1521     client.deleteDatacenterConnectorAsync(name).get();
1522 
1523     List<String> actualRequests = mockService.getRequestPaths();
1524     Assert.assertEquals(1, actualRequests.size());
1525 
1526     String apiClientHeaderKey =
1527         mockService
1528             .getRequestHeaders()
1529             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1530             .iterator()
1531             .next();
1532     Assert.assertTrue(
1533         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1534             .matcher(apiClientHeaderKey)
1535             .matches());
1536   }
1537 
1538   @Test
deleteDatacenterConnectorExceptionTest2()1539   public void deleteDatacenterConnectorExceptionTest2() throws Exception {
1540     ApiException exception =
1541         ApiExceptionFactory.createException(
1542             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1543     mockService.addException(exception);
1544 
1545     try {
1546       String name =
1547           "projects/project-9617/locations/location-9617/sources/source-9617/datacenterConnectors/datacenterConnector-9617";
1548       client.deleteDatacenterConnectorAsync(name).get();
1549       Assert.fail("No exception raised");
1550     } catch (ExecutionException e) {
1551     }
1552   }
1553 
1554   @Test
upgradeApplianceTest()1555   public void upgradeApplianceTest() throws Exception {
1556     UpgradeApplianceResponse expectedResponse = UpgradeApplianceResponse.newBuilder().build();
1557     Operation resultOperation =
1558         Operation.newBuilder()
1559             .setName("upgradeApplianceTest")
1560             .setDone(true)
1561             .setResponse(Any.pack(expectedResponse))
1562             .build();
1563     mockService.addResponse(resultOperation);
1564 
1565     UpgradeApplianceRequest request =
1566         UpgradeApplianceRequest.newBuilder()
1567             .setDatacenterConnector(
1568                 DatacenterConnectorName.of(
1569                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[DATACENTER_CONNECTOR]")
1570                     .toString())
1571             .setRequestId("requestId693933066")
1572             .build();
1573 
1574     UpgradeApplianceResponse actualResponse = client.upgradeApplianceAsync(request).get();
1575     Assert.assertEquals(expectedResponse, actualResponse);
1576 
1577     List<String> actualRequests = mockService.getRequestPaths();
1578     Assert.assertEquals(1, actualRequests.size());
1579 
1580     String apiClientHeaderKey =
1581         mockService
1582             .getRequestHeaders()
1583             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1584             .iterator()
1585             .next();
1586     Assert.assertTrue(
1587         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1588             .matcher(apiClientHeaderKey)
1589             .matches());
1590   }
1591 
1592   @Test
upgradeApplianceExceptionTest()1593   public void upgradeApplianceExceptionTest() throws Exception {
1594     ApiException exception =
1595         ApiExceptionFactory.createException(
1596             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1597     mockService.addException(exception);
1598 
1599     try {
1600       UpgradeApplianceRequest request =
1601           UpgradeApplianceRequest.newBuilder()
1602               .setDatacenterConnector(
1603                   DatacenterConnectorName.of(
1604                           "[PROJECT]", "[LOCATION]", "[SOURCE]", "[DATACENTER_CONNECTOR]")
1605                       .toString())
1606               .setRequestId("requestId693933066")
1607               .build();
1608       client.upgradeApplianceAsync(request).get();
1609       Assert.fail("No exception raised");
1610     } catch (ExecutionException e) {
1611     }
1612   }
1613 
1614   @Test
createMigratingVmTest()1615   public void createMigratingVmTest() throws Exception {
1616     MigratingVm expectedResponse =
1617         MigratingVm.newBuilder()
1618             .setName(
1619                 MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]")
1620                     .toString())
1621             .setSourceVmId("sourceVmId-1111384851")
1622             .setDisplayName("displayName1714148973")
1623             .setDescription("description-1724546052")
1624             .setPolicy(SchedulePolicy.newBuilder().build())
1625             .setCreateTime(Timestamp.newBuilder().build())
1626             .setUpdateTime(Timestamp.newBuilder().build())
1627             .setLastSync(ReplicationSync.newBuilder().build())
1628             .setStateTime(Timestamp.newBuilder().build())
1629             .setCurrentSyncInfo(ReplicationCycle.newBuilder().build())
1630             .setGroup(LocationName.of("[PROJECT]", "[LOCATION]").toString())
1631             .putAllLabels(new HashMap<String, String>())
1632             .addAllRecentCloneJobs(new ArrayList<CloneJob>())
1633             .setError(Status.newBuilder().build())
1634             .addAllRecentCutoverJobs(new ArrayList<CutoverJob>())
1635             .build();
1636     Operation resultOperation =
1637         Operation.newBuilder()
1638             .setName("createMigratingVmTest")
1639             .setDone(true)
1640             .setResponse(Any.pack(expectedResponse))
1641             .build();
1642     mockService.addResponse(resultOperation);
1643 
1644     SourceName parent = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
1645     MigratingVm migratingVm = MigratingVm.newBuilder().build();
1646     String migratingVmId = "migratingVmId441244154";
1647 
1648     MigratingVm actualResponse =
1649         client.createMigratingVmAsync(parent, migratingVm, migratingVmId).get();
1650     Assert.assertEquals(expectedResponse, actualResponse);
1651 
1652     List<String> actualRequests = mockService.getRequestPaths();
1653     Assert.assertEquals(1, actualRequests.size());
1654 
1655     String apiClientHeaderKey =
1656         mockService
1657             .getRequestHeaders()
1658             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1659             .iterator()
1660             .next();
1661     Assert.assertTrue(
1662         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1663             .matcher(apiClientHeaderKey)
1664             .matches());
1665   }
1666 
1667   @Test
createMigratingVmExceptionTest()1668   public void createMigratingVmExceptionTest() throws Exception {
1669     ApiException exception =
1670         ApiExceptionFactory.createException(
1671             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1672     mockService.addException(exception);
1673 
1674     try {
1675       SourceName parent = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
1676       MigratingVm migratingVm = MigratingVm.newBuilder().build();
1677       String migratingVmId = "migratingVmId441244154";
1678       client.createMigratingVmAsync(parent, migratingVm, migratingVmId).get();
1679       Assert.fail("No exception raised");
1680     } catch (ExecutionException e) {
1681     }
1682   }
1683 
1684   @Test
createMigratingVmTest2()1685   public void createMigratingVmTest2() throws Exception {
1686     MigratingVm expectedResponse =
1687         MigratingVm.newBuilder()
1688             .setName(
1689                 MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]")
1690                     .toString())
1691             .setSourceVmId("sourceVmId-1111384851")
1692             .setDisplayName("displayName1714148973")
1693             .setDescription("description-1724546052")
1694             .setPolicy(SchedulePolicy.newBuilder().build())
1695             .setCreateTime(Timestamp.newBuilder().build())
1696             .setUpdateTime(Timestamp.newBuilder().build())
1697             .setLastSync(ReplicationSync.newBuilder().build())
1698             .setStateTime(Timestamp.newBuilder().build())
1699             .setCurrentSyncInfo(ReplicationCycle.newBuilder().build())
1700             .setGroup(LocationName.of("[PROJECT]", "[LOCATION]").toString())
1701             .putAllLabels(new HashMap<String, String>())
1702             .addAllRecentCloneJobs(new ArrayList<CloneJob>())
1703             .setError(Status.newBuilder().build())
1704             .addAllRecentCutoverJobs(new ArrayList<CutoverJob>())
1705             .build();
1706     Operation resultOperation =
1707         Operation.newBuilder()
1708             .setName("createMigratingVmTest")
1709             .setDone(true)
1710             .setResponse(Any.pack(expectedResponse))
1711             .build();
1712     mockService.addResponse(resultOperation);
1713 
1714     String parent = "projects/project-8435/locations/location-8435/sources/source-8435";
1715     MigratingVm migratingVm = MigratingVm.newBuilder().build();
1716     String migratingVmId = "migratingVmId441244154";
1717 
1718     MigratingVm actualResponse =
1719         client.createMigratingVmAsync(parent, migratingVm, migratingVmId).get();
1720     Assert.assertEquals(expectedResponse, actualResponse);
1721 
1722     List<String> actualRequests = mockService.getRequestPaths();
1723     Assert.assertEquals(1, actualRequests.size());
1724 
1725     String apiClientHeaderKey =
1726         mockService
1727             .getRequestHeaders()
1728             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1729             .iterator()
1730             .next();
1731     Assert.assertTrue(
1732         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1733             .matcher(apiClientHeaderKey)
1734             .matches());
1735   }
1736 
1737   @Test
createMigratingVmExceptionTest2()1738   public void createMigratingVmExceptionTest2() throws Exception {
1739     ApiException exception =
1740         ApiExceptionFactory.createException(
1741             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1742     mockService.addException(exception);
1743 
1744     try {
1745       String parent = "projects/project-8435/locations/location-8435/sources/source-8435";
1746       MigratingVm migratingVm = MigratingVm.newBuilder().build();
1747       String migratingVmId = "migratingVmId441244154";
1748       client.createMigratingVmAsync(parent, migratingVm, migratingVmId).get();
1749       Assert.fail("No exception raised");
1750     } catch (ExecutionException e) {
1751     }
1752   }
1753 
1754   @Test
listMigratingVmsTest()1755   public void listMigratingVmsTest() throws Exception {
1756     MigratingVm responsesElement = MigratingVm.newBuilder().build();
1757     ListMigratingVmsResponse expectedResponse =
1758         ListMigratingVmsResponse.newBuilder()
1759             .setNextPageToken("")
1760             .addAllMigratingVms(Arrays.asList(responsesElement))
1761             .build();
1762     mockService.addResponse(expectedResponse);
1763 
1764     SourceName parent = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
1765 
1766     ListMigratingVmsPagedResponse pagedListResponse = client.listMigratingVms(parent);
1767 
1768     List<MigratingVm> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1769 
1770     Assert.assertEquals(1, resources.size());
1771     Assert.assertEquals(expectedResponse.getMigratingVmsList().get(0), resources.get(0));
1772 
1773     List<String> actualRequests = mockService.getRequestPaths();
1774     Assert.assertEquals(1, actualRequests.size());
1775 
1776     String apiClientHeaderKey =
1777         mockService
1778             .getRequestHeaders()
1779             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1780             .iterator()
1781             .next();
1782     Assert.assertTrue(
1783         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1784             .matcher(apiClientHeaderKey)
1785             .matches());
1786   }
1787 
1788   @Test
listMigratingVmsExceptionTest()1789   public void listMigratingVmsExceptionTest() throws Exception {
1790     ApiException exception =
1791         ApiExceptionFactory.createException(
1792             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1793     mockService.addException(exception);
1794 
1795     try {
1796       SourceName parent = SourceName.of("[PROJECT]", "[LOCATION]", "[SOURCE]");
1797       client.listMigratingVms(parent);
1798       Assert.fail("No exception raised");
1799     } catch (InvalidArgumentException e) {
1800       // Expected exception.
1801     }
1802   }
1803 
1804   @Test
listMigratingVmsTest2()1805   public void listMigratingVmsTest2() throws Exception {
1806     MigratingVm responsesElement = MigratingVm.newBuilder().build();
1807     ListMigratingVmsResponse expectedResponse =
1808         ListMigratingVmsResponse.newBuilder()
1809             .setNextPageToken("")
1810             .addAllMigratingVms(Arrays.asList(responsesElement))
1811             .build();
1812     mockService.addResponse(expectedResponse);
1813 
1814     String parent = "projects/project-8435/locations/location-8435/sources/source-8435";
1815 
1816     ListMigratingVmsPagedResponse pagedListResponse = client.listMigratingVms(parent);
1817 
1818     List<MigratingVm> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1819 
1820     Assert.assertEquals(1, resources.size());
1821     Assert.assertEquals(expectedResponse.getMigratingVmsList().get(0), resources.get(0));
1822 
1823     List<String> actualRequests = mockService.getRequestPaths();
1824     Assert.assertEquals(1, actualRequests.size());
1825 
1826     String apiClientHeaderKey =
1827         mockService
1828             .getRequestHeaders()
1829             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1830             .iterator()
1831             .next();
1832     Assert.assertTrue(
1833         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1834             .matcher(apiClientHeaderKey)
1835             .matches());
1836   }
1837 
1838   @Test
listMigratingVmsExceptionTest2()1839   public void listMigratingVmsExceptionTest2() throws Exception {
1840     ApiException exception =
1841         ApiExceptionFactory.createException(
1842             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1843     mockService.addException(exception);
1844 
1845     try {
1846       String parent = "projects/project-8435/locations/location-8435/sources/source-8435";
1847       client.listMigratingVms(parent);
1848       Assert.fail("No exception raised");
1849     } catch (InvalidArgumentException e) {
1850       // Expected exception.
1851     }
1852   }
1853 
1854   @Test
getMigratingVmTest()1855   public void getMigratingVmTest() throws Exception {
1856     MigratingVm expectedResponse =
1857         MigratingVm.newBuilder()
1858             .setName(
1859                 MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]")
1860                     .toString())
1861             .setSourceVmId("sourceVmId-1111384851")
1862             .setDisplayName("displayName1714148973")
1863             .setDescription("description-1724546052")
1864             .setPolicy(SchedulePolicy.newBuilder().build())
1865             .setCreateTime(Timestamp.newBuilder().build())
1866             .setUpdateTime(Timestamp.newBuilder().build())
1867             .setLastSync(ReplicationSync.newBuilder().build())
1868             .setStateTime(Timestamp.newBuilder().build())
1869             .setCurrentSyncInfo(ReplicationCycle.newBuilder().build())
1870             .setGroup(LocationName.of("[PROJECT]", "[LOCATION]").toString())
1871             .putAllLabels(new HashMap<String, String>())
1872             .addAllRecentCloneJobs(new ArrayList<CloneJob>())
1873             .setError(Status.newBuilder().build())
1874             .addAllRecentCutoverJobs(new ArrayList<CutoverJob>())
1875             .build();
1876     mockService.addResponse(expectedResponse);
1877 
1878     MigratingVmName name =
1879         MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
1880 
1881     MigratingVm actualResponse = client.getMigratingVm(name);
1882     Assert.assertEquals(expectedResponse, actualResponse);
1883 
1884     List<String> actualRequests = mockService.getRequestPaths();
1885     Assert.assertEquals(1, actualRequests.size());
1886 
1887     String apiClientHeaderKey =
1888         mockService
1889             .getRequestHeaders()
1890             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1891             .iterator()
1892             .next();
1893     Assert.assertTrue(
1894         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1895             .matcher(apiClientHeaderKey)
1896             .matches());
1897   }
1898 
1899   @Test
getMigratingVmExceptionTest()1900   public void getMigratingVmExceptionTest() throws Exception {
1901     ApiException exception =
1902         ApiExceptionFactory.createException(
1903             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1904     mockService.addException(exception);
1905 
1906     try {
1907       MigratingVmName name =
1908           MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
1909       client.getMigratingVm(name);
1910       Assert.fail("No exception raised");
1911     } catch (InvalidArgumentException e) {
1912       // Expected exception.
1913     }
1914   }
1915 
1916   @Test
getMigratingVmTest2()1917   public void getMigratingVmTest2() throws Exception {
1918     MigratingVm expectedResponse =
1919         MigratingVm.newBuilder()
1920             .setName(
1921                 MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]")
1922                     .toString())
1923             .setSourceVmId("sourceVmId-1111384851")
1924             .setDisplayName("displayName1714148973")
1925             .setDescription("description-1724546052")
1926             .setPolicy(SchedulePolicy.newBuilder().build())
1927             .setCreateTime(Timestamp.newBuilder().build())
1928             .setUpdateTime(Timestamp.newBuilder().build())
1929             .setLastSync(ReplicationSync.newBuilder().build())
1930             .setStateTime(Timestamp.newBuilder().build())
1931             .setCurrentSyncInfo(ReplicationCycle.newBuilder().build())
1932             .setGroup(LocationName.of("[PROJECT]", "[LOCATION]").toString())
1933             .putAllLabels(new HashMap<String, String>())
1934             .addAllRecentCloneJobs(new ArrayList<CloneJob>())
1935             .setError(Status.newBuilder().build())
1936             .addAllRecentCutoverJobs(new ArrayList<CutoverJob>())
1937             .build();
1938     mockService.addResponse(expectedResponse);
1939 
1940     String name =
1941         "projects/project-7504/locations/location-7504/sources/source-7504/migratingVms/migratingVm-7504";
1942 
1943     MigratingVm actualResponse = client.getMigratingVm(name);
1944     Assert.assertEquals(expectedResponse, actualResponse);
1945 
1946     List<String> actualRequests = mockService.getRequestPaths();
1947     Assert.assertEquals(1, actualRequests.size());
1948 
1949     String apiClientHeaderKey =
1950         mockService
1951             .getRequestHeaders()
1952             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
1953             .iterator()
1954             .next();
1955     Assert.assertTrue(
1956         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
1957             .matcher(apiClientHeaderKey)
1958             .matches());
1959   }
1960 
1961   @Test
getMigratingVmExceptionTest2()1962   public void getMigratingVmExceptionTest2() throws Exception {
1963     ApiException exception =
1964         ApiExceptionFactory.createException(
1965             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
1966     mockService.addException(exception);
1967 
1968     try {
1969       String name =
1970           "projects/project-7504/locations/location-7504/sources/source-7504/migratingVms/migratingVm-7504";
1971       client.getMigratingVm(name);
1972       Assert.fail("No exception raised");
1973     } catch (InvalidArgumentException e) {
1974       // Expected exception.
1975     }
1976   }
1977 
1978   @Test
updateMigratingVmTest()1979   public void updateMigratingVmTest() throws Exception {
1980     MigratingVm expectedResponse =
1981         MigratingVm.newBuilder()
1982             .setName(
1983                 MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]")
1984                     .toString())
1985             .setSourceVmId("sourceVmId-1111384851")
1986             .setDisplayName("displayName1714148973")
1987             .setDescription("description-1724546052")
1988             .setPolicy(SchedulePolicy.newBuilder().build())
1989             .setCreateTime(Timestamp.newBuilder().build())
1990             .setUpdateTime(Timestamp.newBuilder().build())
1991             .setLastSync(ReplicationSync.newBuilder().build())
1992             .setStateTime(Timestamp.newBuilder().build())
1993             .setCurrentSyncInfo(ReplicationCycle.newBuilder().build())
1994             .setGroup(LocationName.of("[PROJECT]", "[LOCATION]").toString())
1995             .putAllLabels(new HashMap<String, String>())
1996             .addAllRecentCloneJobs(new ArrayList<CloneJob>())
1997             .setError(Status.newBuilder().build())
1998             .addAllRecentCutoverJobs(new ArrayList<CutoverJob>())
1999             .build();
2000     Operation resultOperation =
2001         Operation.newBuilder()
2002             .setName("updateMigratingVmTest")
2003             .setDone(true)
2004             .setResponse(Any.pack(expectedResponse))
2005             .build();
2006     mockService.addResponse(resultOperation);
2007 
2008     MigratingVm migratingVm =
2009         MigratingVm.newBuilder()
2010             .setName(
2011                 MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]")
2012                     .toString())
2013             .setSourceVmId("sourceVmId-1111384851")
2014             .setDisplayName("displayName1714148973")
2015             .setDescription("description-1724546052")
2016             .setPolicy(SchedulePolicy.newBuilder().build())
2017             .setCreateTime(Timestamp.newBuilder().build())
2018             .setUpdateTime(Timestamp.newBuilder().build())
2019             .setLastSync(ReplicationSync.newBuilder().build())
2020             .setStateTime(Timestamp.newBuilder().build())
2021             .setCurrentSyncInfo(ReplicationCycle.newBuilder().build())
2022             .setGroup(LocationName.of("[PROJECT]", "[LOCATION]").toString())
2023             .putAllLabels(new HashMap<String, String>())
2024             .addAllRecentCloneJobs(new ArrayList<CloneJob>())
2025             .setError(Status.newBuilder().build())
2026             .addAllRecentCutoverJobs(new ArrayList<CutoverJob>())
2027             .build();
2028     FieldMask updateMask = FieldMask.newBuilder().build();
2029 
2030     MigratingVm actualResponse = client.updateMigratingVmAsync(migratingVm, updateMask).get();
2031     Assert.assertEquals(expectedResponse, actualResponse);
2032 
2033     List<String> actualRequests = mockService.getRequestPaths();
2034     Assert.assertEquals(1, actualRequests.size());
2035 
2036     String apiClientHeaderKey =
2037         mockService
2038             .getRequestHeaders()
2039             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2040             .iterator()
2041             .next();
2042     Assert.assertTrue(
2043         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2044             .matcher(apiClientHeaderKey)
2045             .matches());
2046   }
2047 
2048   @Test
updateMigratingVmExceptionTest()2049   public void updateMigratingVmExceptionTest() throws Exception {
2050     ApiException exception =
2051         ApiExceptionFactory.createException(
2052             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2053     mockService.addException(exception);
2054 
2055     try {
2056       MigratingVm migratingVm =
2057           MigratingVm.newBuilder()
2058               .setName(
2059                   MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]")
2060                       .toString())
2061               .setSourceVmId("sourceVmId-1111384851")
2062               .setDisplayName("displayName1714148973")
2063               .setDescription("description-1724546052")
2064               .setPolicy(SchedulePolicy.newBuilder().build())
2065               .setCreateTime(Timestamp.newBuilder().build())
2066               .setUpdateTime(Timestamp.newBuilder().build())
2067               .setLastSync(ReplicationSync.newBuilder().build())
2068               .setStateTime(Timestamp.newBuilder().build())
2069               .setCurrentSyncInfo(ReplicationCycle.newBuilder().build())
2070               .setGroup(LocationName.of("[PROJECT]", "[LOCATION]").toString())
2071               .putAllLabels(new HashMap<String, String>())
2072               .addAllRecentCloneJobs(new ArrayList<CloneJob>())
2073               .setError(Status.newBuilder().build())
2074               .addAllRecentCutoverJobs(new ArrayList<CutoverJob>())
2075               .build();
2076       FieldMask updateMask = FieldMask.newBuilder().build();
2077       client.updateMigratingVmAsync(migratingVm, updateMask).get();
2078       Assert.fail("No exception raised");
2079     } catch (ExecutionException e) {
2080     }
2081   }
2082 
2083   @Test
deleteMigratingVmTest()2084   public void deleteMigratingVmTest() throws Exception {
2085     Empty expectedResponse = Empty.newBuilder().build();
2086     Operation resultOperation =
2087         Operation.newBuilder()
2088             .setName("deleteMigratingVmTest")
2089             .setDone(true)
2090             .setResponse(Any.pack(expectedResponse))
2091             .build();
2092     mockService.addResponse(resultOperation);
2093 
2094     MigratingVmName name =
2095         MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
2096 
2097     client.deleteMigratingVmAsync(name).get();
2098 
2099     List<String> actualRequests = mockService.getRequestPaths();
2100     Assert.assertEquals(1, actualRequests.size());
2101 
2102     String apiClientHeaderKey =
2103         mockService
2104             .getRequestHeaders()
2105             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2106             .iterator()
2107             .next();
2108     Assert.assertTrue(
2109         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2110             .matcher(apiClientHeaderKey)
2111             .matches());
2112   }
2113 
2114   @Test
deleteMigratingVmExceptionTest()2115   public void deleteMigratingVmExceptionTest() throws Exception {
2116     ApiException exception =
2117         ApiExceptionFactory.createException(
2118             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2119     mockService.addException(exception);
2120 
2121     try {
2122       MigratingVmName name =
2123           MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
2124       client.deleteMigratingVmAsync(name).get();
2125       Assert.fail("No exception raised");
2126     } catch (ExecutionException e) {
2127     }
2128   }
2129 
2130   @Test
deleteMigratingVmTest2()2131   public void deleteMigratingVmTest2() throws Exception {
2132     Empty expectedResponse = Empty.newBuilder().build();
2133     Operation resultOperation =
2134         Operation.newBuilder()
2135             .setName("deleteMigratingVmTest")
2136             .setDone(true)
2137             .setResponse(Any.pack(expectedResponse))
2138             .build();
2139     mockService.addResponse(resultOperation);
2140 
2141     String name =
2142         "projects/project-7504/locations/location-7504/sources/source-7504/migratingVms/migratingVm-7504";
2143 
2144     client.deleteMigratingVmAsync(name).get();
2145 
2146     List<String> actualRequests = mockService.getRequestPaths();
2147     Assert.assertEquals(1, actualRequests.size());
2148 
2149     String apiClientHeaderKey =
2150         mockService
2151             .getRequestHeaders()
2152             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2153             .iterator()
2154             .next();
2155     Assert.assertTrue(
2156         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2157             .matcher(apiClientHeaderKey)
2158             .matches());
2159   }
2160 
2161   @Test
deleteMigratingVmExceptionTest2()2162   public void deleteMigratingVmExceptionTest2() throws Exception {
2163     ApiException exception =
2164         ApiExceptionFactory.createException(
2165             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2166     mockService.addException(exception);
2167 
2168     try {
2169       String name =
2170           "projects/project-7504/locations/location-7504/sources/source-7504/migratingVms/migratingVm-7504";
2171       client.deleteMigratingVmAsync(name).get();
2172       Assert.fail("No exception raised");
2173     } catch (ExecutionException e) {
2174     }
2175   }
2176 
2177   @Test
startMigrationTest()2178   public void startMigrationTest() throws Exception {
2179     StartMigrationResponse expectedResponse = StartMigrationResponse.newBuilder().build();
2180     Operation resultOperation =
2181         Operation.newBuilder()
2182             .setName("startMigrationTest")
2183             .setDone(true)
2184             .setResponse(Any.pack(expectedResponse))
2185             .build();
2186     mockService.addResponse(resultOperation);
2187 
2188     MigratingVmName migratingVm =
2189         MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
2190 
2191     StartMigrationResponse actualResponse = client.startMigrationAsync(migratingVm).get();
2192     Assert.assertEquals(expectedResponse, actualResponse);
2193 
2194     List<String> actualRequests = mockService.getRequestPaths();
2195     Assert.assertEquals(1, actualRequests.size());
2196 
2197     String apiClientHeaderKey =
2198         mockService
2199             .getRequestHeaders()
2200             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2201             .iterator()
2202             .next();
2203     Assert.assertTrue(
2204         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2205             .matcher(apiClientHeaderKey)
2206             .matches());
2207   }
2208 
2209   @Test
startMigrationExceptionTest()2210   public void startMigrationExceptionTest() throws Exception {
2211     ApiException exception =
2212         ApiExceptionFactory.createException(
2213             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2214     mockService.addException(exception);
2215 
2216     try {
2217       MigratingVmName migratingVm =
2218           MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
2219       client.startMigrationAsync(migratingVm).get();
2220       Assert.fail("No exception raised");
2221     } catch (ExecutionException e) {
2222     }
2223   }
2224 
2225   @Test
startMigrationTest2()2226   public void startMigrationTest2() throws Exception {
2227     StartMigrationResponse expectedResponse = StartMigrationResponse.newBuilder().build();
2228     Operation resultOperation =
2229         Operation.newBuilder()
2230             .setName("startMigrationTest")
2231             .setDone(true)
2232             .setResponse(Any.pack(expectedResponse))
2233             .build();
2234     mockService.addResponse(resultOperation);
2235 
2236     String migratingVm =
2237         "projects/project-6708/locations/location-6708/sources/source-6708/migratingVms/migratingVm-6708";
2238 
2239     StartMigrationResponse actualResponse = client.startMigrationAsync(migratingVm).get();
2240     Assert.assertEquals(expectedResponse, actualResponse);
2241 
2242     List<String> actualRequests = mockService.getRequestPaths();
2243     Assert.assertEquals(1, actualRequests.size());
2244 
2245     String apiClientHeaderKey =
2246         mockService
2247             .getRequestHeaders()
2248             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2249             .iterator()
2250             .next();
2251     Assert.assertTrue(
2252         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2253             .matcher(apiClientHeaderKey)
2254             .matches());
2255   }
2256 
2257   @Test
startMigrationExceptionTest2()2258   public void startMigrationExceptionTest2() throws Exception {
2259     ApiException exception =
2260         ApiExceptionFactory.createException(
2261             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2262     mockService.addException(exception);
2263 
2264     try {
2265       String migratingVm =
2266           "projects/project-6708/locations/location-6708/sources/source-6708/migratingVms/migratingVm-6708";
2267       client.startMigrationAsync(migratingVm).get();
2268       Assert.fail("No exception raised");
2269     } catch (ExecutionException e) {
2270     }
2271   }
2272 
2273   @Test
resumeMigrationTest()2274   public void resumeMigrationTest() throws Exception {
2275     ResumeMigrationResponse expectedResponse = ResumeMigrationResponse.newBuilder().build();
2276     Operation resultOperation =
2277         Operation.newBuilder()
2278             .setName("resumeMigrationTest")
2279             .setDone(true)
2280             .setResponse(Any.pack(expectedResponse))
2281             .build();
2282     mockService.addResponse(resultOperation);
2283 
2284     ResumeMigrationRequest request =
2285         ResumeMigrationRequest.newBuilder()
2286             .setMigratingVm(
2287                 MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]")
2288                     .toString())
2289             .build();
2290 
2291     ResumeMigrationResponse actualResponse = client.resumeMigrationAsync(request).get();
2292     Assert.assertEquals(expectedResponse, actualResponse);
2293 
2294     List<String> actualRequests = mockService.getRequestPaths();
2295     Assert.assertEquals(1, actualRequests.size());
2296 
2297     String apiClientHeaderKey =
2298         mockService
2299             .getRequestHeaders()
2300             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2301             .iterator()
2302             .next();
2303     Assert.assertTrue(
2304         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2305             .matcher(apiClientHeaderKey)
2306             .matches());
2307   }
2308 
2309   @Test
resumeMigrationExceptionTest()2310   public void resumeMigrationExceptionTest() throws Exception {
2311     ApiException exception =
2312         ApiExceptionFactory.createException(
2313             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2314     mockService.addException(exception);
2315 
2316     try {
2317       ResumeMigrationRequest request =
2318           ResumeMigrationRequest.newBuilder()
2319               .setMigratingVm(
2320                   MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]")
2321                       .toString())
2322               .build();
2323       client.resumeMigrationAsync(request).get();
2324       Assert.fail("No exception raised");
2325     } catch (ExecutionException e) {
2326     }
2327   }
2328 
2329   @Test
pauseMigrationTest()2330   public void pauseMigrationTest() throws Exception {
2331     PauseMigrationResponse expectedResponse = PauseMigrationResponse.newBuilder().build();
2332     Operation resultOperation =
2333         Operation.newBuilder()
2334             .setName("pauseMigrationTest")
2335             .setDone(true)
2336             .setResponse(Any.pack(expectedResponse))
2337             .build();
2338     mockService.addResponse(resultOperation);
2339 
2340     PauseMigrationRequest request =
2341         PauseMigrationRequest.newBuilder()
2342             .setMigratingVm(
2343                 MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]")
2344                     .toString())
2345             .build();
2346 
2347     PauseMigrationResponse actualResponse = client.pauseMigrationAsync(request).get();
2348     Assert.assertEquals(expectedResponse, actualResponse);
2349 
2350     List<String> actualRequests = mockService.getRequestPaths();
2351     Assert.assertEquals(1, actualRequests.size());
2352 
2353     String apiClientHeaderKey =
2354         mockService
2355             .getRequestHeaders()
2356             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2357             .iterator()
2358             .next();
2359     Assert.assertTrue(
2360         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2361             .matcher(apiClientHeaderKey)
2362             .matches());
2363   }
2364 
2365   @Test
pauseMigrationExceptionTest()2366   public void pauseMigrationExceptionTest() throws Exception {
2367     ApiException exception =
2368         ApiExceptionFactory.createException(
2369             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2370     mockService.addException(exception);
2371 
2372     try {
2373       PauseMigrationRequest request =
2374           PauseMigrationRequest.newBuilder()
2375               .setMigratingVm(
2376                   MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]")
2377                       .toString())
2378               .build();
2379       client.pauseMigrationAsync(request).get();
2380       Assert.fail("No exception raised");
2381     } catch (ExecutionException e) {
2382     }
2383   }
2384 
2385   @Test
finalizeMigrationTest()2386   public void finalizeMigrationTest() throws Exception {
2387     FinalizeMigrationResponse expectedResponse = FinalizeMigrationResponse.newBuilder().build();
2388     Operation resultOperation =
2389         Operation.newBuilder()
2390             .setName("finalizeMigrationTest")
2391             .setDone(true)
2392             .setResponse(Any.pack(expectedResponse))
2393             .build();
2394     mockService.addResponse(resultOperation);
2395 
2396     MigratingVmName migratingVm =
2397         MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
2398 
2399     FinalizeMigrationResponse actualResponse = client.finalizeMigrationAsync(migratingVm).get();
2400     Assert.assertEquals(expectedResponse, actualResponse);
2401 
2402     List<String> actualRequests = mockService.getRequestPaths();
2403     Assert.assertEquals(1, actualRequests.size());
2404 
2405     String apiClientHeaderKey =
2406         mockService
2407             .getRequestHeaders()
2408             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2409             .iterator()
2410             .next();
2411     Assert.assertTrue(
2412         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2413             .matcher(apiClientHeaderKey)
2414             .matches());
2415   }
2416 
2417   @Test
finalizeMigrationExceptionTest()2418   public void finalizeMigrationExceptionTest() throws Exception {
2419     ApiException exception =
2420         ApiExceptionFactory.createException(
2421             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2422     mockService.addException(exception);
2423 
2424     try {
2425       MigratingVmName migratingVm =
2426           MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
2427       client.finalizeMigrationAsync(migratingVm).get();
2428       Assert.fail("No exception raised");
2429     } catch (ExecutionException e) {
2430     }
2431   }
2432 
2433   @Test
finalizeMigrationTest2()2434   public void finalizeMigrationTest2() throws Exception {
2435     FinalizeMigrationResponse expectedResponse = FinalizeMigrationResponse.newBuilder().build();
2436     Operation resultOperation =
2437         Operation.newBuilder()
2438             .setName("finalizeMigrationTest")
2439             .setDone(true)
2440             .setResponse(Any.pack(expectedResponse))
2441             .build();
2442     mockService.addResponse(resultOperation);
2443 
2444     String migratingVm =
2445         "projects/project-6708/locations/location-6708/sources/source-6708/migratingVms/migratingVm-6708";
2446 
2447     FinalizeMigrationResponse actualResponse = client.finalizeMigrationAsync(migratingVm).get();
2448     Assert.assertEquals(expectedResponse, actualResponse);
2449 
2450     List<String> actualRequests = mockService.getRequestPaths();
2451     Assert.assertEquals(1, actualRequests.size());
2452 
2453     String apiClientHeaderKey =
2454         mockService
2455             .getRequestHeaders()
2456             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2457             .iterator()
2458             .next();
2459     Assert.assertTrue(
2460         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2461             .matcher(apiClientHeaderKey)
2462             .matches());
2463   }
2464 
2465   @Test
finalizeMigrationExceptionTest2()2466   public void finalizeMigrationExceptionTest2() throws Exception {
2467     ApiException exception =
2468         ApiExceptionFactory.createException(
2469             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2470     mockService.addException(exception);
2471 
2472     try {
2473       String migratingVm =
2474           "projects/project-6708/locations/location-6708/sources/source-6708/migratingVms/migratingVm-6708";
2475       client.finalizeMigrationAsync(migratingVm).get();
2476       Assert.fail("No exception raised");
2477     } catch (ExecutionException e) {
2478     }
2479   }
2480 
2481   @Test
createCloneJobTest()2482   public void createCloneJobTest() throws Exception {
2483     CloneJob expectedResponse =
2484         CloneJob.newBuilder()
2485             .setCreateTime(Timestamp.newBuilder().build())
2486             .setEndTime(Timestamp.newBuilder().build())
2487             .setName(
2488                 CloneJobName.of(
2489                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CLONE_JOB]")
2490                     .toString())
2491             .setStateTime(Timestamp.newBuilder().build())
2492             .setError(Status.newBuilder().build())
2493             .addAllSteps(new ArrayList<CloneStep>())
2494             .build();
2495     Operation resultOperation =
2496         Operation.newBuilder()
2497             .setName("createCloneJobTest")
2498             .setDone(true)
2499             .setResponse(Any.pack(expectedResponse))
2500             .build();
2501     mockService.addResponse(resultOperation);
2502 
2503     MigratingVmName parent =
2504         MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
2505     CloneJob cloneJob = CloneJob.newBuilder().build();
2506     String cloneJobId = "cloneJobId2071309915";
2507 
2508     CloneJob actualResponse = client.createCloneJobAsync(parent, cloneJob, cloneJobId).get();
2509     Assert.assertEquals(expectedResponse, actualResponse);
2510 
2511     List<String> actualRequests = mockService.getRequestPaths();
2512     Assert.assertEquals(1, actualRequests.size());
2513 
2514     String apiClientHeaderKey =
2515         mockService
2516             .getRequestHeaders()
2517             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2518             .iterator()
2519             .next();
2520     Assert.assertTrue(
2521         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2522             .matcher(apiClientHeaderKey)
2523             .matches());
2524   }
2525 
2526   @Test
createCloneJobExceptionTest()2527   public void createCloneJobExceptionTest() throws Exception {
2528     ApiException exception =
2529         ApiExceptionFactory.createException(
2530             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2531     mockService.addException(exception);
2532 
2533     try {
2534       MigratingVmName parent =
2535           MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
2536       CloneJob cloneJob = CloneJob.newBuilder().build();
2537       String cloneJobId = "cloneJobId2071309915";
2538       client.createCloneJobAsync(parent, cloneJob, cloneJobId).get();
2539       Assert.fail("No exception raised");
2540     } catch (ExecutionException e) {
2541     }
2542   }
2543 
2544   @Test
createCloneJobTest2()2545   public void createCloneJobTest2() throws Exception {
2546     CloneJob expectedResponse =
2547         CloneJob.newBuilder()
2548             .setCreateTime(Timestamp.newBuilder().build())
2549             .setEndTime(Timestamp.newBuilder().build())
2550             .setName(
2551                 CloneJobName.of(
2552                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CLONE_JOB]")
2553                     .toString())
2554             .setStateTime(Timestamp.newBuilder().build())
2555             .setError(Status.newBuilder().build())
2556             .addAllSteps(new ArrayList<CloneStep>())
2557             .build();
2558     Operation resultOperation =
2559         Operation.newBuilder()
2560             .setName("createCloneJobTest")
2561             .setDone(true)
2562             .setResponse(Any.pack(expectedResponse))
2563             .build();
2564     mockService.addResponse(resultOperation);
2565 
2566     String parent =
2567         "projects/project-9743/locations/location-9743/sources/source-9743/migratingVms/migratingVm-9743";
2568     CloneJob cloneJob = CloneJob.newBuilder().build();
2569     String cloneJobId = "cloneJobId2071309915";
2570 
2571     CloneJob actualResponse = client.createCloneJobAsync(parent, cloneJob, cloneJobId).get();
2572     Assert.assertEquals(expectedResponse, actualResponse);
2573 
2574     List<String> actualRequests = mockService.getRequestPaths();
2575     Assert.assertEquals(1, actualRequests.size());
2576 
2577     String apiClientHeaderKey =
2578         mockService
2579             .getRequestHeaders()
2580             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2581             .iterator()
2582             .next();
2583     Assert.assertTrue(
2584         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2585             .matcher(apiClientHeaderKey)
2586             .matches());
2587   }
2588 
2589   @Test
createCloneJobExceptionTest2()2590   public void createCloneJobExceptionTest2() throws Exception {
2591     ApiException exception =
2592         ApiExceptionFactory.createException(
2593             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2594     mockService.addException(exception);
2595 
2596     try {
2597       String parent =
2598           "projects/project-9743/locations/location-9743/sources/source-9743/migratingVms/migratingVm-9743";
2599       CloneJob cloneJob = CloneJob.newBuilder().build();
2600       String cloneJobId = "cloneJobId2071309915";
2601       client.createCloneJobAsync(parent, cloneJob, cloneJobId).get();
2602       Assert.fail("No exception raised");
2603     } catch (ExecutionException e) {
2604     }
2605   }
2606 
2607   @Test
cancelCloneJobTest()2608   public void cancelCloneJobTest() throws Exception {
2609     CancelCloneJobResponse expectedResponse = CancelCloneJobResponse.newBuilder().build();
2610     Operation resultOperation =
2611         Operation.newBuilder()
2612             .setName("cancelCloneJobTest")
2613             .setDone(true)
2614             .setResponse(Any.pack(expectedResponse))
2615             .build();
2616     mockService.addResponse(resultOperation);
2617 
2618     CloneJobName name =
2619         CloneJobName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CLONE_JOB]");
2620 
2621     CancelCloneJobResponse actualResponse = client.cancelCloneJobAsync(name).get();
2622     Assert.assertEquals(expectedResponse, actualResponse);
2623 
2624     List<String> actualRequests = mockService.getRequestPaths();
2625     Assert.assertEquals(1, actualRequests.size());
2626 
2627     String apiClientHeaderKey =
2628         mockService
2629             .getRequestHeaders()
2630             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2631             .iterator()
2632             .next();
2633     Assert.assertTrue(
2634         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2635             .matcher(apiClientHeaderKey)
2636             .matches());
2637   }
2638 
2639   @Test
cancelCloneJobExceptionTest()2640   public void cancelCloneJobExceptionTest() throws Exception {
2641     ApiException exception =
2642         ApiExceptionFactory.createException(
2643             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2644     mockService.addException(exception);
2645 
2646     try {
2647       CloneJobName name =
2648           CloneJobName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CLONE_JOB]");
2649       client.cancelCloneJobAsync(name).get();
2650       Assert.fail("No exception raised");
2651     } catch (ExecutionException e) {
2652     }
2653   }
2654 
2655   @Test
cancelCloneJobTest2()2656   public void cancelCloneJobTest2() throws Exception {
2657     CancelCloneJobResponse expectedResponse = CancelCloneJobResponse.newBuilder().build();
2658     Operation resultOperation =
2659         Operation.newBuilder()
2660             .setName("cancelCloneJobTest")
2661             .setDone(true)
2662             .setResponse(Any.pack(expectedResponse))
2663             .build();
2664     mockService.addResponse(resultOperation);
2665 
2666     String name =
2667         "projects/project-7919/locations/location-7919/sources/source-7919/migratingVms/migratingVm-7919/cloneJobs/cloneJob-7919";
2668 
2669     CancelCloneJobResponse actualResponse = client.cancelCloneJobAsync(name).get();
2670     Assert.assertEquals(expectedResponse, actualResponse);
2671 
2672     List<String> actualRequests = mockService.getRequestPaths();
2673     Assert.assertEquals(1, actualRequests.size());
2674 
2675     String apiClientHeaderKey =
2676         mockService
2677             .getRequestHeaders()
2678             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2679             .iterator()
2680             .next();
2681     Assert.assertTrue(
2682         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2683             .matcher(apiClientHeaderKey)
2684             .matches());
2685   }
2686 
2687   @Test
cancelCloneJobExceptionTest2()2688   public void cancelCloneJobExceptionTest2() throws Exception {
2689     ApiException exception =
2690         ApiExceptionFactory.createException(
2691             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2692     mockService.addException(exception);
2693 
2694     try {
2695       String name =
2696           "projects/project-7919/locations/location-7919/sources/source-7919/migratingVms/migratingVm-7919/cloneJobs/cloneJob-7919";
2697       client.cancelCloneJobAsync(name).get();
2698       Assert.fail("No exception raised");
2699     } catch (ExecutionException e) {
2700     }
2701   }
2702 
2703   @Test
listCloneJobsTest()2704   public void listCloneJobsTest() throws Exception {
2705     CloneJob responsesElement = CloneJob.newBuilder().build();
2706     ListCloneJobsResponse expectedResponse =
2707         ListCloneJobsResponse.newBuilder()
2708             .setNextPageToken("")
2709             .addAllCloneJobs(Arrays.asList(responsesElement))
2710             .build();
2711     mockService.addResponse(expectedResponse);
2712 
2713     MigratingVmName parent =
2714         MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
2715 
2716     ListCloneJobsPagedResponse pagedListResponse = client.listCloneJobs(parent);
2717 
2718     List<CloneJob> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2719 
2720     Assert.assertEquals(1, resources.size());
2721     Assert.assertEquals(expectedResponse.getCloneJobsList().get(0), resources.get(0));
2722 
2723     List<String> actualRequests = mockService.getRequestPaths();
2724     Assert.assertEquals(1, actualRequests.size());
2725 
2726     String apiClientHeaderKey =
2727         mockService
2728             .getRequestHeaders()
2729             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2730             .iterator()
2731             .next();
2732     Assert.assertTrue(
2733         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2734             .matcher(apiClientHeaderKey)
2735             .matches());
2736   }
2737 
2738   @Test
listCloneJobsExceptionTest()2739   public void listCloneJobsExceptionTest() throws Exception {
2740     ApiException exception =
2741         ApiExceptionFactory.createException(
2742             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2743     mockService.addException(exception);
2744 
2745     try {
2746       MigratingVmName parent =
2747           MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
2748       client.listCloneJobs(parent);
2749       Assert.fail("No exception raised");
2750     } catch (InvalidArgumentException e) {
2751       // Expected exception.
2752     }
2753   }
2754 
2755   @Test
listCloneJobsTest2()2756   public void listCloneJobsTest2() throws Exception {
2757     CloneJob responsesElement = CloneJob.newBuilder().build();
2758     ListCloneJobsResponse expectedResponse =
2759         ListCloneJobsResponse.newBuilder()
2760             .setNextPageToken("")
2761             .addAllCloneJobs(Arrays.asList(responsesElement))
2762             .build();
2763     mockService.addResponse(expectedResponse);
2764 
2765     String parent =
2766         "projects/project-9743/locations/location-9743/sources/source-9743/migratingVms/migratingVm-9743";
2767 
2768     ListCloneJobsPagedResponse pagedListResponse = client.listCloneJobs(parent);
2769 
2770     List<CloneJob> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2771 
2772     Assert.assertEquals(1, resources.size());
2773     Assert.assertEquals(expectedResponse.getCloneJobsList().get(0), resources.get(0));
2774 
2775     List<String> actualRequests = mockService.getRequestPaths();
2776     Assert.assertEquals(1, actualRequests.size());
2777 
2778     String apiClientHeaderKey =
2779         mockService
2780             .getRequestHeaders()
2781             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2782             .iterator()
2783             .next();
2784     Assert.assertTrue(
2785         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2786             .matcher(apiClientHeaderKey)
2787             .matches());
2788   }
2789 
2790   @Test
listCloneJobsExceptionTest2()2791   public void listCloneJobsExceptionTest2() throws Exception {
2792     ApiException exception =
2793         ApiExceptionFactory.createException(
2794             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2795     mockService.addException(exception);
2796 
2797     try {
2798       String parent =
2799           "projects/project-9743/locations/location-9743/sources/source-9743/migratingVms/migratingVm-9743";
2800       client.listCloneJobs(parent);
2801       Assert.fail("No exception raised");
2802     } catch (InvalidArgumentException e) {
2803       // Expected exception.
2804     }
2805   }
2806 
2807   @Test
getCloneJobTest()2808   public void getCloneJobTest() throws Exception {
2809     CloneJob expectedResponse =
2810         CloneJob.newBuilder()
2811             .setCreateTime(Timestamp.newBuilder().build())
2812             .setEndTime(Timestamp.newBuilder().build())
2813             .setName(
2814                 CloneJobName.of(
2815                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CLONE_JOB]")
2816                     .toString())
2817             .setStateTime(Timestamp.newBuilder().build())
2818             .setError(Status.newBuilder().build())
2819             .addAllSteps(new ArrayList<CloneStep>())
2820             .build();
2821     mockService.addResponse(expectedResponse);
2822 
2823     CloneJobName name =
2824         CloneJobName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CLONE_JOB]");
2825 
2826     CloneJob actualResponse = client.getCloneJob(name);
2827     Assert.assertEquals(expectedResponse, actualResponse);
2828 
2829     List<String> actualRequests = mockService.getRequestPaths();
2830     Assert.assertEquals(1, actualRequests.size());
2831 
2832     String apiClientHeaderKey =
2833         mockService
2834             .getRequestHeaders()
2835             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2836             .iterator()
2837             .next();
2838     Assert.assertTrue(
2839         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2840             .matcher(apiClientHeaderKey)
2841             .matches());
2842   }
2843 
2844   @Test
getCloneJobExceptionTest()2845   public void getCloneJobExceptionTest() throws Exception {
2846     ApiException exception =
2847         ApiExceptionFactory.createException(
2848             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2849     mockService.addException(exception);
2850 
2851     try {
2852       CloneJobName name =
2853           CloneJobName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CLONE_JOB]");
2854       client.getCloneJob(name);
2855       Assert.fail("No exception raised");
2856     } catch (InvalidArgumentException e) {
2857       // Expected exception.
2858     }
2859   }
2860 
2861   @Test
getCloneJobTest2()2862   public void getCloneJobTest2() throws Exception {
2863     CloneJob expectedResponse =
2864         CloneJob.newBuilder()
2865             .setCreateTime(Timestamp.newBuilder().build())
2866             .setEndTime(Timestamp.newBuilder().build())
2867             .setName(
2868                 CloneJobName.of(
2869                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CLONE_JOB]")
2870                     .toString())
2871             .setStateTime(Timestamp.newBuilder().build())
2872             .setError(Status.newBuilder().build())
2873             .addAllSteps(new ArrayList<CloneStep>())
2874             .build();
2875     mockService.addResponse(expectedResponse);
2876 
2877     String name =
2878         "projects/project-7919/locations/location-7919/sources/source-7919/migratingVms/migratingVm-7919/cloneJobs/cloneJob-7919";
2879 
2880     CloneJob actualResponse = client.getCloneJob(name);
2881     Assert.assertEquals(expectedResponse, actualResponse);
2882 
2883     List<String> actualRequests = mockService.getRequestPaths();
2884     Assert.assertEquals(1, actualRequests.size());
2885 
2886     String apiClientHeaderKey =
2887         mockService
2888             .getRequestHeaders()
2889             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2890             .iterator()
2891             .next();
2892     Assert.assertTrue(
2893         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2894             .matcher(apiClientHeaderKey)
2895             .matches());
2896   }
2897 
2898   @Test
getCloneJobExceptionTest2()2899   public void getCloneJobExceptionTest2() throws Exception {
2900     ApiException exception =
2901         ApiExceptionFactory.createException(
2902             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2903     mockService.addException(exception);
2904 
2905     try {
2906       String name =
2907           "projects/project-7919/locations/location-7919/sources/source-7919/migratingVms/migratingVm-7919/cloneJobs/cloneJob-7919";
2908       client.getCloneJob(name);
2909       Assert.fail("No exception raised");
2910     } catch (InvalidArgumentException e) {
2911       // Expected exception.
2912     }
2913   }
2914 
2915   @Test
createCutoverJobTest()2916   public void createCutoverJobTest() throws Exception {
2917     CutoverJob expectedResponse =
2918         CutoverJob.newBuilder()
2919             .setCreateTime(Timestamp.newBuilder().build())
2920             .setEndTime(Timestamp.newBuilder().build())
2921             .setName(
2922                 CutoverJobName.of(
2923                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CUTOVER_JOB]")
2924                     .toString())
2925             .setStateTime(Timestamp.newBuilder().build())
2926             .setProgressPercent(-2137894861)
2927             .setError(Status.newBuilder().build())
2928             .setStateMessage("stateMessage1128185398")
2929             .addAllSteps(new ArrayList<CutoverStep>())
2930             .build();
2931     Operation resultOperation =
2932         Operation.newBuilder()
2933             .setName("createCutoverJobTest")
2934             .setDone(true)
2935             .setResponse(Any.pack(expectedResponse))
2936             .build();
2937     mockService.addResponse(resultOperation);
2938 
2939     MigratingVmName parent =
2940         MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
2941     CutoverJob cutoverJob = CutoverJob.newBuilder().build();
2942     String cutoverJobId = "cutoverJobId-2003089086";
2943 
2944     CutoverJob actualResponse =
2945         client.createCutoverJobAsync(parent, cutoverJob, cutoverJobId).get();
2946     Assert.assertEquals(expectedResponse, actualResponse);
2947 
2948     List<String> actualRequests = mockService.getRequestPaths();
2949     Assert.assertEquals(1, actualRequests.size());
2950 
2951     String apiClientHeaderKey =
2952         mockService
2953             .getRequestHeaders()
2954             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
2955             .iterator()
2956             .next();
2957     Assert.assertTrue(
2958         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
2959             .matcher(apiClientHeaderKey)
2960             .matches());
2961   }
2962 
2963   @Test
createCutoverJobExceptionTest()2964   public void createCutoverJobExceptionTest() throws Exception {
2965     ApiException exception =
2966         ApiExceptionFactory.createException(
2967             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
2968     mockService.addException(exception);
2969 
2970     try {
2971       MigratingVmName parent =
2972           MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
2973       CutoverJob cutoverJob = CutoverJob.newBuilder().build();
2974       String cutoverJobId = "cutoverJobId-2003089086";
2975       client.createCutoverJobAsync(parent, cutoverJob, cutoverJobId).get();
2976       Assert.fail("No exception raised");
2977     } catch (ExecutionException e) {
2978     }
2979   }
2980 
2981   @Test
createCutoverJobTest2()2982   public void createCutoverJobTest2() throws Exception {
2983     CutoverJob expectedResponse =
2984         CutoverJob.newBuilder()
2985             .setCreateTime(Timestamp.newBuilder().build())
2986             .setEndTime(Timestamp.newBuilder().build())
2987             .setName(
2988                 CutoverJobName.of(
2989                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CUTOVER_JOB]")
2990                     .toString())
2991             .setStateTime(Timestamp.newBuilder().build())
2992             .setProgressPercent(-2137894861)
2993             .setError(Status.newBuilder().build())
2994             .setStateMessage("stateMessage1128185398")
2995             .addAllSteps(new ArrayList<CutoverStep>())
2996             .build();
2997     Operation resultOperation =
2998         Operation.newBuilder()
2999             .setName("createCutoverJobTest")
3000             .setDone(true)
3001             .setResponse(Any.pack(expectedResponse))
3002             .build();
3003     mockService.addResponse(resultOperation);
3004 
3005     String parent =
3006         "projects/project-9743/locations/location-9743/sources/source-9743/migratingVms/migratingVm-9743";
3007     CutoverJob cutoverJob = CutoverJob.newBuilder().build();
3008     String cutoverJobId = "cutoverJobId-2003089086";
3009 
3010     CutoverJob actualResponse =
3011         client.createCutoverJobAsync(parent, cutoverJob, cutoverJobId).get();
3012     Assert.assertEquals(expectedResponse, actualResponse);
3013 
3014     List<String> actualRequests = mockService.getRequestPaths();
3015     Assert.assertEquals(1, actualRequests.size());
3016 
3017     String apiClientHeaderKey =
3018         mockService
3019             .getRequestHeaders()
3020             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3021             .iterator()
3022             .next();
3023     Assert.assertTrue(
3024         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3025             .matcher(apiClientHeaderKey)
3026             .matches());
3027   }
3028 
3029   @Test
createCutoverJobExceptionTest2()3030   public void createCutoverJobExceptionTest2() throws Exception {
3031     ApiException exception =
3032         ApiExceptionFactory.createException(
3033             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3034     mockService.addException(exception);
3035 
3036     try {
3037       String parent =
3038           "projects/project-9743/locations/location-9743/sources/source-9743/migratingVms/migratingVm-9743";
3039       CutoverJob cutoverJob = CutoverJob.newBuilder().build();
3040       String cutoverJobId = "cutoverJobId-2003089086";
3041       client.createCutoverJobAsync(parent, cutoverJob, cutoverJobId).get();
3042       Assert.fail("No exception raised");
3043     } catch (ExecutionException e) {
3044     }
3045   }
3046 
3047   @Test
cancelCutoverJobTest()3048   public void cancelCutoverJobTest() throws Exception {
3049     CancelCutoverJobResponse expectedResponse = CancelCutoverJobResponse.newBuilder().build();
3050     Operation resultOperation =
3051         Operation.newBuilder()
3052             .setName("cancelCutoverJobTest")
3053             .setDone(true)
3054             .setResponse(Any.pack(expectedResponse))
3055             .build();
3056     mockService.addResponse(resultOperation);
3057 
3058     CutoverJobName name =
3059         CutoverJobName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CUTOVER_JOB]");
3060 
3061     CancelCutoverJobResponse actualResponse = client.cancelCutoverJobAsync(name).get();
3062     Assert.assertEquals(expectedResponse, actualResponse);
3063 
3064     List<String> actualRequests = mockService.getRequestPaths();
3065     Assert.assertEquals(1, actualRequests.size());
3066 
3067     String apiClientHeaderKey =
3068         mockService
3069             .getRequestHeaders()
3070             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3071             .iterator()
3072             .next();
3073     Assert.assertTrue(
3074         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3075             .matcher(apiClientHeaderKey)
3076             .matches());
3077   }
3078 
3079   @Test
cancelCutoverJobExceptionTest()3080   public void cancelCutoverJobExceptionTest() throws Exception {
3081     ApiException exception =
3082         ApiExceptionFactory.createException(
3083             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3084     mockService.addException(exception);
3085 
3086     try {
3087       CutoverJobName name =
3088           CutoverJobName.of(
3089               "[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CUTOVER_JOB]");
3090       client.cancelCutoverJobAsync(name).get();
3091       Assert.fail("No exception raised");
3092     } catch (ExecutionException e) {
3093     }
3094   }
3095 
3096   @Test
cancelCutoverJobTest2()3097   public void cancelCutoverJobTest2() throws Exception {
3098     CancelCutoverJobResponse expectedResponse = CancelCutoverJobResponse.newBuilder().build();
3099     Operation resultOperation =
3100         Operation.newBuilder()
3101             .setName("cancelCutoverJobTest")
3102             .setDone(true)
3103             .setResponse(Any.pack(expectedResponse))
3104             .build();
3105     mockService.addResponse(resultOperation);
3106 
3107     String name =
3108         "projects/project-7848/locations/location-7848/sources/source-7848/migratingVms/migratingVm-7848/cutoverJobs/cutoverJob-7848";
3109 
3110     CancelCutoverJobResponse actualResponse = client.cancelCutoverJobAsync(name).get();
3111     Assert.assertEquals(expectedResponse, actualResponse);
3112 
3113     List<String> actualRequests = mockService.getRequestPaths();
3114     Assert.assertEquals(1, actualRequests.size());
3115 
3116     String apiClientHeaderKey =
3117         mockService
3118             .getRequestHeaders()
3119             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3120             .iterator()
3121             .next();
3122     Assert.assertTrue(
3123         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3124             .matcher(apiClientHeaderKey)
3125             .matches());
3126   }
3127 
3128   @Test
cancelCutoverJobExceptionTest2()3129   public void cancelCutoverJobExceptionTest2() throws Exception {
3130     ApiException exception =
3131         ApiExceptionFactory.createException(
3132             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3133     mockService.addException(exception);
3134 
3135     try {
3136       String name =
3137           "projects/project-7848/locations/location-7848/sources/source-7848/migratingVms/migratingVm-7848/cutoverJobs/cutoverJob-7848";
3138       client.cancelCutoverJobAsync(name).get();
3139       Assert.fail("No exception raised");
3140     } catch (ExecutionException e) {
3141     }
3142   }
3143 
3144   @Test
listCutoverJobsTest()3145   public void listCutoverJobsTest() throws Exception {
3146     CutoverJob responsesElement = CutoverJob.newBuilder().build();
3147     ListCutoverJobsResponse expectedResponse =
3148         ListCutoverJobsResponse.newBuilder()
3149             .setNextPageToken("")
3150             .addAllCutoverJobs(Arrays.asList(responsesElement))
3151             .build();
3152     mockService.addResponse(expectedResponse);
3153 
3154     MigratingVmName parent =
3155         MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
3156 
3157     ListCutoverJobsPagedResponse pagedListResponse = client.listCutoverJobs(parent);
3158 
3159     List<CutoverJob> resources = Lists.newArrayList(pagedListResponse.iterateAll());
3160 
3161     Assert.assertEquals(1, resources.size());
3162     Assert.assertEquals(expectedResponse.getCutoverJobsList().get(0), resources.get(0));
3163 
3164     List<String> actualRequests = mockService.getRequestPaths();
3165     Assert.assertEquals(1, actualRequests.size());
3166 
3167     String apiClientHeaderKey =
3168         mockService
3169             .getRequestHeaders()
3170             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3171             .iterator()
3172             .next();
3173     Assert.assertTrue(
3174         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3175             .matcher(apiClientHeaderKey)
3176             .matches());
3177   }
3178 
3179   @Test
listCutoverJobsExceptionTest()3180   public void listCutoverJobsExceptionTest() throws Exception {
3181     ApiException exception =
3182         ApiExceptionFactory.createException(
3183             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3184     mockService.addException(exception);
3185 
3186     try {
3187       MigratingVmName parent =
3188           MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
3189       client.listCutoverJobs(parent);
3190       Assert.fail("No exception raised");
3191     } catch (InvalidArgumentException e) {
3192       // Expected exception.
3193     }
3194   }
3195 
3196   @Test
listCutoverJobsTest2()3197   public void listCutoverJobsTest2() throws Exception {
3198     CutoverJob responsesElement = CutoverJob.newBuilder().build();
3199     ListCutoverJobsResponse expectedResponse =
3200         ListCutoverJobsResponse.newBuilder()
3201             .setNextPageToken("")
3202             .addAllCutoverJobs(Arrays.asList(responsesElement))
3203             .build();
3204     mockService.addResponse(expectedResponse);
3205 
3206     String parent =
3207         "projects/project-9743/locations/location-9743/sources/source-9743/migratingVms/migratingVm-9743";
3208 
3209     ListCutoverJobsPagedResponse pagedListResponse = client.listCutoverJobs(parent);
3210 
3211     List<CutoverJob> resources = Lists.newArrayList(pagedListResponse.iterateAll());
3212 
3213     Assert.assertEquals(1, resources.size());
3214     Assert.assertEquals(expectedResponse.getCutoverJobsList().get(0), resources.get(0));
3215 
3216     List<String> actualRequests = mockService.getRequestPaths();
3217     Assert.assertEquals(1, actualRequests.size());
3218 
3219     String apiClientHeaderKey =
3220         mockService
3221             .getRequestHeaders()
3222             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3223             .iterator()
3224             .next();
3225     Assert.assertTrue(
3226         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3227             .matcher(apiClientHeaderKey)
3228             .matches());
3229   }
3230 
3231   @Test
listCutoverJobsExceptionTest2()3232   public void listCutoverJobsExceptionTest2() throws Exception {
3233     ApiException exception =
3234         ApiExceptionFactory.createException(
3235             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3236     mockService.addException(exception);
3237 
3238     try {
3239       String parent =
3240           "projects/project-9743/locations/location-9743/sources/source-9743/migratingVms/migratingVm-9743";
3241       client.listCutoverJobs(parent);
3242       Assert.fail("No exception raised");
3243     } catch (InvalidArgumentException e) {
3244       // Expected exception.
3245     }
3246   }
3247 
3248   @Test
getCutoverJobTest()3249   public void getCutoverJobTest() throws Exception {
3250     CutoverJob expectedResponse =
3251         CutoverJob.newBuilder()
3252             .setCreateTime(Timestamp.newBuilder().build())
3253             .setEndTime(Timestamp.newBuilder().build())
3254             .setName(
3255                 CutoverJobName.of(
3256                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CUTOVER_JOB]")
3257                     .toString())
3258             .setStateTime(Timestamp.newBuilder().build())
3259             .setProgressPercent(-2137894861)
3260             .setError(Status.newBuilder().build())
3261             .setStateMessage("stateMessage1128185398")
3262             .addAllSteps(new ArrayList<CutoverStep>())
3263             .build();
3264     mockService.addResponse(expectedResponse);
3265 
3266     CutoverJobName name =
3267         CutoverJobName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CUTOVER_JOB]");
3268 
3269     CutoverJob actualResponse = client.getCutoverJob(name);
3270     Assert.assertEquals(expectedResponse, actualResponse);
3271 
3272     List<String> actualRequests = mockService.getRequestPaths();
3273     Assert.assertEquals(1, actualRequests.size());
3274 
3275     String apiClientHeaderKey =
3276         mockService
3277             .getRequestHeaders()
3278             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3279             .iterator()
3280             .next();
3281     Assert.assertTrue(
3282         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3283             .matcher(apiClientHeaderKey)
3284             .matches());
3285   }
3286 
3287   @Test
getCutoverJobExceptionTest()3288   public void getCutoverJobExceptionTest() throws Exception {
3289     ApiException exception =
3290         ApiExceptionFactory.createException(
3291             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3292     mockService.addException(exception);
3293 
3294     try {
3295       CutoverJobName name =
3296           CutoverJobName.of(
3297               "[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CUTOVER_JOB]");
3298       client.getCutoverJob(name);
3299       Assert.fail("No exception raised");
3300     } catch (InvalidArgumentException e) {
3301       // Expected exception.
3302     }
3303   }
3304 
3305   @Test
getCutoverJobTest2()3306   public void getCutoverJobTest2() throws Exception {
3307     CutoverJob expectedResponse =
3308         CutoverJob.newBuilder()
3309             .setCreateTime(Timestamp.newBuilder().build())
3310             .setEndTime(Timestamp.newBuilder().build())
3311             .setName(
3312                 CutoverJobName.of(
3313                         "[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[CUTOVER_JOB]")
3314                     .toString())
3315             .setStateTime(Timestamp.newBuilder().build())
3316             .setProgressPercent(-2137894861)
3317             .setError(Status.newBuilder().build())
3318             .setStateMessage("stateMessage1128185398")
3319             .addAllSteps(new ArrayList<CutoverStep>())
3320             .build();
3321     mockService.addResponse(expectedResponse);
3322 
3323     String name =
3324         "projects/project-7848/locations/location-7848/sources/source-7848/migratingVms/migratingVm-7848/cutoverJobs/cutoverJob-7848";
3325 
3326     CutoverJob actualResponse = client.getCutoverJob(name);
3327     Assert.assertEquals(expectedResponse, actualResponse);
3328 
3329     List<String> actualRequests = mockService.getRequestPaths();
3330     Assert.assertEquals(1, actualRequests.size());
3331 
3332     String apiClientHeaderKey =
3333         mockService
3334             .getRequestHeaders()
3335             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3336             .iterator()
3337             .next();
3338     Assert.assertTrue(
3339         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3340             .matcher(apiClientHeaderKey)
3341             .matches());
3342   }
3343 
3344   @Test
getCutoverJobExceptionTest2()3345   public void getCutoverJobExceptionTest2() throws Exception {
3346     ApiException exception =
3347         ApiExceptionFactory.createException(
3348             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3349     mockService.addException(exception);
3350 
3351     try {
3352       String name =
3353           "projects/project-7848/locations/location-7848/sources/source-7848/migratingVms/migratingVm-7848/cutoverJobs/cutoverJob-7848";
3354       client.getCutoverJob(name);
3355       Assert.fail("No exception raised");
3356     } catch (InvalidArgumentException e) {
3357       // Expected exception.
3358     }
3359   }
3360 
3361   @Test
listGroupsTest()3362   public void listGroupsTest() throws Exception {
3363     Group responsesElement = Group.newBuilder().build();
3364     ListGroupsResponse expectedResponse =
3365         ListGroupsResponse.newBuilder()
3366             .setNextPageToken("")
3367             .addAllGroups(Arrays.asList(responsesElement))
3368             .build();
3369     mockService.addResponse(expectedResponse);
3370 
3371     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
3372 
3373     ListGroupsPagedResponse pagedListResponse = client.listGroups(parent);
3374 
3375     List<Group> resources = Lists.newArrayList(pagedListResponse.iterateAll());
3376 
3377     Assert.assertEquals(1, resources.size());
3378     Assert.assertEquals(expectedResponse.getGroupsList().get(0), resources.get(0));
3379 
3380     List<String> actualRequests = mockService.getRequestPaths();
3381     Assert.assertEquals(1, actualRequests.size());
3382 
3383     String apiClientHeaderKey =
3384         mockService
3385             .getRequestHeaders()
3386             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3387             .iterator()
3388             .next();
3389     Assert.assertTrue(
3390         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3391             .matcher(apiClientHeaderKey)
3392             .matches());
3393   }
3394 
3395   @Test
listGroupsExceptionTest()3396   public void listGroupsExceptionTest() throws Exception {
3397     ApiException exception =
3398         ApiExceptionFactory.createException(
3399             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3400     mockService.addException(exception);
3401 
3402     try {
3403       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
3404       client.listGroups(parent);
3405       Assert.fail("No exception raised");
3406     } catch (InvalidArgumentException e) {
3407       // Expected exception.
3408     }
3409   }
3410 
3411   @Test
listGroupsTest2()3412   public void listGroupsTest2() throws Exception {
3413     Group responsesElement = Group.newBuilder().build();
3414     ListGroupsResponse expectedResponse =
3415         ListGroupsResponse.newBuilder()
3416             .setNextPageToken("")
3417             .addAllGroups(Arrays.asList(responsesElement))
3418             .build();
3419     mockService.addResponse(expectedResponse);
3420 
3421     String parent = "projects/project-5833/locations/location-5833";
3422 
3423     ListGroupsPagedResponse pagedListResponse = client.listGroups(parent);
3424 
3425     List<Group> resources = Lists.newArrayList(pagedListResponse.iterateAll());
3426 
3427     Assert.assertEquals(1, resources.size());
3428     Assert.assertEquals(expectedResponse.getGroupsList().get(0), resources.get(0));
3429 
3430     List<String> actualRequests = mockService.getRequestPaths();
3431     Assert.assertEquals(1, actualRequests.size());
3432 
3433     String apiClientHeaderKey =
3434         mockService
3435             .getRequestHeaders()
3436             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3437             .iterator()
3438             .next();
3439     Assert.assertTrue(
3440         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3441             .matcher(apiClientHeaderKey)
3442             .matches());
3443   }
3444 
3445   @Test
listGroupsExceptionTest2()3446   public void listGroupsExceptionTest2() throws Exception {
3447     ApiException exception =
3448         ApiExceptionFactory.createException(
3449             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3450     mockService.addException(exception);
3451 
3452     try {
3453       String parent = "projects/project-5833/locations/location-5833";
3454       client.listGroups(parent);
3455       Assert.fail("No exception raised");
3456     } catch (InvalidArgumentException e) {
3457       // Expected exception.
3458     }
3459   }
3460 
3461   @Test
getGroupTest()3462   public void getGroupTest() throws Exception {
3463     Group expectedResponse =
3464         Group.newBuilder()
3465             .setName(GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]").toString())
3466             .setCreateTime(Timestamp.newBuilder().build())
3467             .setUpdateTime(Timestamp.newBuilder().build())
3468             .setDescription("description-1724546052")
3469             .setDisplayName("displayName1714148973")
3470             .build();
3471     mockService.addResponse(expectedResponse);
3472 
3473     GroupName name = GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]");
3474 
3475     Group actualResponse = client.getGroup(name);
3476     Assert.assertEquals(expectedResponse, actualResponse);
3477 
3478     List<String> actualRequests = mockService.getRequestPaths();
3479     Assert.assertEquals(1, actualRequests.size());
3480 
3481     String apiClientHeaderKey =
3482         mockService
3483             .getRequestHeaders()
3484             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3485             .iterator()
3486             .next();
3487     Assert.assertTrue(
3488         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3489             .matcher(apiClientHeaderKey)
3490             .matches());
3491   }
3492 
3493   @Test
getGroupExceptionTest()3494   public void getGroupExceptionTest() throws Exception {
3495     ApiException exception =
3496         ApiExceptionFactory.createException(
3497             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3498     mockService.addException(exception);
3499 
3500     try {
3501       GroupName name = GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]");
3502       client.getGroup(name);
3503       Assert.fail("No exception raised");
3504     } catch (InvalidArgumentException e) {
3505       // Expected exception.
3506     }
3507   }
3508 
3509   @Test
getGroupTest2()3510   public void getGroupTest2() throws Exception {
3511     Group expectedResponse =
3512         Group.newBuilder()
3513             .setName(GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]").toString())
3514             .setCreateTime(Timestamp.newBuilder().build())
3515             .setUpdateTime(Timestamp.newBuilder().build())
3516             .setDescription("description-1724546052")
3517             .setDisplayName("displayName1714148973")
3518             .build();
3519     mockService.addResponse(expectedResponse);
3520 
3521     String name = "projects/project-7380/locations/location-7380/groups/group-7380";
3522 
3523     Group actualResponse = client.getGroup(name);
3524     Assert.assertEquals(expectedResponse, actualResponse);
3525 
3526     List<String> actualRequests = mockService.getRequestPaths();
3527     Assert.assertEquals(1, actualRequests.size());
3528 
3529     String apiClientHeaderKey =
3530         mockService
3531             .getRequestHeaders()
3532             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3533             .iterator()
3534             .next();
3535     Assert.assertTrue(
3536         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3537             .matcher(apiClientHeaderKey)
3538             .matches());
3539   }
3540 
3541   @Test
getGroupExceptionTest2()3542   public void getGroupExceptionTest2() throws Exception {
3543     ApiException exception =
3544         ApiExceptionFactory.createException(
3545             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3546     mockService.addException(exception);
3547 
3548     try {
3549       String name = "projects/project-7380/locations/location-7380/groups/group-7380";
3550       client.getGroup(name);
3551       Assert.fail("No exception raised");
3552     } catch (InvalidArgumentException e) {
3553       // Expected exception.
3554     }
3555   }
3556 
3557   @Test
createGroupTest()3558   public void createGroupTest() throws Exception {
3559     Group expectedResponse =
3560         Group.newBuilder()
3561             .setName(GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]").toString())
3562             .setCreateTime(Timestamp.newBuilder().build())
3563             .setUpdateTime(Timestamp.newBuilder().build())
3564             .setDescription("description-1724546052")
3565             .setDisplayName("displayName1714148973")
3566             .build();
3567     Operation resultOperation =
3568         Operation.newBuilder()
3569             .setName("createGroupTest")
3570             .setDone(true)
3571             .setResponse(Any.pack(expectedResponse))
3572             .build();
3573     mockService.addResponse(resultOperation);
3574 
3575     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
3576     Group group = Group.newBuilder().build();
3577     String groupId = "groupId293428218";
3578 
3579     Group actualResponse = client.createGroupAsync(parent, group, groupId).get();
3580     Assert.assertEquals(expectedResponse, actualResponse);
3581 
3582     List<String> actualRequests = mockService.getRequestPaths();
3583     Assert.assertEquals(1, actualRequests.size());
3584 
3585     String apiClientHeaderKey =
3586         mockService
3587             .getRequestHeaders()
3588             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3589             .iterator()
3590             .next();
3591     Assert.assertTrue(
3592         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3593             .matcher(apiClientHeaderKey)
3594             .matches());
3595   }
3596 
3597   @Test
createGroupExceptionTest()3598   public void createGroupExceptionTest() throws Exception {
3599     ApiException exception =
3600         ApiExceptionFactory.createException(
3601             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3602     mockService.addException(exception);
3603 
3604     try {
3605       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
3606       Group group = Group.newBuilder().build();
3607       String groupId = "groupId293428218";
3608       client.createGroupAsync(parent, group, groupId).get();
3609       Assert.fail("No exception raised");
3610     } catch (ExecutionException e) {
3611     }
3612   }
3613 
3614   @Test
createGroupTest2()3615   public void createGroupTest2() throws Exception {
3616     Group expectedResponse =
3617         Group.newBuilder()
3618             .setName(GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]").toString())
3619             .setCreateTime(Timestamp.newBuilder().build())
3620             .setUpdateTime(Timestamp.newBuilder().build())
3621             .setDescription("description-1724546052")
3622             .setDisplayName("displayName1714148973")
3623             .build();
3624     Operation resultOperation =
3625         Operation.newBuilder()
3626             .setName("createGroupTest")
3627             .setDone(true)
3628             .setResponse(Any.pack(expectedResponse))
3629             .build();
3630     mockService.addResponse(resultOperation);
3631 
3632     String parent = "projects/project-5833/locations/location-5833";
3633     Group group = Group.newBuilder().build();
3634     String groupId = "groupId293428218";
3635 
3636     Group actualResponse = client.createGroupAsync(parent, group, groupId).get();
3637     Assert.assertEquals(expectedResponse, actualResponse);
3638 
3639     List<String> actualRequests = mockService.getRequestPaths();
3640     Assert.assertEquals(1, actualRequests.size());
3641 
3642     String apiClientHeaderKey =
3643         mockService
3644             .getRequestHeaders()
3645             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3646             .iterator()
3647             .next();
3648     Assert.assertTrue(
3649         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3650             .matcher(apiClientHeaderKey)
3651             .matches());
3652   }
3653 
3654   @Test
createGroupExceptionTest2()3655   public void createGroupExceptionTest2() throws Exception {
3656     ApiException exception =
3657         ApiExceptionFactory.createException(
3658             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3659     mockService.addException(exception);
3660 
3661     try {
3662       String parent = "projects/project-5833/locations/location-5833";
3663       Group group = Group.newBuilder().build();
3664       String groupId = "groupId293428218";
3665       client.createGroupAsync(parent, group, groupId).get();
3666       Assert.fail("No exception raised");
3667     } catch (ExecutionException e) {
3668     }
3669   }
3670 
3671   @Test
updateGroupTest()3672   public void updateGroupTest() throws Exception {
3673     Group expectedResponse =
3674         Group.newBuilder()
3675             .setName(GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]").toString())
3676             .setCreateTime(Timestamp.newBuilder().build())
3677             .setUpdateTime(Timestamp.newBuilder().build())
3678             .setDescription("description-1724546052")
3679             .setDisplayName("displayName1714148973")
3680             .build();
3681     Operation resultOperation =
3682         Operation.newBuilder()
3683             .setName("updateGroupTest")
3684             .setDone(true)
3685             .setResponse(Any.pack(expectedResponse))
3686             .build();
3687     mockService.addResponse(resultOperation);
3688 
3689     Group group =
3690         Group.newBuilder()
3691             .setName(GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]").toString())
3692             .setCreateTime(Timestamp.newBuilder().build())
3693             .setUpdateTime(Timestamp.newBuilder().build())
3694             .setDescription("description-1724546052")
3695             .setDisplayName("displayName1714148973")
3696             .build();
3697     FieldMask updateMask = FieldMask.newBuilder().build();
3698 
3699     Group actualResponse = client.updateGroupAsync(group, updateMask).get();
3700     Assert.assertEquals(expectedResponse, actualResponse);
3701 
3702     List<String> actualRequests = mockService.getRequestPaths();
3703     Assert.assertEquals(1, actualRequests.size());
3704 
3705     String apiClientHeaderKey =
3706         mockService
3707             .getRequestHeaders()
3708             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3709             .iterator()
3710             .next();
3711     Assert.assertTrue(
3712         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3713             .matcher(apiClientHeaderKey)
3714             .matches());
3715   }
3716 
3717   @Test
updateGroupExceptionTest()3718   public void updateGroupExceptionTest() throws Exception {
3719     ApiException exception =
3720         ApiExceptionFactory.createException(
3721             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3722     mockService.addException(exception);
3723 
3724     try {
3725       Group group =
3726           Group.newBuilder()
3727               .setName(GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]").toString())
3728               .setCreateTime(Timestamp.newBuilder().build())
3729               .setUpdateTime(Timestamp.newBuilder().build())
3730               .setDescription("description-1724546052")
3731               .setDisplayName("displayName1714148973")
3732               .build();
3733       FieldMask updateMask = FieldMask.newBuilder().build();
3734       client.updateGroupAsync(group, updateMask).get();
3735       Assert.fail("No exception raised");
3736     } catch (ExecutionException e) {
3737     }
3738   }
3739 
3740   @Test
deleteGroupTest()3741   public void deleteGroupTest() throws Exception {
3742     Empty expectedResponse = Empty.newBuilder().build();
3743     Operation resultOperation =
3744         Operation.newBuilder()
3745             .setName("deleteGroupTest")
3746             .setDone(true)
3747             .setResponse(Any.pack(expectedResponse))
3748             .build();
3749     mockService.addResponse(resultOperation);
3750 
3751     GroupName name = GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]");
3752 
3753     client.deleteGroupAsync(name).get();
3754 
3755     List<String> actualRequests = mockService.getRequestPaths();
3756     Assert.assertEquals(1, actualRequests.size());
3757 
3758     String apiClientHeaderKey =
3759         mockService
3760             .getRequestHeaders()
3761             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3762             .iterator()
3763             .next();
3764     Assert.assertTrue(
3765         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3766             .matcher(apiClientHeaderKey)
3767             .matches());
3768   }
3769 
3770   @Test
deleteGroupExceptionTest()3771   public void deleteGroupExceptionTest() throws Exception {
3772     ApiException exception =
3773         ApiExceptionFactory.createException(
3774             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3775     mockService.addException(exception);
3776 
3777     try {
3778       GroupName name = GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]");
3779       client.deleteGroupAsync(name).get();
3780       Assert.fail("No exception raised");
3781     } catch (ExecutionException e) {
3782     }
3783   }
3784 
3785   @Test
deleteGroupTest2()3786   public void deleteGroupTest2() throws Exception {
3787     Empty expectedResponse = Empty.newBuilder().build();
3788     Operation resultOperation =
3789         Operation.newBuilder()
3790             .setName("deleteGroupTest")
3791             .setDone(true)
3792             .setResponse(Any.pack(expectedResponse))
3793             .build();
3794     mockService.addResponse(resultOperation);
3795 
3796     String name = "projects/project-7380/locations/location-7380/groups/group-7380";
3797 
3798     client.deleteGroupAsync(name).get();
3799 
3800     List<String> actualRequests = mockService.getRequestPaths();
3801     Assert.assertEquals(1, actualRequests.size());
3802 
3803     String apiClientHeaderKey =
3804         mockService
3805             .getRequestHeaders()
3806             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3807             .iterator()
3808             .next();
3809     Assert.assertTrue(
3810         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3811             .matcher(apiClientHeaderKey)
3812             .matches());
3813   }
3814 
3815   @Test
deleteGroupExceptionTest2()3816   public void deleteGroupExceptionTest2() throws Exception {
3817     ApiException exception =
3818         ApiExceptionFactory.createException(
3819             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3820     mockService.addException(exception);
3821 
3822     try {
3823       String name = "projects/project-7380/locations/location-7380/groups/group-7380";
3824       client.deleteGroupAsync(name).get();
3825       Assert.fail("No exception raised");
3826     } catch (ExecutionException e) {
3827     }
3828   }
3829 
3830   @Test
addGroupMigrationTest()3831   public void addGroupMigrationTest() throws Exception {
3832     AddGroupMigrationResponse expectedResponse = AddGroupMigrationResponse.newBuilder().build();
3833     Operation resultOperation =
3834         Operation.newBuilder()
3835             .setName("addGroupMigrationTest")
3836             .setDone(true)
3837             .setResponse(Any.pack(expectedResponse))
3838             .build();
3839     mockService.addResponse(resultOperation);
3840 
3841     GroupName group = GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]");
3842 
3843     AddGroupMigrationResponse actualResponse = client.addGroupMigrationAsync(group).get();
3844     Assert.assertEquals(expectedResponse, actualResponse);
3845 
3846     List<String> actualRequests = mockService.getRequestPaths();
3847     Assert.assertEquals(1, actualRequests.size());
3848 
3849     String apiClientHeaderKey =
3850         mockService
3851             .getRequestHeaders()
3852             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3853             .iterator()
3854             .next();
3855     Assert.assertTrue(
3856         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3857             .matcher(apiClientHeaderKey)
3858             .matches());
3859   }
3860 
3861   @Test
addGroupMigrationExceptionTest()3862   public void addGroupMigrationExceptionTest() throws Exception {
3863     ApiException exception =
3864         ApiExceptionFactory.createException(
3865             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3866     mockService.addException(exception);
3867 
3868     try {
3869       GroupName group = GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]");
3870       client.addGroupMigrationAsync(group).get();
3871       Assert.fail("No exception raised");
3872     } catch (ExecutionException e) {
3873     }
3874   }
3875 
3876   @Test
addGroupMigrationTest2()3877   public void addGroupMigrationTest2() throws Exception {
3878     AddGroupMigrationResponse expectedResponse = AddGroupMigrationResponse.newBuilder().build();
3879     Operation resultOperation =
3880         Operation.newBuilder()
3881             .setName("addGroupMigrationTest")
3882             .setDone(true)
3883             .setResponse(Any.pack(expectedResponse))
3884             .build();
3885     mockService.addResponse(resultOperation);
3886 
3887     String group = "projects/project-6176/locations/location-6176/groups/group-6176";
3888 
3889     AddGroupMigrationResponse actualResponse = client.addGroupMigrationAsync(group).get();
3890     Assert.assertEquals(expectedResponse, actualResponse);
3891 
3892     List<String> actualRequests = mockService.getRequestPaths();
3893     Assert.assertEquals(1, actualRequests.size());
3894 
3895     String apiClientHeaderKey =
3896         mockService
3897             .getRequestHeaders()
3898             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3899             .iterator()
3900             .next();
3901     Assert.assertTrue(
3902         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3903             .matcher(apiClientHeaderKey)
3904             .matches());
3905   }
3906 
3907   @Test
addGroupMigrationExceptionTest2()3908   public void addGroupMigrationExceptionTest2() throws Exception {
3909     ApiException exception =
3910         ApiExceptionFactory.createException(
3911             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3912     mockService.addException(exception);
3913 
3914     try {
3915       String group = "projects/project-6176/locations/location-6176/groups/group-6176";
3916       client.addGroupMigrationAsync(group).get();
3917       Assert.fail("No exception raised");
3918     } catch (ExecutionException e) {
3919     }
3920   }
3921 
3922   @Test
removeGroupMigrationTest()3923   public void removeGroupMigrationTest() throws Exception {
3924     RemoveGroupMigrationResponse expectedResponse =
3925         RemoveGroupMigrationResponse.newBuilder().build();
3926     Operation resultOperation =
3927         Operation.newBuilder()
3928             .setName("removeGroupMigrationTest")
3929             .setDone(true)
3930             .setResponse(Any.pack(expectedResponse))
3931             .build();
3932     mockService.addResponse(resultOperation);
3933 
3934     GroupName group = GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]");
3935 
3936     RemoveGroupMigrationResponse actualResponse = client.removeGroupMigrationAsync(group).get();
3937     Assert.assertEquals(expectedResponse, actualResponse);
3938 
3939     List<String> actualRequests = mockService.getRequestPaths();
3940     Assert.assertEquals(1, actualRequests.size());
3941 
3942     String apiClientHeaderKey =
3943         mockService
3944             .getRequestHeaders()
3945             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3946             .iterator()
3947             .next();
3948     Assert.assertTrue(
3949         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3950             .matcher(apiClientHeaderKey)
3951             .matches());
3952   }
3953 
3954   @Test
removeGroupMigrationExceptionTest()3955   public void removeGroupMigrationExceptionTest() throws Exception {
3956     ApiException exception =
3957         ApiExceptionFactory.createException(
3958             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
3959     mockService.addException(exception);
3960 
3961     try {
3962       GroupName group = GroupName.of("[PROJECT]", "[LOCATION]", "[GROUP]");
3963       client.removeGroupMigrationAsync(group).get();
3964       Assert.fail("No exception raised");
3965     } catch (ExecutionException e) {
3966     }
3967   }
3968 
3969   @Test
removeGroupMigrationTest2()3970   public void removeGroupMigrationTest2() throws Exception {
3971     RemoveGroupMigrationResponse expectedResponse =
3972         RemoveGroupMigrationResponse.newBuilder().build();
3973     Operation resultOperation =
3974         Operation.newBuilder()
3975             .setName("removeGroupMigrationTest")
3976             .setDone(true)
3977             .setResponse(Any.pack(expectedResponse))
3978             .build();
3979     mockService.addResponse(resultOperation);
3980 
3981     String group = "projects/project-6176/locations/location-6176/groups/group-6176";
3982 
3983     RemoveGroupMigrationResponse actualResponse = client.removeGroupMigrationAsync(group).get();
3984     Assert.assertEquals(expectedResponse, actualResponse);
3985 
3986     List<String> actualRequests = mockService.getRequestPaths();
3987     Assert.assertEquals(1, actualRequests.size());
3988 
3989     String apiClientHeaderKey =
3990         mockService
3991             .getRequestHeaders()
3992             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
3993             .iterator()
3994             .next();
3995     Assert.assertTrue(
3996         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
3997             .matcher(apiClientHeaderKey)
3998             .matches());
3999   }
4000 
4001   @Test
removeGroupMigrationExceptionTest2()4002   public void removeGroupMigrationExceptionTest2() throws Exception {
4003     ApiException exception =
4004         ApiExceptionFactory.createException(
4005             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4006     mockService.addException(exception);
4007 
4008     try {
4009       String group = "projects/project-6176/locations/location-6176/groups/group-6176";
4010       client.removeGroupMigrationAsync(group).get();
4011       Assert.fail("No exception raised");
4012     } catch (ExecutionException e) {
4013     }
4014   }
4015 
4016   @Test
listTargetProjectsTest()4017   public void listTargetProjectsTest() throws Exception {
4018     TargetProject responsesElement = TargetProject.newBuilder().build();
4019     ListTargetProjectsResponse expectedResponse =
4020         ListTargetProjectsResponse.newBuilder()
4021             .setNextPageToken("")
4022             .addAllTargetProjects(Arrays.asList(responsesElement))
4023             .build();
4024     mockService.addResponse(expectedResponse);
4025 
4026     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
4027 
4028     ListTargetProjectsPagedResponse pagedListResponse = client.listTargetProjects(parent);
4029 
4030     List<TargetProject> resources = Lists.newArrayList(pagedListResponse.iterateAll());
4031 
4032     Assert.assertEquals(1, resources.size());
4033     Assert.assertEquals(expectedResponse.getTargetProjectsList().get(0), resources.get(0));
4034 
4035     List<String> actualRequests = mockService.getRequestPaths();
4036     Assert.assertEquals(1, actualRequests.size());
4037 
4038     String apiClientHeaderKey =
4039         mockService
4040             .getRequestHeaders()
4041             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4042             .iterator()
4043             .next();
4044     Assert.assertTrue(
4045         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4046             .matcher(apiClientHeaderKey)
4047             .matches());
4048   }
4049 
4050   @Test
listTargetProjectsExceptionTest()4051   public void listTargetProjectsExceptionTest() throws Exception {
4052     ApiException exception =
4053         ApiExceptionFactory.createException(
4054             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4055     mockService.addException(exception);
4056 
4057     try {
4058       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
4059       client.listTargetProjects(parent);
4060       Assert.fail("No exception raised");
4061     } catch (InvalidArgumentException e) {
4062       // Expected exception.
4063     }
4064   }
4065 
4066   @Test
listTargetProjectsTest2()4067   public void listTargetProjectsTest2() throws Exception {
4068     TargetProject responsesElement = TargetProject.newBuilder().build();
4069     ListTargetProjectsResponse expectedResponse =
4070         ListTargetProjectsResponse.newBuilder()
4071             .setNextPageToken("")
4072             .addAllTargetProjects(Arrays.asList(responsesElement))
4073             .build();
4074     mockService.addResponse(expectedResponse);
4075 
4076     String parent = "projects/project-5833/locations/location-5833";
4077 
4078     ListTargetProjectsPagedResponse pagedListResponse = client.listTargetProjects(parent);
4079 
4080     List<TargetProject> resources = Lists.newArrayList(pagedListResponse.iterateAll());
4081 
4082     Assert.assertEquals(1, resources.size());
4083     Assert.assertEquals(expectedResponse.getTargetProjectsList().get(0), resources.get(0));
4084 
4085     List<String> actualRequests = mockService.getRequestPaths();
4086     Assert.assertEquals(1, actualRequests.size());
4087 
4088     String apiClientHeaderKey =
4089         mockService
4090             .getRequestHeaders()
4091             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4092             .iterator()
4093             .next();
4094     Assert.assertTrue(
4095         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4096             .matcher(apiClientHeaderKey)
4097             .matches());
4098   }
4099 
4100   @Test
listTargetProjectsExceptionTest2()4101   public void listTargetProjectsExceptionTest2() throws Exception {
4102     ApiException exception =
4103         ApiExceptionFactory.createException(
4104             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4105     mockService.addException(exception);
4106 
4107     try {
4108       String parent = "projects/project-5833/locations/location-5833";
4109       client.listTargetProjects(parent);
4110       Assert.fail("No exception raised");
4111     } catch (InvalidArgumentException e) {
4112       // Expected exception.
4113     }
4114   }
4115 
4116   @Test
getTargetProjectTest()4117   public void getTargetProjectTest() throws Exception {
4118     TargetProject expectedResponse =
4119         TargetProject.newBuilder()
4120             .setName(TargetProjectName.of("[PROJECT]", "[LOCATION]", "[TARGET_PROJECT]").toString())
4121             .setProject("project-309310695")
4122             .setDescription("description-1724546052")
4123             .setCreateTime(Timestamp.newBuilder().build())
4124             .setUpdateTime(Timestamp.newBuilder().build())
4125             .build();
4126     mockService.addResponse(expectedResponse);
4127 
4128     TargetProjectName name = TargetProjectName.of("[PROJECT]", "[LOCATION]", "[TARGET_PROJECT]");
4129 
4130     TargetProject actualResponse = client.getTargetProject(name);
4131     Assert.assertEquals(expectedResponse, actualResponse);
4132 
4133     List<String> actualRequests = mockService.getRequestPaths();
4134     Assert.assertEquals(1, actualRequests.size());
4135 
4136     String apiClientHeaderKey =
4137         mockService
4138             .getRequestHeaders()
4139             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4140             .iterator()
4141             .next();
4142     Assert.assertTrue(
4143         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4144             .matcher(apiClientHeaderKey)
4145             .matches());
4146   }
4147 
4148   @Test
getTargetProjectExceptionTest()4149   public void getTargetProjectExceptionTest() throws Exception {
4150     ApiException exception =
4151         ApiExceptionFactory.createException(
4152             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4153     mockService.addException(exception);
4154 
4155     try {
4156       TargetProjectName name = TargetProjectName.of("[PROJECT]", "[LOCATION]", "[TARGET_PROJECT]");
4157       client.getTargetProject(name);
4158       Assert.fail("No exception raised");
4159     } catch (InvalidArgumentException e) {
4160       // Expected exception.
4161     }
4162   }
4163 
4164   @Test
getTargetProjectTest2()4165   public void getTargetProjectTest2() throws Exception {
4166     TargetProject expectedResponse =
4167         TargetProject.newBuilder()
4168             .setName(TargetProjectName.of("[PROJECT]", "[LOCATION]", "[TARGET_PROJECT]").toString())
4169             .setProject("project-309310695")
4170             .setDescription("description-1724546052")
4171             .setCreateTime(Timestamp.newBuilder().build())
4172             .setUpdateTime(Timestamp.newBuilder().build())
4173             .build();
4174     mockService.addResponse(expectedResponse);
4175 
4176     String name = "projects/project-6267/locations/location-6267/targetProjects/targetProject-6267";
4177 
4178     TargetProject actualResponse = client.getTargetProject(name);
4179     Assert.assertEquals(expectedResponse, actualResponse);
4180 
4181     List<String> actualRequests = mockService.getRequestPaths();
4182     Assert.assertEquals(1, actualRequests.size());
4183 
4184     String apiClientHeaderKey =
4185         mockService
4186             .getRequestHeaders()
4187             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4188             .iterator()
4189             .next();
4190     Assert.assertTrue(
4191         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4192             .matcher(apiClientHeaderKey)
4193             .matches());
4194   }
4195 
4196   @Test
getTargetProjectExceptionTest2()4197   public void getTargetProjectExceptionTest2() throws Exception {
4198     ApiException exception =
4199         ApiExceptionFactory.createException(
4200             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4201     mockService.addException(exception);
4202 
4203     try {
4204       String name =
4205           "projects/project-6267/locations/location-6267/targetProjects/targetProject-6267";
4206       client.getTargetProject(name);
4207       Assert.fail("No exception raised");
4208     } catch (InvalidArgumentException e) {
4209       // Expected exception.
4210     }
4211   }
4212 
4213   @Test
createTargetProjectTest()4214   public void createTargetProjectTest() throws Exception {
4215     TargetProject expectedResponse =
4216         TargetProject.newBuilder()
4217             .setName(TargetProjectName.of("[PROJECT]", "[LOCATION]", "[TARGET_PROJECT]").toString())
4218             .setProject("project-309310695")
4219             .setDescription("description-1724546052")
4220             .setCreateTime(Timestamp.newBuilder().build())
4221             .setUpdateTime(Timestamp.newBuilder().build())
4222             .build();
4223     Operation resultOperation =
4224         Operation.newBuilder()
4225             .setName("createTargetProjectTest")
4226             .setDone(true)
4227             .setResponse(Any.pack(expectedResponse))
4228             .build();
4229     mockService.addResponse(resultOperation);
4230 
4231     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
4232     TargetProject targetProject = TargetProject.newBuilder().build();
4233     String targetProjectId = "targetProjectId1290130307";
4234 
4235     TargetProject actualResponse =
4236         client.createTargetProjectAsync(parent, targetProject, targetProjectId).get();
4237     Assert.assertEquals(expectedResponse, actualResponse);
4238 
4239     List<String> actualRequests = mockService.getRequestPaths();
4240     Assert.assertEquals(1, actualRequests.size());
4241 
4242     String apiClientHeaderKey =
4243         mockService
4244             .getRequestHeaders()
4245             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4246             .iterator()
4247             .next();
4248     Assert.assertTrue(
4249         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4250             .matcher(apiClientHeaderKey)
4251             .matches());
4252   }
4253 
4254   @Test
createTargetProjectExceptionTest()4255   public void createTargetProjectExceptionTest() throws Exception {
4256     ApiException exception =
4257         ApiExceptionFactory.createException(
4258             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4259     mockService.addException(exception);
4260 
4261     try {
4262       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
4263       TargetProject targetProject = TargetProject.newBuilder().build();
4264       String targetProjectId = "targetProjectId1290130307";
4265       client.createTargetProjectAsync(parent, targetProject, targetProjectId).get();
4266       Assert.fail("No exception raised");
4267     } catch (ExecutionException e) {
4268     }
4269   }
4270 
4271   @Test
createTargetProjectTest2()4272   public void createTargetProjectTest2() throws Exception {
4273     TargetProject expectedResponse =
4274         TargetProject.newBuilder()
4275             .setName(TargetProjectName.of("[PROJECT]", "[LOCATION]", "[TARGET_PROJECT]").toString())
4276             .setProject("project-309310695")
4277             .setDescription("description-1724546052")
4278             .setCreateTime(Timestamp.newBuilder().build())
4279             .setUpdateTime(Timestamp.newBuilder().build())
4280             .build();
4281     Operation resultOperation =
4282         Operation.newBuilder()
4283             .setName("createTargetProjectTest")
4284             .setDone(true)
4285             .setResponse(Any.pack(expectedResponse))
4286             .build();
4287     mockService.addResponse(resultOperation);
4288 
4289     String parent = "projects/project-5833/locations/location-5833";
4290     TargetProject targetProject = TargetProject.newBuilder().build();
4291     String targetProjectId = "targetProjectId1290130307";
4292 
4293     TargetProject actualResponse =
4294         client.createTargetProjectAsync(parent, targetProject, targetProjectId).get();
4295     Assert.assertEquals(expectedResponse, actualResponse);
4296 
4297     List<String> actualRequests = mockService.getRequestPaths();
4298     Assert.assertEquals(1, actualRequests.size());
4299 
4300     String apiClientHeaderKey =
4301         mockService
4302             .getRequestHeaders()
4303             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4304             .iterator()
4305             .next();
4306     Assert.assertTrue(
4307         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4308             .matcher(apiClientHeaderKey)
4309             .matches());
4310   }
4311 
4312   @Test
createTargetProjectExceptionTest2()4313   public void createTargetProjectExceptionTest2() throws Exception {
4314     ApiException exception =
4315         ApiExceptionFactory.createException(
4316             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4317     mockService.addException(exception);
4318 
4319     try {
4320       String parent = "projects/project-5833/locations/location-5833";
4321       TargetProject targetProject = TargetProject.newBuilder().build();
4322       String targetProjectId = "targetProjectId1290130307";
4323       client.createTargetProjectAsync(parent, targetProject, targetProjectId).get();
4324       Assert.fail("No exception raised");
4325     } catch (ExecutionException e) {
4326     }
4327   }
4328 
4329   @Test
updateTargetProjectTest()4330   public void updateTargetProjectTest() throws Exception {
4331     TargetProject expectedResponse =
4332         TargetProject.newBuilder()
4333             .setName(TargetProjectName.of("[PROJECT]", "[LOCATION]", "[TARGET_PROJECT]").toString())
4334             .setProject("project-309310695")
4335             .setDescription("description-1724546052")
4336             .setCreateTime(Timestamp.newBuilder().build())
4337             .setUpdateTime(Timestamp.newBuilder().build())
4338             .build();
4339     Operation resultOperation =
4340         Operation.newBuilder()
4341             .setName("updateTargetProjectTest")
4342             .setDone(true)
4343             .setResponse(Any.pack(expectedResponse))
4344             .build();
4345     mockService.addResponse(resultOperation);
4346 
4347     TargetProject targetProject =
4348         TargetProject.newBuilder()
4349             .setName(TargetProjectName.of("[PROJECT]", "[LOCATION]", "[TARGET_PROJECT]").toString())
4350             .setProject("project-309310695")
4351             .setDescription("description-1724546052")
4352             .setCreateTime(Timestamp.newBuilder().build())
4353             .setUpdateTime(Timestamp.newBuilder().build())
4354             .build();
4355     FieldMask updateMask = FieldMask.newBuilder().build();
4356 
4357     TargetProject actualResponse = client.updateTargetProjectAsync(targetProject, updateMask).get();
4358     Assert.assertEquals(expectedResponse, actualResponse);
4359 
4360     List<String> actualRequests = mockService.getRequestPaths();
4361     Assert.assertEquals(1, actualRequests.size());
4362 
4363     String apiClientHeaderKey =
4364         mockService
4365             .getRequestHeaders()
4366             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4367             .iterator()
4368             .next();
4369     Assert.assertTrue(
4370         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4371             .matcher(apiClientHeaderKey)
4372             .matches());
4373   }
4374 
4375   @Test
updateTargetProjectExceptionTest()4376   public void updateTargetProjectExceptionTest() throws Exception {
4377     ApiException exception =
4378         ApiExceptionFactory.createException(
4379             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4380     mockService.addException(exception);
4381 
4382     try {
4383       TargetProject targetProject =
4384           TargetProject.newBuilder()
4385               .setName(
4386                   TargetProjectName.of("[PROJECT]", "[LOCATION]", "[TARGET_PROJECT]").toString())
4387               .setProject("project-309310695")
4388               .setDescription("description-1724546052")
4389               .setCreateTime(Timestamp.newBuilder().build())
4390               .setUpdateTime(Timestamp.newBuilder().build())
4391               .build();
4392       FieldMask updateMask = FieldMask.newBuilder().build();
4393       client.updateTargetProjectAsync(targetProject, updateMask).get();
4394       Assert.fail("No exception raised");
4395     } catch (ExecutionException e) {
4396     }
4397   }
4398 
4399   @Test
deleteTargetProjectTest()4400   public void deleteTargetProjectTest() throws Exception {
4401     Empty expectedResponse = Empty.newBuilder().build();
4402     Operation resultOperation =
4403         Operation.newBuilder()
4404             .setName("deleteTargetProjectTest")
4405             .setDone(true)
4406             .setResponse(Any.pack(expectedResponse))
4407             .build();
4408     mockService.addResponse(resultOperation);
4409 
4410     TargetProjectName name = TargetProjectName.of("[PROJECT]", "[LOCATION]", "[TARGET_PROJECT]");
4411 
4412     client.deleteTargetProjectAsync(name).get();
4413 
4414     List<String> actualRequests = mockService.getRequestPaths();
4415     Assert.assertEquals(1, actualRequests.size());
4416 
4417     String apiClientHeaderKey =
4418         mockService
4419             .getRequestHeaders()
4420             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4421             .iterator()
4422             .next();
4423     Assert.assertTrue(
4424         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4425             .matcher(apiClientHeaderKey)
4426             .matches());
4427   }
4428 
4429   @Test
deleteTargetProjectExceptionTest()4430   public void deleteTargetProjectExceptionTest() throws Exception {
4431     ApiException exception =
4432         ApiExceptionFactory.createException(
4433             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4434     mockService.addException(exception);
4435 
4436     try {
4437       TargetProjectName name = TargetProjectName.of("[PROJECT]", "[LOCATION]", "[TARGET_PROJECT]");
4438       client.deleteTargetProjectAsync(name).get();
4439       Assert.fail("No exception raised");
4440     } catch (ExecutionException e) {
4441     }
4442   }
4443 
4444   @Test
deleteTargetProjectTest2()4445   public void deleteTargetProjectTest2() throws Exception {
4446     Empty expectedResponse = Empty.newBuilder().build();
4447     Operation resultOperation =
4448         Operation.newBuilder()
4449             .setName("deleteTargetProjectTest")
4450             .setDone(true)
4451             .setResponse(Any.pack(expectedResponse))
4452             .build();
4453     mockService.addResponse(resultOperation);
4454 
4455     String name = "projects/project-6267/locations/location-6267/targetProjects/targetProject-6267";
4456 
4457     client.deleteTargetProjectAsync(name).get();
4458 
4459     List<String> actualRequests = mockService.getRequestPaths();
4460     Assert.assertEquals(1, actualRequests.size());
4461 
4462     String apiClientHeaderKey =
4463         mockService
4464             .getRequestHeaders()
4465             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4466             .iterator()
4467             .next();
4468     Assert.assertTrue(
4469         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4470             .matcher(apiClientHeaderKey)
4471             .matches());
4472   }
4473 
4474   @Test
deleteTargetProjectExceptionTest2()4475   public void deleteTargetProjectExceptionTest2() throws Exception {
4476     ApiException exception =
4477         ApiExceptionFactory.createException(
4478             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4479     mockService.addException(exception);
4480 
4481     try {
4482       String name =
4483           "projects/project-6267/locations/location-6267/targetProjects/targetProject-6267";
4484       client.deleteTargetProjectAsync(name).get();
4485       Assert.fail("No exception raised");
4486     } catch (ExecutionException e) {
4487     }
4488   }
4489 
4490   @Test
listReplicationCyclesTest()4491   public void listReplicationCyclesTest() throws Exception {
4492     ReplicationCycle responsesElement = ReplicationCycle.newBuilder().build();
4493     ListReplicationCyclesResponse expectedResponse =
4494         ListReplicationCyclesResponse.newBuilder()
4495             .setNextPageToken("")
4496             .addAllReplicationCycles(Arrays.asList(responsesElement))
4497             .build();
4498     mockService.addResponse(expectedResponse);
4499 
4500     MigratingVmName parent =
4501         MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
4502 
4503     ListReplicationCyclesPagedResponse pagedListResponse = client.listReplicationCycles(parent);
4504 
4505     List<ReplicationCycle> resources = Lists.newArrayList(pagedListResponse.iterateAll());
4506 
4507     Assert.assertEquals(1, resources.size());
4508     Assert.assertEquals(expectedResponse.getReplicationCyclesList().get(0), resources.get(0));
4509 
4510     List<String> actualRequests = mockService.getRequestPaths();
4511     Assert.assertEquals(1, actualRequests.size());
4512 
4513     String apiClientHeaderKey =
4514         mockService
4515             .getRequestHeaders()
4516             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4517             .iterator()
4518             .next();
4519     Assert.assertTrue(
4520         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4521             .matcher(apiClientHeaderKey)
4522             .matches());
4523   }
4524 
4525   @Test
listReplicationCyclesExceptionTest()4526   public void listReplicationCyclesExceptionTest() throws Exception {
4527     ApiException exception =
4528         ApiExceptionFactory.createException(
4529             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4530     mockService.addException(exception);
4531 
4532     try {
4533       MigratingVmName parent =
4534           MigratingVmName.of("[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]");
4535       client.listReplicationCycles(parent);
4536       Assert.fail("No exception raised");
4537     } catch (InvalidArgumentException e) {
4538       // Expected exception.
4539     }
4540   }
4541 
4542   @Test
listReplicationCyclesTest2()4543   public void listReplicationCyclesTest2() throws Exception {
4544     ReplicationCycle responsesElement = ReplicationCycle.newBuilder().build();
4545     ListReplicationCyclesResponse expectedResponse =
4546         ListReplicationCyclesResponse.newBuilder()
4547             .setNextPageToken("")
4548             .addAllReplicationCycles(Arrays.asList(responsesElement))
4549             .build();
4550     mockService.addResponse(expectedResponse);
4551 
4552     String parent =
4553         "projects/project-9743/locations/location-9743/sources/source-9743/migratingVms/migratingVm-9743";
4554 
4555     ListReplicationCyclesPagedResponse pagedListResponse = client.listReplicationCycles(parent);
4556 
4557     List<ReplicationCycle> resources = Lists.newArrayList(pagedListResponse.iterateAll());
4558 
4559     Assert.assertEquals(1, resources.size());
4560     Assert.assertEquals(expectedResponse.getReplicationCyclesList().get(0), resources.get(0));
4561 
4562     List<String> actualRequests = mockService.getRequestPaths();
4563     Assert.assertEquals(1, actualRequests.size());
4564 
4565     String apiClientHeaderKey =
4566         mockService
4567             .getRequestHeaders()
4568             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4569             .iterator()
4570             .next();
4571     Assert.assertTrue(
4572         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4573             .matcher(apiClientHeaderKey)
4574             .matches());
4575   }
4576 
4577   @Test
listReplicationCyclesExceptionTest2()4578   public void listReplicationCyclesExceptionTest2() throws Exception {
4579     ApiException exception =
4580         ApiExceptionFactory.createException(
4581             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4582     mockService.addException(exception);
4583 
4584     try {
4585       String parent =
4586           "projects/project-9743/locations/location-9743/sources/source-9743/migratingVms/migratingVm-9743";
4587       client.listReplicationCycles(parent);
4588       Assert.fail("No exception raised");
4589     } catch (InvalidArgumentException e) {
4590       // Expected exception.
4591     }
4592   }
4593 
4594   @Test
getReplicationCycleTest()4595   public void getReplicationCycleTest() throws Exception {
4596     ReplicationCycle expectedResponse =
4597         ReplicationCycle.newBuilder()
4598             .setName(
4599                 ReplicationCycleName.of(
4600                         "[PROJECT]",
4601                         "[LOCATION]",
4602                         "[SOURCE]",
4603                         "[MIGRATING_VM]",
4604                         "[REPLICATION_CYCLE]")
4605                     .toString())
4606             .setCycleNumber(-1095724862)
4607             .setStartTime(Timestamp.newBuilder().build())
4608             .setEndTime(Timestamp.newBuilder().build())
4609             .setTotalPauseDuration(Duration.newBuilder().build())
4610             .setProgressPercent(-2137894861)
4611             .addAllSteps(new ArrayList<CycleStep>())
4612             .setError(Status.newBuilder().build())
4613             .build();
4614     mockService.addResponse(expectedResponse);
4615 
4616     ReplicationCycleName name =
4617         ReplicationCycleName.of(
4618             "[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[REPLICATION_CYCLE]");
4619 
4620     ReplicationCycle actualResponse = client.getReplicationCycle(name);
4621     Assert.assertEquals(expectedResponse, actualResponse);
4622 
4623     List<String> actualRequests = mockService.getRequestPaths();
4624     Assert.assertEquals(1, actualRequests.size());
4625 
4626     String apiClientHeaderKey =
4627         mockService
4628             .getRequestHeaders()
4629             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4630             .iterator()
4631             .next();
4632     Assert.assertTrue(
4633         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4634             .matcher(apiClientHeaderKey)
4635             .matches());
4636   }
4637 
4638   @Test
getReplicationCycleExceptionTest()4639   public void getReplicationCycleExceptionTest() throws Exception {
4640     ApiException exception =
4641         ApiExceptionFactory.createException(
4642             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4643     mockService.addException(exception);
4644 
4645     try {
4646       ReplicationCycleName name =
4647           ReplicationCycleName.of(
4648               "[PROJECT]", "[LOCATION]", "[SOURCE]", "[MIGRATING_VM]", "[REPLICATION_CYCLE]");
4649       client.getReplicationCycle(name);
4650       Assert.fail("No exception raised");
4651     } catch (InvalidArgumentException e) {
4652       // Expected exception.
4653     }
4654   }
4655 
4656   @Test
getReplicationCycleTest2()4657   public void getReplicationCycleTest2() throws Exception {
4658     ReplicationCycle expectedResponse =
4659         ReplicationCycle.newBuilder()
4660             .setName(
4661                 ReplicationCycleName.of(
4662                         "[PROJECT]",
4663                         "[LOCATION]",
4664                         "[SOURCE]",
4665                         "[MIGRATING_VM]",
4666                         "[REPLICATION_CYCLE]")
4667                     .toString())
4668             .setCycleNumber(-1095724862)
4669             .setStartTime(Timestamp.newBuilder().build())
4670             .setEndTime(Timestamp.newBuilder().build())
4671             .setTotalPauseDuration(Duration.newBuilder().build())
4672             .setProgressPercent(-2137894861)
4673             .addAllSteps(new ArrayList<CycleStep>())
4674             .setError(Status.newBuilder().build())
4675             .build();
4676     mockService.addResponse(expectedResponse);
4677 
4678     String name =
4679         "projects/project-9819/locations/location-9819/sources/source-9819/migratingVms/migratingVm-9819/replicationCycles/replicationCycle-9819";
4680 
4681     ReplicationCycle actualResponse = client.getReplicationCycle(name);
4682     Assert.assertEquals(expectedResponse, actualResponse);
4683 
4684     List<String> actualRequests = mockService.getRequestPaths();
4685     Assert.assertEquals(1, actualRequests.size());
4686 
4687     String apiClientHeaderKey =
4688         mockService
4689             .getRequestHeaders()
4690             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4691             .iterator()
4692             .next();
4693     Assert.assertTrue(
4694         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4695             .matcher(apiClientHeaderKey)
4696             .matches());
4697   }
4698 
4699   @Test
getReplicationCycleExceptionTest2()4700   public void getReplicationCycleExceptionTest2() throws Exception {
4701     ApiException exception =
4702         ApiExceptionFactory.createException(
4703             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4704     mockService.addException(exception);
4705 
4706     try {
4707       String name =
4708           "projects/project-9819/locations/location-9819/sources/source-9819/migratingVms/migratingVm-9819/replicationCycles/replicationCycle-9819";
4709       client.getReplicationCycle(name);
4710       Assert.fail("No exception raised");
4711     } catch (InvalidArgumentException e) {
4712       // Expected exception.
4713     }
4714   }
4715 
4716   @Test
listLocationsTest()4717   public void listLocationsTest() throws Exception {
4718     Location responsesElement = Location.newBuilder().build();
4719     ListLocationsResponse expectedResponse =
4720         ListLocationsResponse.newBuilder()
4721             .setNextPageToken("")
4722             .addAllLocations(Arrays.asList(responsesElement))
4723             .build();
4724     mockService.addResponse(expectedResponse);
4725 
4726     ListLocationsRequest request =
4727         ListLocationsRequest.newBuilder()
4728             .setName("projects/project-3664")
4729             .setFilter("filter-1274492040")
4730             .setPageSize(883849137)
4731             .setPageToken("pageToken873572522")
4732             .build();
4733 
4734     ListLocationsPagedResponse pagedListResponse = client.listLocations(request);
4735 
4736     List<Location> resources = Lists.newArrayList(pagedListResponse.iterateAll());
4737 
4738     Assert.assertEquals(1, resources.size());
4739     Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0));
4740 
4741     List<String> actualRequests = mockService.getRequestPaths();
4742     Assert.assertEquals(1, actualRequests.size());
4743 
4744     String apiClientHeaderKey =
4745         mockService
4746             .getRequestHeaders()
4747             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4748             .iterator()
4749             .next();
4750     Assert.assertTrue(
4751         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4752             .matcher(apiClientHeaderKey)
4753             .matches());
4754   }
4755 
4756   @Test
listLocationsExceptionTest()4757   public void listLocationsExceptionTest() throws Exception {
4758     ApiException exception =
4759         ApiExceptionFactory.createException(
4760             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4761     mockService.addException(exception);
4762 
4763     try {
4764       ListLocationsRequest request =
4765           ListLocationsRequest.newBuilder()
4766               .setName("projects/project-3664")
4767               .setFilter("filter-1274492040")
4768               .setPageSize(883849137)
4769               .setPageToken("pageToken873572522")
4770               .build();
4771       client.listLocations(request);
4772       Assert.fail("No exception raised");
4773     } catch (InvalidArgumentException e) {
4774       // Expected exception.
4775     }
4776   }
4777 
4778   @Test
getLocationTest()4779   public void getLocationTest() throws Exception {
4780     Location expectedResponse =
4781         Location.newBuilder()
4782             .setName("name3373707")
4783             .setLocationId("locationId1541836720")
4784             .setDisplayName("displayName1714148973")
4785             .putAllLabels(new HashMap<String, String>())
4786             .setMetadata(Any.newBuilder().build())
4787             .build();
4788     mockService.addResponse(expectedResponse);
4789 
4790     GetLocationRequest request =
4791         GetLocationRequest.newBuilder()
4792             .setName("projects/project-9062/locations/location-9062")
4793             .build();
4794 
4795     Location actualResponse = client.getLocation(request);
4796     Assert.assertEquals(expectedResponse, actualResponse);
4797 
4798     List<String> actualRequests = mockService.getRequestPaths();
4799     Assert.assertEquals(1, actualRequests.size());
4800 
4801     String apiClientHeaderKey =
4802         mockService
4803             .getRequestHeaders()
4804             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
4805             .iterator()
4806             .next();
4807     Assert.assertTrue(
4808         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
4809             .matcher(apiClientHeaderKey)
4810             .matches());
4811   }
4812 
4813   @Test
getLocationExceptionTest()4814   public void getLocationExceptionTest() throws Exception {
4815     ApiException exception =
4816         ApiExceptionFactory.createException(
4817             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
4818     mockService.addException(exception);
4819 
4820     try {
4821       GetLocationRequest request =
4822           GetLocationRequest.newBuilder()
4823               .setName("projects/project-9062/locations/location-9062")
4824               .build();
4825       client.getLocation(request);
4826       Assert.fail("No exception raised");
4827     } catch (InvalidArgumentException e) {
4828       // Expected exception.
4829     }
4830   }
4831 }
4832