• 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.MigrationServiceClient.ListLocationsPagedResponse;
20 import static com.google.cloud.aiplatform.v1.MigrationServiceClient.SearchMigratableResourcesPagedResponse;
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.FieldMask;
48 import io.grpc.StatusRuntimeException;
49 import java.io.IOException;
50 import java.util.ArrayList;
51 import java.util.Arrays;
52 import java.util.HashMap;
53 import java.util.List;
54 import java.util.UUID;
55 import java.util.concurrent.ExecutionException;
56 import javax.annotation.Generated;
57 import org.junit.After;
58 import org.junit.AfterClass;
59 import org.junit.Assert;
60 import org.junit.Before;
61 import org.junit.BeforeClass;
62 import org.junit.Test;
63 
64 @Generated("by gapic-generator-java")
65 public class MigrationServiceClientTest {
66   private static MockIAMPolicy mockIAMPolicy;
67   private static MockLocations mockLocations;
68   private static MockMigrationService mockMigrationService;
69   private static MockServiceHelper mockServiceHelper;
70   private LocalChannelProvider channelProvider;
71   private MigrationServiceClient client;
72 
73   @BeforeClass
startStaticServer()74   public static void startStaticServer() {
75     mockMigrationService = new MockMigrationService();
76     mockLocations = new MockLocations();
77     mockIAMPolicy = new MockIAMPolicy();
78     mockServiceHelper =
79         new MockServiceHelper(
80             UUID.randomUUID().toString(),
81             Arrays.<MockGrpcService>asList(mockMigrationService, mockLocations, mockIAMPolicy));
82     mockServiceHelper.start();
83   }
84 
85   @AfterClass
stopServer()86   public static void stopServer() {
87     mockServiceHelper.stop();
88   }
89 
90   @Before
setUp()91   public void setUp() throws IOException {
92     mockServiceHelper.reset();
93     channelProvider = mockServiceHelper.createChannelProvider();
94     MigrationServiceSettings settings =
95         MigrationServiceSettings.newBuilder()
96             .setTransportChannelProvider(channelProvider)
97             .setCredentialsProvider(NoCredentialsProvider.create())
98             .build();
99     client = MigrationServiceClient.create(settings);
100   }
101 
102   @After
tearDown()103   public void tearDown() throws Exception {
104     client.close();
105   }
106 
107   @Test
searchMigratableResourcesTest()108   public void searchMigratableResourcesTest() throws Exception {
109     MigratableResource responsesElement = MigratableResource.newBuilder().build();
110     SearchMigratableResourcesResponse expectedResponse =
111         SearchMigratableResourcesResponse.newBuilder()
112             .setNextPageToken("")
113             .addAllMigratableResources(Arrays.asList(responsesElement))
114             .build();
115     mockMigrationService.addResponse(expectedResponse);
116 
117     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
118 
119     SearchMigratableResourcesPagedResponse pagedListResponse =
120         client.searchMigratableResources(parent);
121 
122     List<MigratableResource> resources = Lists.newArrayList(pagedListResponse.iterateAll());
123 
124     Assert.assertEquals(1, resources.size());
125     Assert.assertEquals(expectedResponse.getMigratableResourcesList().get(0), resources.get(0));
126 
127     List<AbstractMessage> actualRequests = mockMigrationService.getRequests();
128     Assert.assertEquals(1, actualRequests.size());
129     SearchMigratableResourcesRequest actualRequest =
130         ((SearchMigratableResourcesRequest) actualRequests.get(0));
131 
132     Assert.assertEquals(parent.toString(), actualRequest.getParent());
133     Assert.assertTrue(
134         channelProvider.isHeaderSent(
135             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
136             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
137   }
138 
139   @Test
searchMigratableResourcesExceptionTest()140   public void searchMigratableResourcesExceptionTest() throws Exception {
141     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
142     mockMigrationService.addException(exception);
143 
144     try {
145       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
146       client.searchMigratableResources(parent);
147       Assert.fail("No exception raised");
148     } catch (InvalidArgumentException e) {
149       // Expected exception.
150     }
151   }
152 
153   @Test
searchMigratableResourcesTest2()154   public void searchMigratableResourcesTest2() throws Exception {
155     MigratableResource responsesElement = MigratableResource.newBuilder().build();
156     SearchMigratableResourcesResponse expectedResponse =
157         SearchMigratableResourcesResponse.newBuilder()
158             .setNextPageToken("")
159             .addAllMigratableResources(Arrays.asList(responsesElement))
160             .build();
161     mockMigrationService.addResponse(expectedResponse);
162 
163     String parent = "parent-995424086";
164 
165     SearchMigratableResourcesPagedResponse pagedListResponse =
166         client.searchMigratableResources(parent);
167 
168     List<MigratableResource> resources = Lists.newArrayList(pagedListResponse.iterateAll());
169 
170     Assert.assertEquals(1, resources.size());
171     Assert.assertEquals(expectedResponse.getMigratableResourcesList().get(0), resources.get(0));
172 
173     List<AbstractMessage> actualRequests = mockMigrationService.getRequests();
174     Assert.assertEquals(1, actualRequests.size());
175     SearchMigratableResourcesRequest actualRequest =
176         ((SearchMigratableResourcesRequest) actualRequests.get(0));
177 
178     Assert.assertEquals(parent, actualRequest.getParent());
179     Assert.assertTrue(
180         channelProvider.isHeaderSent(
181             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
182             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
183   }
184 
185   @Test
searchMigratableResourcesExceptionTest2()186   public void searchMigratableResourcesExceptionTest2() throws Exception {
187     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
188     mockMigrationService.addException(exception);
189 
190     try {
191       String parent = "parent-995424086";
192       client.searchMigratableResources(parent);
193       Assert.fail("No exception raised");
194     } catch (InvalidArgumentException e) {
195       // Expected exception.
196     }
197   }
198 
199   @Test
batchMigrateResourcesTest()200   public void batchMigrateResourcesTest() throws Exception {
201     BatchMigrateResourcesResponse expectedResponse =
202         BatchMigrateResourcesResponse.newBuilder()
203             .addAllMigrateResourceResponses(new ArrayList<MigrateResourceResponse>())
204             .build();
205     Operation resultOperation =
206         Operation.newBuilder()
207             .setName("batchMigrateResourcesTest")
208             .setDone(true)
209             .setResponse(Any.pack(expectedResponse))
210             .build();
211     mockMigrationService.addResponse(resultOperation);
212 
213     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
214     List<MigrateResourceRequest> migrateResourceRequests = new ArrayList<>();
215 
216     BatchMigrateResourcesResponse actualResponse =
217         client.batchMigrateResourcesAsync(parent, migrateResourceRequests).get();
218     Assert.assertEquals(expectedResponse, actualResponse);
219 
220     List<AbstractMessage> actualRequests = mockMigrationService.getRequests();
221     Assert.assertEquals(1, actualRequests.size());
222     BatchMigrateResourcesRequest actualRequest =
223         ((BatchMigrateResourcesRequest) actualRequests.get(0));
224 
225     Assert.assertEquals(parent.toString(), actualRequest.getParent());
226     Assert.assertEquals(migrateResourceRequests, actualRequest.getMigrateResourceRequestsList());
227     Assert.assertTrue(
228         channelProvider.isHeaderSent(
229             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
230             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
231   }
232 
233   @Test
batchMigrateResourcesExceptionTest()234   public void batchMigrateResourcesExceptionTest() throws Exception {
235     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
236     mockMigrationService.addException(exception);
237 
238     try {
239       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
240       List<MigrateResourceRequest> migrateResourceRequests = new ArrayList<>();
241       client.batchMigrateResourcesAsync(parent, migrateResourceRequests).get();
242       Assert.fail("No exception raised");
243     } catch (ExecutionException e) {
244       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
245       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
246       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
247     }
248   }
249 
250   @Test
batchMigrateResourcesTest2()251   public void batchMigrateResourcesTest2() throws Exception {
252     BatchMigrateResourcesResponse expectedResponse =
253         BatchMigrateResourcesResponse.newBuilder()
254             .addAllMigrateResourceResponses(new ArrayList<MigrateResourceResponse>())
255             .build();
256     Operation resultOperation =
257         Operation.newBuilder()
258             .setName("batchMigrateResourcesTest")
259             .setDone(true)
260             .setResponse(Any.pack(expectedResponse))
261             .build();
262     mockMigrationService.addResponse(resultOperation);
263 
264     String parent = "parent-995424086";
265     List<MigrateResourceRequest> migrateResourceRequests = new ArrayList<>();
266 
267     BatchMigrateResourcesResponse actualResponse =
268         client.batchMigrateResourcesAsync(parent, migrateResourceRequests).get();
269     Assert.assertEquals(expectedResponse, actualResponse);
270 
271     List<AbstractMessage> actualRequests = mockMigrationService.getRequests();
272     Assert.assertEquals(1, actualRequests.size());
273     BatchMigrateResourcesRequest actualRequest =
274         ((BatchMigrateResourcesRequest) actualRequests.get(0));
275 
276     Assert.assertEquals(parent, actualRequest.getParent());
277     Assert.assertEquals(migrateResourceRequests, actualRequest.getMigrateResourceRequestsList());
278     Assert.assertTrue(
279         channelProvider.isHeaderSent(
280             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
281             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
282   }
283 
284   @Test
batchMigrateResourcesExceptionTest2()285   public void batchMigrateResourcesExceptionTest2() throws Exception {
286     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
287     mockMigrationService.addException(exception);
288 
289     try {
290       String parent = "parent-995424086";
291       List<MigrateResourceRequest> migrateResourceRequests = new ArrayList<>();
292       client.batchMigrateResourcesAsync(parent, migrateResourceRequests).get();
293       Assert.fail("No exception raised");
294     } catch (ExecutionException e) {
295       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
296       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
297       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
298     }
299   }
300 
301   @Test
listLocationsTest()302   public void listLocationsTest() throws Exception {
303     Location responsesElement = Location.newBuilder().build();
304     ListLocationsResponse expectedResponse =
305         ListLocationsResponse.newBuilder()
306             .setNextPageToken("")
307             .addAllLocations(Arrays.asList(responsesElement))
308             .build();
309     mockLocations.addResponse(expectedResponse);
310 
311     ListLocationsRequest request =
312         ListLocationsRequest.newBuilder()
313             .setName("name3373707")
314             .setFilter("filter-1274492040")
315             .setPageSize(883849137)
316             .setPageToken("pageToken873572522")
317             .build();
318 
319     ListLocationsPagedResponse pagedListResponse = client.listLocations(request);
320 
321     List<Location> resources = Lists.newArrayList(pagedListResponse.iterateAll());
322 
323     Assert.assertEquals(1, resources.size());
324     Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0));
325 
326     List<AbstractMessage> actualRequests = mockLocations.getRequests();
327     Assert.assertEquals(1, actualRequests.size());
328     ListLocationsRequest actualRequest = ((ListLocationsRequest) actualRequests.get(0));
329 
330     Assert.assertEquals(request.getName(), actualRequest.getName());
331     Assert.assertEquals(request.getFilter(), actualRequest.getFilter());
332     Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize());
333     Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken());
334     Assert.assertTrue(
335         channelProvider.isHeaderSent(
336             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
337             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
338   }
339 
340   @Test
listLocationsExceptionTest()341   public void listLocationsExceptionTest() throws Exception {
342     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
343     mockLocations.addException(exception);
344 
345     try {
346       ListLocationsRequest request =
347           ListLocationsRequest.newBuilder()
348               .setName("name3373707")
349               .setFilter("filter-1274492040")
350               .setPageSize(883849137)
351               .setPageToken("pageToken873572522")
352               .build();
353       client.listLocations(request);
354       Assert.fail("No exception raised");
355     } catch (InvalidArgumentException e) {
356       // Expected exception.
357     }
358   }
359 
360   @Test
getLocationTest()361   public void getLocationTest() throws Exception {
362     Location expectedResponse =
363         Location.newBuilder()
364             .setName("name3373707")
365             .setLocationId("locationId1541836720")
366             .setDisplayName("displayName1714148973")
367             .putAllLabels(new HashMap<String, String>())
368             .setMetadata(Any.newBuilder().build())
369             .build();
370     mockLocations.addResponse(expectedResponse);
371 
372     GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
373 
374     Location actualResponse = client.getLocation(request);
375     Assert.assertEquals(expectedResponse, actualResponse);
376 
377     List<AbstractMessage> actualRequests = mockLocations.getRequests();
378     Assert.assertEquals(1, actualRequests.size());
379     GetLocationRequest actualRequest = ((GetLocationRequest) actualRequests.get(0));
380 
381     Assert.assertEquals(request.getName(), actualRequest.getName());
382     Assert.assertTrue(
383         channelProvider.isHeaderSent(
384             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
385             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
386   }
387 
388   @Test
getLocationExceptionTest()389   public void getLocationExceptionTest() throws Exception {
390     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
391     mockLocations.addException(exception);
392 
393     try {
394       GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
395       client.getLocation(request);
396       Assert.fail("No exception raised");
397     } catch (InvalidArgumentException e) {
398       // Expected exception.
399     }
400   }
401 
402   @Test
setIamPolicyTest()403   public void setIamPolicyTest() throws Exception {
404     Policy expectedResponse =
405         Policy.newBuilder()
406             .setVersion(351608024)
407             .addAllBindings(new ArrayList<Binding>())
408             .addAllAuditConfigs(new ArrayList<AuditConfig>())
409             .setEtag(ByteString.EMPTY)
410             .build();
411     mockIAMPolicy.addResponse(expectedResponse);
412 
413     SetIamPolicyRequest request =
414         SetIamPolicyRequest.newBuilder()
415             .setResource(
416                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
417                     .toString())
418             .setPolicy(Policy.newBuilder().build())
419             .setUpdateMask(FieldMask.newBuilder().build())
420             .build();
421 
422     Policy actualResponse = client.setIamPolicy(request);
423     Assert.assertEquals(expectedResponse, actualResponse);
424 
425     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
426     Assert.assertEquals(1, actualRequests.size());
427     SetIamPolicyRequest actualRequest = ((SetIamPolicyRequest) actualRequests.get(0));
428 
429     Assert.assertEquals(request.getResource(), actualRequest.getResource());
430     Assert.assertEquals(request.getPolicy(), actualRequest.getPolicy());
431     Assert.assertEquals(request.getUpdateMask(), actualRequest.getUpdateMask());
432     Assert.assertTrue(
433         channelProvider.isHeaderSent(
434             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
435             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
436   }
437 
438   @Test
setIamPolicyExceptionTest()439   public void setIamPolicyExceptionTest() throws Exception {
440     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
441     mockIAMPolicy.addException(exception);
442 
443     try {
444       SetIamPolicyRequest request =
445           SetIamPolicyRequest.newBuilder()
446               .setResource(
447                   EndpointName.ofProjectLocationEndpointName(
448                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
449                       .toString())
450               .setPolicy(Policy.newBuilder().build())
451               .setUpdateMask(FieldMask.newBuilder().build())
452               .build();
453       client.setIamPolicy(request);
454       Assert.fail("No exception raised");
455     } catch (InvalidArgumentException e) {
456       // Expected exception.
457     }
458   }
459 
460   @Test
getIamPolicyTest()461   public void getIamPolicyTest() throws Exception {
462     Policy expectedResponse =
463         Policy.newBuilder()
464             .setVersion(351608024)
465             .addAllBindings(new ArrayList<Binding>())
466             .addAllAuditConfigs(new ArrayList<AuditConfig>())
467             .setEtag(ByteString.EMPTY)
468             .build();
469     mockIAMPolicy.addResponse(expectedResponse);
470 
471     GetIamPolicyRequest request =
472         GetIamPolicyRequest.newBuilder()
473             .setResource(
474                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
475                     .toString())
476             .setOptions(GetPolicyOptions.newBuilder().build())
477             .build();
478 
479     Policy actualResponse = client.getIamPolicy(request);
480     Assert.assertEquals(expectedResponse, actualResponse);
481 
482     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
483     Assert.assertEquals(1, actualRequests.size());
484     GetIamPolicyRequest actualRequest = ((GetIamPolicyRequest) actualRequests.get(0));
485 
486     Assert.assertEquals(request.getResource(), actualRequest.getResource());
487     Assert.assertEquals(request.getOptions(), actualRequest.getOptions());
488     Assert.assertTrue(
489         channelProvider.isHeaderSent(
490             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
491             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
492   }
493 
494   @Test
getIamPolicyExceptionTest()495   public void getIamPolicyExceptionTest() throws Exception {
496     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
497     mockIAMPolicy.addException(exception);
498 
499     try {
500       GetIamPolicyRequest request =
501           GetIamPolicyRequest.newBuilder()
502               .setResource(
503                   EndpointName.ofProjectLocationEndpointName(
504                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
505                       .toString())
506               .setOptions(GetPolicyOptions.newBuilder().build())
507               .build();
508       client.getIamPolicy(request);
509       Assert.fail("No exception raised");
510     } catch (InvalidArgumentException e) {
511       // Expected exception.
512     }
513   }
514 
515   @Test
testIamPermissionsTest()516   public void testIamPermissionsTest() throws Exception {
517     TestIamPermissionsResponse expectedResponse =
518         TestIamPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build();
519     mockIAMPolicy.addResponse(expectedResponse);
520 
521     TestIamPermissionsRequest request =
522         TestIamPermissionsRequest.newBuilder()
523             .setResource(
524                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
525                     .toString())
526             .addAllPermissions(new ArrayList<String>())
527             .build();
528 
529     TestIamPermissionsResponse actualResponse = client.testIamPermissions(request);
530     Assert.assertEquals(expectedResponse, actualResponse);
531 
532     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
533     Assert.assertEquals(1, actualRequests.size());
534     TestIamPermissionsRequest actualRequest = ((TestIamPermissionsRequest) actualRequests.get(0));
535 
536     Assert.assertEquals(request.getResource(), actualRequest.getResource());
537     Assert.assertEquals(request.getPermissionsList(), actualRequest.getPermissionsList());
538     Assert.assertTrue(
539         channelProvider.isHeaderSent(
540             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
541             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
542   }
543 
544   @Test
testIamPermissionsExceptionTest()545   public void testIamPermissionsExceptionTest() throws Exception {
546     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
547     mockIAMPolicy.addException(exception);
548 
549     try {
550       TestIamPermissionsRequest request =
551           TestIamPermissionsRequest.newBuilder()
552               .setResource(
553                   EndpointName.ofProjectLocationEndpointName(
554                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
555                       .toString())
556               .addAllPermissions(new ArrayList<String>())
557               .build();
558       client.testIamPermissions(request);
559       Assert.fail("No exception raised");
560     } catch (InvalidArgumentException e) {
561       // Expected exception.
562     }
563   }
564 }
565