• 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.aiplatform.v1;
18 
19 import static com.google.cloud.aiplatform.v1.SpecialistPoolServiceClient.ListLocationsPagedResponse;
20 import static com.google.cloud.aiplatform.v1.SpecialistPoolServiceClient.ListSpecialistPoolsPagedResponse;
21 
22 import com.google.api.gax.core.NoCredentialsProvider;
23 import com.google.api.gax.grpc.GaxGrpcProperties;
24 import com.google.api.gax.grpc.testing.LocalChannelProvider;
25 import com.google.api.gax.grpc.testing.MockGrpcService;
26 import com.google.api.gax.grpc.testing.MockServiceHelper;
27 import com.google.api.gax.rpc.ApiClientHeaderProvider;
28 import com.google.api.gax.rpc.InvalidArgumentException;
29 import com.google.api.gax.rpc.StatusCode;
30 import com.google.cloud.location.GetLocationRequest;
31 import com.google.cloud.location.ListLocationsRequest;
32 import com.google.cloud.location.ListLocationsResponse;
33 import com.google.cloud.location.Location;
34 import com.google.common.collect.Lists;
35 import com.google.iam.v1.AuditConfig;
36 import com.google.iam.v1.Binding;
37 import com.google.iam.v1.GetIamPolicyRequest;
38 import com.google.iam.v1.GetPolicyOptions;
39 import com.google.iam.v1.Policy;
40 import com.google.iam.v1.SetIamPolicyRequest;
41 import com.google.iam.v1.TestIamPermissionsRequest;
42 import com.google.iam.v1.TestIamPermissionsResponse;
43 import com.google.longrunning.Operation;
44 import com.google.protobuf.AbstractMessage;
45 import com.google.protobuf.Any;
46 import com.google.protobuf.ByteString;
47 import com.google.protobuf.Empty;
48 import com.google.protobuf.FieldMask;
49 import io.grpc.StatusRuntimeException;
50 import java.io.IOException;
51 import java.util.ArrayList;
52 import java.util.Arrays;
53 import java.util.HashMap;
54 import java.util.List;
55 import java.util.UUID;
56 import java.util.concurrent.ExecutionException;
57 import javax.annotation.Generated;
58 import org.junit.After;
59 import org.junit.AfterClass;
60 import org.junit.Assert;
61 import org.junit.Before;
62 import org.junit.BeforeClass;
63 import org.junit.Test;
64 
65 @Generated("by gapic-generator-java")
66 public class SpecialistPoolServiceClientTest {
67   private static MockIAMPolicy mockIAMPolicy;
68   private static MockLocations mockLocations;
69   private static MockServiceHelper mockServiceHelper;
70   private static MockSpecialistPoolService mockSpecialistPoolService;
71   private LocalChannelProvider channelProvider;
72   private SpecialistPoolServiceClient client;
73 
74   @BeforeClass
startStaticServer()75   public static void startStaticServer() {
76     mockSpecialistPoolService = new MockSpecialistPoolService();
77     mockLocations = new MockLocations();
78     mockIAMPolicy = new MockIAMPolicy();
79     mockServiceHelper =
80         new MockServiceHelper(
81             UUID.randomUUID().toString(),
82             Arrays.<MockGrpcService>asList(
83                 mockSpecialistPoolService, mockLocations, mockIAMPolicy));
84     mockServiceHelper.start();
85   }
86 
87   @AfterClass
stopServer()88   public static void stopServer() {
89     mockServiceHelper.stop();
90   }
91 
92   @Before
setUp()93   public void setUp() throws IOException {
94     mockServiceHelper.reset();
95     channelProvider = mockServiceHelper.createChannelProvider();
96     SpecialistPoolServiceSettings settings =
97         SpecialistPoolServiceSettings.newBuilder()
98             .setTransportChannelProvider(channelProvider)
99             .setCredentialsProvider(NoCredentialsProvider.create())
100             .build();
101     client = SpecialistPoolServiceClient.create(settings);
102   }
103 
104   @After
tearDown()105   public void tearDown() throws Exception {
106     client.close();
107   }
108 
109   @Test
createSpecialistPoolTest()110   public void createSpecialistPoolTest() throws Exception {
111     SpecialistPool expectedResponse =
112         SpecialistPool.newBuilder()
113             .setName(
114                 SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]").toString())
115             .setDisplayName("displayName1714148973")
116             .setSpecialistManagersCount(-984151356)
117             .addAllSpecialistManagerEmails(new ArrayList<String>())
118             .addAllPendingDataLabelingJobs(new ArrayList<String>())
119             .addAllSpecialistWorkerEmails(new ArrayList<String>())
120             .build();
121     Operation resultOperation =
122         Operation.newBuilder()
123             .setName("createSpecialistPoolTest")
124             .setDone(true)
125             .setResponse(Any.pack(expectedResponse))
126             .build();
127     mockSpecialistPoolService.addResponse(resultOperation);
128 
129     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
130     SpecialistPool specialistPool = SpecialistPool.newBuilder().build();
131 
132     SpecialistPool actualResponse = client.createSpecialistPoolAsync(parent, specialistPool).get();
133     Assert.assertEquals(expectedResponse, actualResponse);
134 
135     List<AbstractMessage> actualRequests = mockSpecialistPoolService.getRequests();
136     Assert.assertEquals(1, actualRequests.size());
137     CreateSpecialistPoolRequest actualRequest =
138         ((CreateSpecialistPoolRequest) actualRequests.get(0));
139 
140     Assert.assertEquals(parent.toString(), actualRequest.getParent());
141     Assert.assertEquals(specialistPool, actualRequest.getSpecialistPool());
142     Assert.assertTrue(
143         channelProvider.isHeaderSent(
144             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
145             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
146   }
147 
148   @Test
createSpecialistPoolExceptionTest()149   public void createSpecialistPoolExceptionTest() throws Exception {
150     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
151     mockSpecialistPoolService.addException(exception);
152 
153     try {
154       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
155       SpecialistPool specialistPool = SpecialistPool.newBuilder().build();
156       client.createSpecialistPoolAsync(parent, specialistPool).get();
157       Assert.fail("No exception raised");
158     } catch (ExecutionException e) {
159       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
160       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
161       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
162     }
163   }
164 
165   @Test
createSpecialistPoolTest2()166   public void createSpecialistPoolTest2() throws Exception {
167     SpecialistPool expectedResponse =
168         SpecialistPool.newBuilder()
169             .setName(
170                 SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]").toString())
171             .setDisplayName("displayName1714148973")
172             .setSpecialistManagersCount(-984151356)
173             .addAllSpecialistManagerEmails(new ArrayList<String>())
174             .addAllPendingDataLabelingJobs(new ArrayList<String>())
175             .addAllSpecialistWorkerEmails(new ArrayList<String>())
176             .build();
177     Operation resultOperation =
178         Operation.newBuilder()
179             .setName("createSpecialistPoolTest")
180             .setDone(true)
181             .setResponse(Any.pack(expectedResponse))
182             .build();
183     mockSpecialistPoolService.addResponse(resultOperation);
184 
185     String parent = "parent-995424086";
186     SpecialistPool specialistPool = SpecialistPool.newBuilder().build();
187 
188     SpecialistPool actualResponse = client.createSpecialistPoolAsync(parent, specialistPool).get();
189     Assert.assertEquals(expectedResponse, actualResponse);
190 
191     List<AbstractMessage> actualRequests = mockSpecialistPoolService.getRequests();
192     Assert.assertEquals(1, actualRequests.size());
193     CreateSpecialistPoolRequest actualRequest =
194         ((CreateSpecialistPoolRequest) actualRequests.get(0));
195 
196     Assert.assertEquals(parent, actualRequest.getParent());
197     Assert.assertEquals(specialistPool, actualRequest.getSpecialistPool());
198     Assert.assertTrue(
199         channelProvider.isHeaderSent(
200             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
201             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
202   }
203 
204   @Test
createSpecialistPoolExceptionTest2()205   public void createSpecialistPoolExceptionTest2() throws Exception {
206     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
207     mockSpecialistPoolService.addException(exception);
208 
209     try {
210       String parent = "parent-995424086";
211       SpecialistPool specialistPool = SpecialistPool.newBuilder().build();
212       client.createSpecialistPoolAsync(parent, specialistPool).get();
213       Assert.fail("No exception raised");
214     } catch (ExecutionException e) {
215       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
216       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
217       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
218     }
219   }
220 
221   @Test
getSpecialistPoolTest()222   public void getSpecialistPoolTest() throws Exception {
223     SpecialistPool expectedResponse =
224         SpecialistPool.newBuilder()
225             .setName(
226                 SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]").toString())
227             .setDisplayName("displayName1714148973")
228             .setSpecialistManagersCount(-984151356)
229             .addAllSpecialistManagerEmails(new ArrayList<String>())
230             .addAllPendingDataLabelingJobs(new ArrayList<String>())
231             .addAllSpecialistWorkerEmails(new ArrayList<String>())
232             .build();
233     mockSpecialistPoolService.addResponse(expectedResponse);
234 
235     SpecialistPoolName name = SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]");
236 
237     SpecialistPool actualResponse = client.getSpecialistPool(name);
238     Assert.assertEquals(expectedResponse, actualResponse);
239 
240     List<AbstractMessage> actualRequests = mockSpecialistPoolService.getRequests();
241     Assert.assertEquals(1, actualRequests.size());
242     GetSpecialistPoolRequest actualRequest = ((GetSpecialistPoolRequest) actualRequests.get(0));
243 
244     Assert.assertEquals(name.toString(), actualRequest.getName());
245     Assert.assertTrue(
246         channelProvider.isHeaderSent(
247             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
248             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
249   }
250 
251   @Test
getSpecialistPoolExceptionTest()252   public void getSpecialistPoolExceptionTest() throws Exception {
253     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
254     mockSpecialistPoolService.addException(exception);
255 
256     try {
257       SpecialistPoolName name =
258           SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]");
259       client.getSpecialistPool(name);
260       Assert.fail("No exception raised");
261     } catch (InvalidArgumentException e) {
262       // Expected exception.
263     }
264   }
265 
266   @Test
getSpecialistPoolTest2()267   public void getSpecialistPoolTest2() throws Exception {
268     SpecialistPool expectedResponse =
269         SpecialistPool.newBuilder()
270             .setName(
271                 SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]").toString())
272             .setDisplayName("displayName1714148973")
273             .setSpecialistManagersCount(-984151356)
274             .addAllSpecialistManagerEmails(new ArrayList<String>())
275             .addAllPendingDataLabelingJobs(new ArrayList<String>())
276             .addAllSpecialistWorkerEmails(new ArrayList<String>())
277             .build();
278     mockSpecialistPoolService.addResponse(expectedResponse);
279 
280     String name = "name3373707";
281 
282     SpecialistPool actualResponse = client.getSpecialistPool(name);
283     Assert.assertEquals(expectedResponse, actualResponse);
284 
285     List<AbstractMessage> actualRequests = mockSpecialistPoolService.getRequests();
286     Assert.assertEquals(1, actualRequests.size());
287     GetSpecialistPoolRequest actualRequest = ((GetSpecialistPoolRequest) actualRequests.get(0));
288 
289     Assert.assertEquals(name, actualRequest.getName());
290     Assert.assertTrue(
291         channelProvider.isHeaderSent(
292             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
293             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
294   }
295 
296   @Test
getSpecialistPoolExceptionTest2()297   public void getSpecialistPoolExceptionTest2() throws Exception {
298     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
299     mockSpecialistPoolService.addException(exception);
300 
301     try {
302       String name = "name3373707";
303       client.getSpecialistPool(name);
304       Assert.fail("No exception raised");
305     } catch (InvalidArgumentException e) {
306       // Expected exception.
307     }
308   }
309 
310   @Test
listSpecialistPoolsTest()311   public void listSpecialistPoolsTest() throws Exception {
312     SpecialistPool responsesElement = SpecialistPool.newBuilder().build();
313     ListSpecialistPoolsResponse expectedResponse =
314         ListSpecialistPoolsResponse.newBuilder()
315             .setNextPageToken("")
316             .addAllSpecialistPools(Arrays.asList(responsesElement))
317             .build();
318     mockSpecialistPoolService.addResponse(expectedResponse);
319 
320     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
321 
322     ListSpecialistPoolsPagedResponse pagedListResponse = client.listSpecialistPools(parent);
323 
324     List<SpecialistPool> resources = Lists.newArrayList(pagedListResponse.iterateAll());
325 
326     Assert.assertEquals(1, resources.size());
327     Assert.assertEquals(expectedResponse.getSpecialistPoolsList().get(0), resources.get(0));
328 
329     List<AbstractMessage> actualRequests = mockSpecialistPoolService.getRequests();
330     Assert.assertEquals(1, actualRequests.size());
331     ListSpecialistPoolsRequest actualRequest = ((ListSpecialistPoolsRequest) actualRequests.get(0));
332 
333     Assert.assertEquals(parent.toString(), actualRequest.getParent());
334     Assert.assertTrue(
335         channelProvider.isHeaderSent(
336             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
337             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
338   }
339 
340   @Test
listSpecialistPoolsExceptionTest()341   public void listSpecialistPoolsExceptionTest() throws Exception {
342     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
343     mockSpecialistPoolService.addException(exception);
344 
345     try {
346       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
347       client.listSpecialistPools(parent);
348       Assert.fail("No exception raised");
349     } catch (InvalidArgumentException e) {
350       // Expected exception.
351     }
352   }
353 
354   @Test
listSpecialistPoolsTest2()355   public void listSpecialistPoolsTest2() throws Exception {
356     SpecialistPool responsesElement = SpecialistPool.newBuilder().build();
357     ListSpecialistPoolsResponse expectedResponse =
358         ListSpecialistPoolsResponse.newBuilder()
359             .setNextPageToken("")
360             .addAllSpecialistPools(Arrays.asList(responsesElement))
361             .build();
362     mockSpecialistPoolService.addResponse(expectedResponse);
363 
364     String parent = "parent-995424086";
365 
366     ListSpecialistPoolsPagedResponse pagedListResponse = client.listSpecialistPools(parent);
367 
368     List<SpecialistPool> resources = Lists.newArrayList(pagedListResponse.iterateAll());
369 
370     Assert.assertEquals(1, resources.size());
371     Assert.assertEquals(expectedResponse.getSpecialistPoolsList().get(0), resources.get(0));
372 
373     List<AbstractMessage> actualRequests = mockSpecialistPoolService.getRequests();
374     Assert.assertEquals(1, actualRequests.size());
375     ListSpecialistPoolsRequest actualRequest = ((ListSpecialistPoolsRequest) actualRequests.get(0));
376 
377     Assert.assertEquals(parent, actualRequest.getParent());
378     Assert.assertTrue(
379         channelProvider.isHeaderSent(
380             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
381             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
382   }
383 
384   @Test
listSpecialistPoolsExceptionTest2()385   public void listSpecialistPoolsExceptionTest2() throws Exception {
386     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
387     mockSpecialistPoolService.addException(exception);
388 
389     try {
390       String parent = "parent-995424086";
391       client.listSpecialistPools(parent);
392       Assert.fail("No exception raised");
393     } catch (InvalidArgumentException e) {
394       // Expected exception.
395     }
396   }
397 
398   @Test
deleteSpecialistPoolTest()399   public void deleteSpecialistPoolTest() throws Exception {
400     Empty expectedResponse = Empty.newBuilder().build();
401     Operation resultOperation =
402         Operation.newBuilder()
403             .setName("deleteSpecialistPoolTest")
404             .setDone(true)
405             .setResponse(Any.pack(expectedResponse))
406             .build();
407     mockSpecialistPoolService.addResponse(resultOperation);
408 
409     SpecialistPoolName name = SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]");
410 
411     client.deleteSpecialistPoolAsync(name).get();
412 
413     List<AbstractMessage> actualRequests = mockSpecialistPoolService.getRequests();
414     Assert.assertEquals(1, actualRequests.size());
415     DeleteSpecialistPoolRequest actualRequest =
416         ((DeleteSpecialistPoolRequest) actualRequests.get(0));
417 
418     Assert.assertEquals(name.toString(), actualRequest.getName());
419     Assert.assertTrue(
420         channelProvider.isHeaderSent(
421             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
422             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
423   }
424 
425   @Test
deleteSpecialistPoolExceptionTest()426   public void deleteSpecialistPoolExceptionTest() throws Exception {
427     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
428     mockSpecialistPoolService.addException(exception);
429 
430     try {
431       SpecialistPoolName name =
432           SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]");
433       client.deleteSpecialistPoolAsync(name).get();
434       Assert.fail("No exception raised");
435     } catch (ExecutionException e) {
436       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
437       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
438       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
439     }
440   }
441 
442   @Test
deleteSpecialistPoolTest2()443   public void deleteSpecialistPoolTest2() throws Exception {
444     Empty expectedResponse = Empty.newBuilder().build();
445     Operation resultOperation =
446         Operation.newBuilder()
447             .setName("deleteSpecialistPoolTest")
448             .setDone(true)
449             .setResponse(Any.pack(expectedResponse))
450             .build();
451     mockSpecialistPoolService.addResponse(resultOperation);
452 
453     String name = "name3373707";
454 
455     client.deleteSpecialistPoolAsync(name).get();
456 
457     List<AbstractMessage> actualRequests = mockSpecialistPoolService.getRequests();
458     Assert.assertEquals(1, actualRequests.size());
459     DeleteSpecialistPoolRequest actualRequest =
460         ((DeleteSpecialistPoolRequest) actualRequests.get(0));
461 
462     Assert.assertEquals(name, actualRequest.getName());
463     Assert.assertTrue(
464         channelProvider.isHeaderSent(
465             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
466             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
467   }
468 
469   @Test
deleteSpecialistPoolExceptionTest2()470   public void deleteSpecialistPoolExceptionTest2() throws Exception {
471     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
472     mockSpecialistPoolService.addException(exception);
473 
474     try {
475       String name = "name3373707";
476       client.deleteSpecialistPoolAsync(name).get();
477       Assert.fail("No exception raised");
478     } catch (ExecutionException e) {
479       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
480       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
481       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
482     }
483   }
484 
485   @Test
updateSpecialistPoolTest()486   public void updateSpecialistPoolTest() throws Exception {
487     SpecialistPool expectedResponse =
488         SpecialistPool.newBuilder()
489             .setName(
490                 SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]").toString())
491             .setDisplayName("displayName1714148973")
492             .setSpecialistManagersCount(-984151356)
493             .addAllSpecialistManagerEmails(new ArrayList<String>())
494             .addAllPendingDataLabelingJobs(new ArrayList<String>())
495             .addAllSpecialistWorkerEmails(new ArrayList<String>())
496             .build();
497     Operation resultOperation =
498         Operation.newBuilder()
499             .setName("updateSpecialistPoolTest")
500             .setDone(true)
501             .setResponse(Any.pack(expectedResponse))
502             .build();
503     mockSpecialistPoolService.addResponse(resultOperation);
504 
505     SpecialistPool specialistPool = SpecialistPool.newBuilder().build();
506     FieldMask updateMask = FieldMask.newBuilder().build();
507 
508     SpecialistPool actualResponse =
509         client.updateSpecialistPoolAsync(specialistPool, updateMask).get();
510     Assert.assertEquals(expectedResponse, actualResponse);
511 
512     List<AbstractMessage> actualRequests = mockSpecialistPoolService.getRequests();
513     Assert.assertEquals(1, actualRequests.size());
514     UpdateSpecialistPoolRequest actualRequest =
515         ((UpdateSpecialistPoolRequest) actualRequests.get(0));
516 
517     Assert.assertEquals(specialistPool, actualRequest.getSpecialistPool());
518     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
519     Assert.assertTrue(
520         channelProvider.isHeaderSent(
521             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
522             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
523   }
524 
525   @Test
updateSpecialistPoolExceptionTest()526   public void updateSpecialistPoolExceptionTest() throws Exception {
527     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
528     mockSpecialistPoolService.addException(exception);
529 
530     try {
531       SpecialistPool specialistPool = SpecialistPool.newBuilder().build();
532       FieldMask updateMask = FieldMask.newBuilder().build();
533       client.updateSpecialistPoolAsync(specialistPool, updateMask).get();
534       Assert.fail("No exception raised");
535     } catch (ExecutionException e) {
536       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
537       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
538       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
539     }
540   }
541 
542   @Test
listLocationsTest()543   public void listLocationsTest() throws Exception {
544     Location responsesElement = Location.newBuilder().build();
545     ListLocationsResponse expectedResponse =
546         ListLocationsResponse.newBuilder()
547             .setNextPageToken("")
548             .addAllLocations(Arrays.asList(responsesElement))
549             .build();
550     mockLocations.addResponse(expectedResponse);
551 
552     ListLocationsRequest request =
553         ListLocationsRequest.newBuilder()
554             .setName("name3373707")
555             .setFilter("filter-1274492040")
556             .setPageSize(883849137)
557             .setPageToken("pageToken873572522")
558             .build();
559 
560     ListLocationsPagedResponse pagedListResponse = client.listLocations(request);
561 
562     List<Location> resources = Lists.newArrayList(pagedListResponse.iterateAll());
563 
564     Assert.assertEquals(1, resources.size());
565     Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0));
566 
567     List<AbstractMessage> actualRequests = mockLocations.getRequests();
568     Assert.assertEquals(1, actualRequests.size());
569     ListLocationsRequest actualRequest = ((ListLocationsRequest) actualRequests.get(0));
570 
571     Assert.assertEquals(request.getName(), actualRequest.getName());
572     Assert.assertEquals(request.getFilter(), actualRequest.getFilter());
573     Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize());
574     Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken());
575     Assert.assertTrue(
576         channelProvider.isHeaderSent(
577             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
578             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
579   }
580 
581   @Test
listLocationsExceptionTest()582   public void listLocationsExceptionTest() throws Exception {
583     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
584     mockLocations.addException(exception);
585 
586     try {
587       ListLocationsRequest request =
588           ListLocationsRequest.newBuilder()
589               .setName("name3373707")
590               .setFilter("filter-1274492040")
591               .setPageSize(883849137)
592               .setPageToken("pageToken873572522")
593               .build();
594       client.listLocations(request);
595       Assert.fail("No exception raised");
596     } catch (InvalidArgumentException e) {
597       // Expected exception.
598     }
599   }
600 
601   @Test
getLocationTest()602   public void getLocationTest() throws Exception {
603     Location expectedResponse =
604         Location.newBuilder()
605             .setName("name3373707")
606             .setLocationId("locationId1541836720")
607             .setDisplayName("displayName1714148973")
608             .putAllLabels(new HashMap<String, String>())
609             .setMetadata(Any.newBuilder().build())
610             .build();
611     mockLocations.addResponse(expectedResponse);
612 
613     GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
614 
615     Location actualResponse = client.getLocation(request);
616     Assert.assertEquals(expectedResponse, actualResponse);
617 
618     List<AbstractMessage> actualRequests = mockLocations.getRequests();
619     Assert.assertEquals(1, actualRequests.size());
620     GetLocationRequest actualRequest = ((GetLocationRequest) actualRequests.get(0));
621 
622     Assert.assertEquals(request.getName(), actualRequest.getName());
623     Assert.assertTrue(
624         channelProvider.isHeaderSent(
625             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
626             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
627   }
628 
629   @Test
getLocationExceptionTest()630   public void getLocationExceptionTest() throws Exception {
631     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
632     mockLocations.addException(exception);
633 
634     try {
635       GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
636       client.getLocation(request);
637       Assert.fail("No exception raised");
638     } catch (InvalidArgumentException e) {
639       // Expected exception.
640     }
641   }
642 
643   @Test
setIamPolicyTest()644   public void setIamPolicyTest() throws Exception {
645     Policy expectedResponse =
646         Policy.newBuilder()
647             .setVersion(351608024)
648             .addAllBindings(new ArrayList<Binding>())
649             .addAllAuditConfigs(new ArrayList<AuditConfig>())
650             .setEtag(ByteString.EMPTY)
651             .build();
652     mockIAMPolicy.addResponse(expectedResponse);
653 
654     SetIamPolicyRequest request =
655         SetIamPolicyRequest.newBuilder()
656             .setResource(
657                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
658                     .toString())
659             .setPolicy(Policy.newBuilder().build())
660             .setUpdateMask(FieldMask.newBuilder().build())
661             .build();
662 
663     Policy actualResponse = client.setIamPolicy(request);
664     Assert.assertEquals(expectedResponse, actualResponse);
665 
666     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
667     Assert.assertEquals(1, actualRequests.size());
668     SetIamPolicyRequest actualRequest = ((SetIamPolicyRequest) actualRequests.get(0));
669 
670     Assert.assertEquals(request.getResource(), actualRequest.getResource());
671     Assert.assertEquals(request.getPolicy(), actualRequest.getPolicy());
672     Assert.assertEquals(request.getUpdateMask(), actualRequest.getUpdateMask());
673     Assert.assertTrue(
674         channelProvider.isHeaderSent(
675             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
676             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
677   }
678 
679   @Test
setIamPolicyExceptionTest()680   public void setIamPolicyExceptionTest() throws Exception {
681     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
682     mockIAMPolicy.addException(exception);
683 
684     try {
685       SetIamPolicyRequest request =
686           SetIamPolicyRequest.newBuilder()
687               .setResource(
688                   EndpointName.ofProjectLocationEndpointName(
689                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
690                       .toString())
691               .setPolicy(Policy.newBuilder().build())
692               .setUpdateMask(FieldMask.newBuilder().build())
693               .build();
694       client.setIamPolicy(request);
695       Assert.fail("No exception raised");
696     } catch (InvalidArgumentException e) {
697       // Expected exception.
698     }
699   }
700 
701   @Test
getIamPolicyTest()702   public void getIamPolicyTest() throws Exception {
703     Policy expectedResponse =
704         Policy.newBuilder()
705             .setVersion(351608024)
706             .addAllBindings(new ArrayList<Binding>())
707             .addAllAuditConfigs(new ArrayList<AuditConfig>())
708             .setEtag(ByteString.EMPTY)
709             .build();
710     mockIAMPolicy.addResponse(expectedResponse);
711 
712     GetIamPolicyRequest request =
713         GetIamPolicyRequest.newBuilder()
714             .setResource(
715                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
716                     .toString())
717             .setOptions(GetPolicyOptions.newBuilder().build())
718             .build();
719 
720     Policy actualResponse = client.getIamPolicy(request);
721     Assert.assertEquals(expectedResponse, actualResponse);
722 
723     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
724     Assert.assertEquals(1, actualRequests.size());
725     GetIamPolicyRequest actualRequest = ((GetIamPolicyRequest) actualRequests.get(0));
726 
727     Assert.assertEquals(request.getResource(), actualRequest.getResource());
728     Assert.assertEquals(request.getOptions(), actualRequest.getOptions());
729     Assert.assertTrue(
730         channelProvider.isHeaderSent(
731             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
732             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
733   }
734 
735   @Test
getIamPolicyExceptionTest()736   public void getIamPolicyExceptionTest() throws Exception {
737     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
738     mockIAMPolicy.addException(exception);
739 
740     try {
741       GetIamPolicyRequest request =
742           GetIamPolicyRequest.newBuilder()
743               .setResource(
744                   EndpointName.ofProjectLocationEndpointName(
745                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
746                       .toString())
747               .setOptions(GetPolicyOptions.newBuilder().build())
748               .build();
749       client.getIamPolicy(request);
750       Assert.fail("No exception raised");
751     } catch (InvalidArgumentException e) {
752       // Expected exception.
753     }
754   }
755 
756   @Test
testIamPermissionsTest()757   public void testIamPermissionsTest() throws Exception {
758     TestIamPermissionsResponse expectedResponse =
759         TestIamPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build();
760     mockIAMPolicy.addResponse(expectedResponse);
761 
762     TestIamPermissionsRequest request =
763         TestIamPermissionsRequest.newBuilder()
764             .setResource(
765                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
766                     .toString())
767             .addAllPermissions(new ArrayList<String>())
768             .build();
769 
770     TestIamPermissionsResponse actualResponse = client.testIamPermissions(request);
771     Assert.assertEquals(expectedResponse, actualResponse);
772 
773     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
774     Assert.assertEquals(1, actualRequests.size());
775     TestIamPermissionsRequest actualRequest = ((TestIamPermissionsRequest) actualRequests.get(0));
776 
777     Assert.assertEquals(request.getResource(), actualRequest.getResource());
778     Assert.assertEquals(request.getPermissionsList(), actualRequest.getPermissionsList());
779     Assert.assertTrue(
780         channelProvider.isHeaderSent(
781             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
782             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
783   }
784 
785   @Test
testIamPermissionsExceptionTest()786   public void testIamPermissionsExceptionTest() throws Exception {
787     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
788     mockIAMPolicy.addException(exception);
789 
790     try {
791       TestIamPermissionsRequest request =
792           TestIamPermissionsRequest.newBuilder()
793               .setResource(
794                   EndpointName.ofProjectLocationEndpointName(
795                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
796                       .toString())
797               .addAllPermissions(new ArrayList<String>())
798               .build();
799       client.testIamPermissions(request);
800       Assert.fail("No exception raised");
801     } catch (InvalidArgumentException e) {
802       // Expected exception.
803     }
804   }
805 }
806