• 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.compute.v1;
18 
19 import static com.google.cloud.compute.v1.InstanceGroupsClient.AggregatedListPagedResponse;
20 import static com.google.cloud.compute.v1.InstanceGroupsClient.ListInstancesPagedResponse;
21 import static com.google.cloud.compute.v1.InstanceGroupsClient.ListPagedResponse;
22 
23 import com.google.api.gax.core.NoCredentialsProvider;
24 import com.google.api.gax.httpjson.GaxHttpJsonProperties;
25 import com.google.api.gax.httpjson.testing.MockHttpService;
26 import com.google.api.gax.rpc.ApiClientHeaderProvider;
27 import com.google.api.gax.rpc.ApiException;
28 import com.google.api.gax.rpc.ApiExceptionFactory;
29 import com.google.api.gax.rpc.InvalidArgumentException;
30 import com.google.api.gax.rpc.StatusCode;
31 import com.google.api.gax.rpc.testing.FakeStatusCode;
32 import com.google.cloud.compute.v1.Operation.Status;
33 import com.google.cloud.compute.v1.stub.HttpJsonInstanceGroupsStub;
34 import com.google.common.collect.Lists;
35 import java.io.IOException;
36 import java.util.ArrayList;
37 import java.util.Arrays;
38 import java.util.Collections;
39 import java.util.List;
40 import java.util.Map;
41 import java.util.concurrent.ExecutionException;
42 import javax.annotation.Generated;
43 import org.junit.After;
44 import org.junit.AfterClass;
45 import org.junit.Assert;
46 import org.junit.Before;
47 import org.junit.BeforeClass;
48 import org.junit.Test;
49 
50 @Generated("by gapic-generator-java")
51 public class InstanceGroupsClientTest {
52   private static MockHttpService mockService;
53   private static InstanceGroupsClient client;
54 
55   @BeforeClass
startStaticServer()56   public static void startStaticServer() throws IOException {
57     mockService =
58         new MockHttpService(
59             HttpJsonInstanceGroupsStub.getMethodDescriptors(),
60             InstanceGroupsSettings.getDefaultEndpoint());
61     InstanceGroupsSettings settings =
62         InstanceGroupsSettings.newBuilder()
63             .setTransportChannelProvider(
64                 InstanceGroupsSettings.defaultHttpJsonTransportProviderBuilder()
65                     .setHttpTransport(mockService)
66                     .build())
67             .setCredentialsProvider(NoCredentialsProvider.create())
68             .build();
69     client = InstanceGroupsClient.create(settings);
70   }
71 
72   @AfterClass
stopServer()73   public static void stopServer() {
74     client.close();
75   }
76 
77   @Before
setUp()78   public void setUp() {}
79 
80   @After
tearDown()81   public void tearDown() throws Exception {
82     mockService.reset();
83   }
84 
85   @Test
addInstancesTest()86   public void addInstancesTest() throws Exception {
87     Operation expectedResponse =
88         Operation.newBuilder()
89             .setClientOperationId("clientOperationId-1230366697")
90             .setCreationTimestamp("creationTimestamp-370203401")
91             .setDescription("description-1724546052")
92             .setEndTime("endTime-1607243192")
93             .setError(Error.newBuilder().build())
94             .setHttpErrorMessage("httpErrorMessage1577303431")
95             .setHttpErrorStatusCode(0)
96             .setId(3355)
97             .setInsertTime("insertTime966165798")
98             .setKind("kind3292052")
99             .setName("name3373707")
100             .setOperationGroupId("operationGroupId1716161683")
101             .setOperationType("operationType91999553")
102             .setProgress(-1001078227)
103             .setRegion("region-934795532")
104             .setSelfLink("selfLink1191800166")
105             .setStartTime("startTime-2129294769")
106             .setStatus(Status.DONE)
107             .setStatusMessage("statusMessage-958704715")
108             .setTargetId(-815576439)
109             .setTargetLink("targetLink486368555")
110             .setUser("user3599307")
111             .addAllWarnings(new ArrayList<Warnings>())
112             .setZone("zone3744684")
113             .build();
114     mockService.addResponse(expectedResponse);
115 
116     String project = "project-6911";
117     String zone = "zone-5246";
118     String instanceGroup = "instanceGroup-9472";
119     InstanceGroupsAddInstancesRequest instanceGroupsAddInstancesRequestResource =
120         InstanceGroupsAddInstancesRequest.newBuilder().build();
121 
122     Operation actualResponse =
123         client
124             .addInstancesAsync(
125                 project, zone, instanceGroup, instanceGroupsAddInstancesRequestResource)
126             .get();
127     Assert.assertEquals(expectedResponse, actualResponse);
128 
129     List<String> actualRequests = mockService.getRequestPaths();
130     Assert.assertEquals(1, actualRequests.size());
131 
132     String apiClientHeaderKey =
133         mockService
134             .getRequestHeaders()
135             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
136             .iterator()
137             .next();
138     Assert.assertTrue(
139         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
140             .matcher(apiClientHeaderKey)
141             .matches());
142   }
143 
144   @Test
addInstancesExceptionTest()145   public void addInstancesExceptionTest() throws Exception {
146     ApiException exception =
147         ApiExceptionFactory.createException(
148             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
149     mockService.addException(exception);
150 
151     try {
152       String project = "project-6911";
153       String zone = "zone-5246";
154       String instanceGroup = "instanceGroup-9472";
155       InstanceGroupsAddInstancesRequest instanceGroupsAddInstancesRequestResource =
156           InstanceGroupsAddInstancesRequest.newBuilder().build();
157       client
158           .addInstancesAsync(
159               project, zone, instanceGroup, instanceGroupsAddInstancesRequestResource)
160           .get();
161       Assert.fail("No exception raised");
162     } catch (ExecutionException e) {
163     }
164   }
165 
166   @Test
aggregatedListTest()167   public void aggregatedListTest() throws Exception {
168     InstanceGroupsScopedList responsesElement = InstanceGroupsScopedList.newBuilder().build();
169     InstanceGroupAggregatedList expectedResponse =
170         InstanceGroupAggregatedList.newBuilder()
171             .setNextPageToken("")
172             .putAllItems(Collections.singletonMap("items", responsesElement))
173             .build();
174     mockService.addResponse(expectedResponse);
175 
176     String project = "project-6911";
177 
178     AggregatedListPagedResponse pagedListResponse = client.aggregatedList(project);
179 
180     List<Map.Entry<String, InstanceGroupsScopedList>> resources =
181         Lists.newArrayList(pagedListResponse.iterateAll());
182 
183     Assert.assertEquals(1, resources.size());
184     Assert.assertEquals(
185         expectedResponse.getItemsMap().entrySet().iterator().next(), resources.get(0));
186 
187     List<String> actualRequests = mockService.getRequestPaths();
188     Assert.assertEquals(1, actualRequests.size());
189 
190     String apiClientHeaderKey =
191         mockService
192             .getRequestHeaders()
193             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
194             .iterator()
195             .next();
196     Assert.assertTrue(
197         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
198             .matcher(apiClientHeaderKey)
199             .matches());
200   }
201 
202   @Test
aggregatedListExceptionTest()203   public void aggregatedListExceptionTest() throws Exception {
204     ApiException exception =
205         ApiExceptionFactory.createException(
206             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
207     mockService.addException(exception);
208 
209     try {
210       String project = "project-6911";
211       client.aggregatedList(project);
212       Assert.fail("No exception raised");
213     } catch (InvalidArgumentException e) {
214       // Expected exception.
215     }
216   }
217 
218   @Test
deleteTest()219   public void deleteTest() throws Exception {
220     Operation expectedResponse =
221         Operation.newBuilder()
222             .setClientOperationId("clientOperationId-1230366697")
223             .setCreationTimestamp("creationTimestamp-370203401")
224             .setDescription("description-1724546052")
225             .setEndTime("endTime-1607243192")
226             .setError(Error.newBuilder().build())
227             .setHttpErrorMessage("httpErrorMessage1577303431")
228             .setHttpErrorStatusCode(0)
229             .setId(3355)
230             .setInsertTime("insertTime966165798")
231             .setKind("kind3292052")
232             .setName("name3373707")
233             .setOperationGroupId("operationGroupId1716161683")
234             .setOperationType("operationType91999553")
235             .setProgress(-1001078227)
236             .setRegion("region-934795532")
237             .setSelfLink("selfLink1191800166")
238             .setStartTime("startTime-2129294769")
239             .setStatus(Status.DONE)
240             .setStatusMessage("statusMessage-958704715")
241             .setTargetId(-815576439)
242             .setTargetLink("targetLink486368555")
243             .setUser("user3599307")
244             .addAllWarnings(new ArrayList<Warnings>())
245             .setZone("zone3744684")
246             .build();
247     mockService.addResponse(expectedResponse);
248 
249     String project = "project-6911";
250     String zone = "zone-5246";
251     String instanceGroup = "instanceGroup-9472";
252 
253     Operation actualResponse = client.deleteAsync(project, zone, instanceGroup).get();
254     Assert.assertEquals(expectedResponse, actualResponse);
255 
256     List<String> actualRequests = mockService.getRequestPaths();
257     Assert.assertEquals(1, actualRequests.size());
258 
259     String apiClientHeaderKey =
260         mockService
261             .getRequestHeaders()
262             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
263             .iterator()
264             .next();
265     Assert.assertTrue(
266         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
267             .matcher(apiClientHeaderKey)
268             .matches());
269   }
270 
271   @Test
deleteExceptionTest()272   public void deleteExceptionTest() throws Exception {
273     ApiException exception =
274         ApiExceptionFactory.createException(
275             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
276     mockService.addException(exception);
277 
278     try {
279       String project = "project-6911";
280       String zone = "zone-5246";
281       String instanceGroup = "instanceGroup-9472";
282       client.deleteAsync(project, zone, instanceGroup).get();
283       Assert.fail("No exception raised");
284     } catch (ExecutionException e) {
285     }
286   }
287 
288   @Test
getTest()289   public void getTest() throws Exception {
290     InstanceGroup expectedResponse =
291         InstanceGroup.newBuilder()
292             .setCreationTimestamp("creationTimestamp-370203401")
293             .setDescription("description-1724546052")
294             .setFingerprint("fingerprint-1375934236")
295             .setId(3355)
296             .setKind("kind3292052")
297             .setName("name3373707")
298             .addAllNamedPorts(new ArrayList<NamedPort>())
299             .setNetwork("network1843485230")
300             .setRegion("region-934795532")
301             .setSelfLink("selfLink1191800166")
302             .setSize(3530753)
303             .setSubnetwork("subnetwork-1302785042")
304             .setZone("zone3744684")
305             .build();
306     mockService.addResponse(expectedResponse);
307 
308     String project = "project-6911";
309     String zone = "zone-5246";
310     String instanceGroup = "instanceGroup-9472";
311 
312     InstanceGroup actualResponse = client.get(project, zone, instanceGroup);
313     Assert.assertEquals(expectedResponse, actualResponse);
314 
315     List<String> actualRequests = mockService.getRequestPaths();
316     Assert.assertEquals(1, actualRequests.size());
317 
318     String apiClientHeaderKey =
319         mockService
320             .getRequestHeaders()
321             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
322             .iterator()
323             .next();
324     Assert.assertTrue(
325         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
326             .matcher(apiClientHeaderKey)
327             .matches());
328   }
329 
330   @Test
getExceptionTest()331   public void getExceptionTest() throws Exception {
332     ApiException exception =
333         ApiExceptionFactory.createException(
334             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
335     mockService.addException(exception);
336 
337     try {
338       String project = "project-6911";
339       String zone = "zone-5246";
340       String instanceGroup = "instanceGroup-9472";
341       client.get(project, zone, instanceGroup);
342       Assert.fail("No exception raised");
343     } catch (InvalidArgumentException e) {
344       // Expected exception.
345     }
346   }
347 
348   @Test
insertTest()349   public void insertTest() throws Exception {
350     Operation expectedResponse =
351         Operation.newBuilder()
352             .setClientOperationId("clientOperationId-1230366697")
353             .setCreationTimestamp("creationTimestamp-370203401")
354             .setDescription("description-1724546052")
355             .setEndTime("endTime-1607243192")
356             .setError(Error.newBuilder().build())
357             .setHttpErrorMessage("httpErrorMessage1577303431")
358             .setHttpErrorStatusCode(0)
359             .setId(3355)
360             .setInsertTime("insertTime966165798")
361             .setKind("kind3292052")
362             .setName("name3373707")
363             .setOperationGroupId("operationGroupId1716161683")
364             .setOperationType("operationType91999553")
365             .setProgress(-1001078227)
366             .setRegion("region-934795532")
367             .setSelfLink("selfLink1191800166")
368             .setStartTime("startTime-2129294769")
369             .setStatus(Status.DONE)
370             .setStatusMessage("statusMessage-958704715")
371             .setTargetId(-815576439)
372             .setTargetLink("targetLink486368555")
373             .setUser("user3599307")
374             .addAllWarnings(new ArrayList<Warnings>())
375             .setZone("zone3744684")
376             .build();
377     mockService.addResponse(expectedResponse);
378 
379     String project = "project-6911";
380     String zone = "zone-5246";
381     InstanceGroup instanceGroupResource = InstanceGroup.newBuilder().build();
382 
383     Operation actualResponse = client.insertAsync(project, zone, instanceGroupResource).get();
384     Assert.assertEquals(expectedResponse, actualResponse);
385 
386     List<String> actualRequests = mockService.getRequestPaths();
387     Assert.assertEquals(1, actualRequests.size());
388 
389     String apiClientHeaderKey =
390         mockService
391             .getRequestHeaders()
392             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
393             .iterator()
394             .next();
395     Assert.assertTrue(
396         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
397             .matcher(apiClientHeaderKey)
398             .matches());
399   }
400 
401   @Test
insertExceptionTest()402   public void insertExceptionTest() throws Exception {
403     ApiException exception =
404         ApiExceptionFactory.createException(
405             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
406     mockService.addException(exception);
407 
408     try {
409       String project = "project-6911";
410       String zone = "zone-5246";
411       InstanceGroup instanceGroupResource = InstanceGroup.newBuilder().build();
412       client.insertAsync(project, zone, instanceGroupResource).get();
413       Assert.fail("No exception raised");
414     } catch (ExecutionException e) {
415     }
416   }
417 
418   @Test
listTest()419   public void listTest() throws Exception {
420     InstanceGroup responsesElement = InstanceGroup.newBuilder().build();
421     InstanceGroupList expectedResponse =
422         InstanceGroupList.newBuilder()
423             .setNextPageToken("")
424             .addAllItems(Arrays.asList(responsesElement))
425             .build();
426     mockService.addResponse(expectedResponse);
427 
428     String project = "project-6911";
429     String zone = "zone-5246";
430 
431     ListPagedResponse pagedListResponse = client.list(project, zone);
432 
433     List<InstanceGroup> resources = Lists.newArrayList(pagedListResponse.iterateAll());
434 
435     Assert.assertEquals(1, resources.size());
436     Assert.assertEquals(expectedResponse.getItemsList().get(0), resources.get(0));
437 
438     List<String> actualRequests = mockService.getRequestPaths();
439     Assert.assertEquals(1, actualRequests.size());
440 
441     String apiClientHeaderKey =
442         mockService
443             .getRequestHeaders()
444             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
445             .iterator()
446             .next();
447     Assert.assertTrue(
448         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
449             .matcher(apiClientHeaderKey)
450             .matches());
451   }
452 
453   @Test
listExceptionTest()454   public void listExceptionTest() throws Exception {
455     ApiException exception =
456         ApiExceptionFactory.createException(
457             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
458     mockService.addException(exception);
459 
460     try {
461       String project = "project-6911";
462       String zone = "zone-5246";
463       client.list(project, zone);
464       Assert.fail("No exception raised");
465     } catch (InvalidArgumentException e) {
466       // Expected exception.
467     }
468   }
469 
470   @Test
listInstancesTest()471   public void listInstancesTest() throws Exception {
472     InstanceWithNamedPorts responsesElement = InstanceWithNamedPorts.newBuilder().build();
473     InstanceGroupsListInstances expectedResponse =
474         InstanceGroupsListInstances.newBuilder()
475             .setNextPageToken("")
476             .addAllItems(Arrays.asList(responsesElement))
477             .build();
478     mockService.addResponse(expectedResponse);
479 
480     String project = "project-6911";
481     String zone = "zone-5246";
482     String instanceGroup = "instanceGroup-9472";
483     InstanceGroupsListInstancesRequest instanceGroupsListInstancesRequestResource =
484         InstanceGroupsListInstancesRequest.newBuilder().build();
485 
486     ListInstancesPagedResponse pagedListResponse =
487         client.listInstances(
488             project, zone, instanceGroup, instanceGroupsListInstancesRequestResource);
489 
490     List<InstanceWithNamedPorts> resources = Lists.newArrayList(pagedListResponse.iterateAll());
491 
492     Assert.assertEquals(1, resources.size());
493     Assert.assertEquals(expectedResponse.getItemsList().get(0), resources.get(0));
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
listInstancesExceptionTest()511   public void listInstancesExceptionTest() 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       String project = "project-6911";
519       String zone = "zone-5246";
520       String instanceGroup = "instanceGroup-9472";
521       InstanceGroupsListInstancesRequest instanceGroupsListInstancesRequestResource =
522           InstanceGroupsListInstancesRequest.newBuilder().build();
523       client.listInstances(
524           project, zone, instanceGroup, instanceGroupsListInstancesRequestResource);
525       Assert.fail("No exception raised");
526     } catch (InvalidArgumentException e) {
527       // Expected exception.
528     }
529   }
530 
531   @Test
removeInstancesTest()532   public void removeInstancesTest() throws Exception {
533     Operation expectedResponse =
534         Operation.newBuilder()
535             .setClientOperationId("clientOperationId-1230366697")
536             .setCreationTimestamp("creationTimestamp-370203401")
537             .setDescription("description-1724546052")
538             .setEndTime("endTime-1607243192")
539             .setError(Error.newBuilder().build())
540             .setHttpErrorMessage("httpErrorMessage1577303431")
541             .setHttpErrorStatusCode(0)
542             .setId(3355)
543             .setInsertTime("insertTime966165798")
544             .setKind("kind3292052")
545             .setName("name3373707")
546             .setOperationGroupId("operationGroupId1716161683")
547             .setOperationType("operationType91999553")
548             .setProgress(-1001078227)
549             .setRegion("region-934795532")
550             .setSelfLink("selfLink1191800166")
551             .setStartTime("startTime-2129294769")
552             .setStatus(Status.DONE)
553             .setStatusMessage("statusMessage-958704715")
554             .setTargetId(-815576439)
555             .setTargetLink("targetLink486368555")
556             .setUser("user3599307")
557             .addAllWarnings(new ArrayList<Warnings>())
558             .setZone("zone3744684")
559             .build();
560     mockService.addResponse(expectedResponse);
561 
562     String project = "project-6911";
563     String zone = "zone-5246";
564     String instanceGroup = "instanceGroup-9472";
565     InstanceGroupsRemoveInstancesRequest instanceGroupsRemoveInstancesRequestResource =
566         InstanceGroupsRemoveInstancesRequest.newBuilder().build();
567 
568     Operation actualResponse =
569         client
570             .removeInstancesAsync(
571                 project, zone, instanceGroup, instanceGroupsRemoveInstancesRequestResource)
572             .get();
573     Assert.assertEquals(expectedResponse, actualResponse);
574 
575     List<String> actualRequests = mockService.getRequestPaths();
576     Assert.assertEquals(1, actualRequests.size());
577 
578     String apiClientHeaderKey =
579         mockService
580             .getRequestHeaders()
581             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
582             .iterator()
583             .next();
584     Assert.assertTrue(
585         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
586             .matcher(apiClientHeaderKey)
587             .matches());
588   }
589 
590   @Test
removeInstancesExceptionTest()591   public void removeInstancesExceptionTest() throws Exception {
592     ApiException exception =
593         ApiExceptionFactory.createException(
594             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
595     mockService.addException(exception);
596 
597     try {
598       String project = "project-6911";
599       String zone = "zone-5246";
600       String instanceGroup = "instanceGroup-9472";
601       InstanceGroupsRemoveInstancesRequest instanceGroupsRemoveInstancesRequestResource =
602           InstanceGroupsRemoveInstancesRequest.newBuilder().build();
603       client
604           .removeInstancesAsync(
605               project, zone, instanceGroup, instanceGroupsRemoveInstancesRequestResource)
606           .get();
607       Assert.fail("No exception raised");
608     } catch (ExecutionException e) {
609     }
610   }
611 
612   @Test
setNamedPortsTest()613   public void setNamedPortsTest() throws Exception {
614     Operation expectedResponse =
615         Operation.newBuilder()
616             .setClientOperationId("clientOperationId-1230366697")
617             .setCreationTimestamp("creationTimestamp-370203401")
618             .setDescription("description-1724546052")
619             .setEndTime("endTime-1607243192")
620             .setError(Error.newBuilder().build())
621             .setHttpErrorMessage("httpErrorMessage1577303431")
622             .setHttpErrorStatusCode(0)
623             .setId(3355)
624             .setInsertTime("insertTime966165798")
625             .setKind("kind3292052")
626             .setName("name3373707")
627             .setOperationGroupId("operationGroupId1716161683")
628             .setOperationType("operationType91999553")
629             .setProgress(-1001078227)
630             .setRegion("region-934795532")
631             .setSelfLink("selfLink1191800166")
632             .setStartTime("startTime-2129294769")
633             .setStatus(Status.DONE)
634             .setStatusMessage("statusMessage-958704715")
635             .setTargetId(-815576439)
636             .setTargetLink("targetLink486368555")
637             .setUser("user3599307")
638             .addAllWarnings(new ArrayList<Warnings>())
639             .setZone("zone3744684")
640             .build();
641     mockService.addResponse(expectedResponse);
642 
643     String project = "project-6911";
644     String zone = "zone-5246";
645     String instanceGroup = "instanceGroup-9472";
646     InstanceGroupsSetNamedPortsRequest instanceGroupsSetNamedPortsRequestResource =
647         InstanceGroupsSetNamedPortsRequest.newBuilder().build();
648 
649     Operation actualResponse =
650         client
651             .setNamedPortsAsync(
652                 project, zone, instanceGroup, instanceGroupsSetNamedPortsRequestResource)
653             .get();
654     Assert.assertEquals(expectedResponse, actualResponse);
655 
656     List<String> actualRequests = mockService.getRequestPaths();
657     Assert.assertEquals(1, actualRequests.size());
658 
659     String apiClientHeaderKey =
660         mockService
661             .getRequestHeaders()
662             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
663             .iterator()
664             .next();
665     Assert.assertTrue(
666         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
667             .matcher(apiClientHeaderKey)
668             .matches());
669   }
670 
671   @Test
setNamedPortsExceptionTest()672   public void setNamedPortsExceptionTest() throws Exception {
673     ApiException exception =
674         ApiExceptionFactory.createException(
675             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
676     mockService.addException(exception);
677 
678     try {
679       String project = "project-6911";
680       String zone = "zone-5246";
681       String instanceGroup = "instanceGroup-9472";
682       InstanceGroupsSetNamedPortsRequest instanceGroupsSetNamedPortsRequestResource =
683           InstanceGroupsSetNamedPortsRequest.newBuilder().build();
684       client
685           .setNamedPortsAsync(
686               project, zone, instanceGroup, instanceGroupsSetNamedPortsRequestResource)
687           .get();
688       Assert.fail("No exception raised");
689     } catch (ExecutionException e) {
690     }
691   }
692 }
693