• 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.storage.v2;
18 
19 import static com.google.storage.v2.StorageClient.ListBucketsPagedResponse;
20 import static com.google.storage.v2.StorageClient.ListHmacKeysPagedResponse;
21 import static com.google.storage.v2.StorageClient.ListNotificationsPagedResponse;
22 import static com.google.storage.v2.StorageClient.ListObjectsPagedResponse;
23 
24 import com.google.api.gax.core.NoCredentialsProvider;
25 import com.google.api.gax.grpc.GaxGrpcProperties;
26 import com.google.api.gax.grpc.testing.LocalChannelProvider;
27 import com.google.api.gax.grpc.testing.MockGrpcService;
28 import com.google.api.gax.grpc.testing.MockServiceHelper;
29 import com.google.api.gax.grpc.testing.MockStreamObserver;
30 import com.google.api.gax.rpc.ApiClientHeaderProvider;
31 import com.google.api.gax.rpc.ApiStreamObserver;
32 import com.google.api.gax.rpc.ClientStreamingCallable;
33 import com.google.api.gax.rpc.InvalidArgumentException;
34 import com.google.api.gax.rpc.ServerStreamingCallable;
35 import com.google.api.gax.rpc.StatusCode;
36 import com.google.api.resourcenames.ResourceName;
37 import com.google.common.collect.Lists;
38 import com.google.iam.v1.AuditConfig;
39 import com.google.iam.v1.Binding;
40 import com.google.iam.v1.GetIamPolicyRequest;
41 import com.google.iam.v1.Policy;
42 import com.google.iam.v1.SetIamPolicyRequest;
43 import com.google.iam.v1.TestIamPermissionsRequest;
44 import com.google.iam.v1.TestIamPermissionsResponse;
45 import com.google.protobuf.AbstractMessage;
46 import com.google.protobuf.ByteString;
47 import com.google.protobuf.Empty;
48 import com.google.protobuf.FieldMask;
49 import com.google.protobuf.Timestamp;
50 import io.grpc.StatusRuntimeException;
51 import java.io.IOException;
52 import java.util.ArrayList;
53 import java.util.Arrays;
54 import java.util.HashMap;
55 import java.util.List;
56 import java.util.UUID;
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 StorageClientTest {
68   private static MockServiceHelper mockServiceHelper;
69   private static MockStorage mockStorage;
70   private LocalChannelProvider channelProvider;
71   private StorageClient client;
72 
73   @BeforeClass
startStaticServer()74   public static void startStaticServer() {
75     mockStorage = new MockStorage();
76     mockServiceHelper =
77         new MockServiceHelper(
78             UUID.randomUUID().toString(), Arrays.<MockGrpcService>asList(mockStorage));
79     mockServiceHelper.start();
80   }
81 
82   @AfterClass
stopServer()83   public static void stopServer() {
84     mockServiceHelper.stop();
85   }
86 
87   @Before
setUp()88   public void setUp() throws IOException {
89     mockServiceHelper.reset();
90     channelProvider = mockServiceHelper.createChannelProvider();
91     StorageSettings settings =
92         StorageSettings.newBuilder()
93             .setTransportChannelProvider(channelProvider)
94             .setCredentialsProvider(NoCredentialsProvider.create())
95             .build();
96     client = StorageClient.create(settings);
97   }
98 
99   @After
tearDown()100   public void tearDown() throws Exception {
101     client.close();
102   }
103 
104   @Test
deleteBucketTest()105   public void deleteBucketTest() throws Exception {
106     Empty expectedResponse = Empty.newBuilder().build();
107     mockStorage.addResponse(expectedResponse);
108 
109     BucketName name = BucketName.of("[PROJECT]", "[BUCKET]");
110 
111     client.deleteBucket(name);
112 
113     List<AbstractMessage> actualRequests = mockStorage.getRequests();
114     Assert.assertEquals(1, actualRequests.size());
115     DeleteBucketRequest actualRequest = ((DeleteBucketRequest) actualRequests.get(0));
116 
117     Assert.assertEquals(name.toString(), actualRequest.getName());
118     Assert.assertTrue(
119         channelProvider.isHeaderSent(
120             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
121             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
122   }
123 
124   @Test
deleteBucketExceptionTest()125   public void deleteBucketExceptionTest() throws Exception {
126     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
127     mockStorage.addException(exception);
128 
129     try {
130       BucketName name = BucketName.of("[PROJECT]", "[BUCKET]");
131       client.deleteBucket(name);
132       Assert.fail("No exception raised");
133     } catch (InvalidArgumentException e) {
134       // Expected exception.
135     }
136   }
137 
138   @Test
deleteBucketTest2()139   public void deleteBucketTest2() throws Exception {
140     Empty expectedResponse = Empty.newBuilder().build();
141     mockStorage.addResponse(expectedResponse);
142 
143     String name = "name3373707";
144 
145     client.deleteBucket(name);
146 
147     List<AbstractMessage> actualRequests = mockStorage.getRequests();
148     Assert.assertEquals(1, actualRequests.size());
149     DeleteBucketRequest actualRequest = ((DeleteBucketRequest) actualRequests.get(0));
150 
151     Assert.assertEquals(name, actualRequest.getName());
152     Assert.assertTrue(
153         channelProvider.isHeaderSent(
154             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
155             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
156   }
157 
158   @Test
deleteBucketExceptionTest2()159   public void deleteBucketExceptionTest2() throws Exception {
160     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
161     mockStorage.addException(exception);
162 
163     try {
164       String name = "name3373707";
165       client.deleteBucket(name);
166       Assert.fail("No exception raised");
167     } catch (InvalidArgumentException e) {
168       // Expected exception.
169     }
170   }
171 
172   @Test
getBucketTest()173   public void getBucketTest() throws Exception {
174     Bucket expectedResponse =
175         Bucket.newBuilder()
176             .setName(BucketName.of("[PROJECT]", "[BUCKET]").toString())
177             .setBucketId("bucketId-1603305307")
178             .setEtag("etag3123477")
179             .setProject(ProjectName.of("[PROJECT]").toString())
180             .setMetageneration(1048558813)
181             .setLocation("location1901043637")
182             .setLocationType("locationType-58277745")
183             .setStorageClass("storageClass871353277")
184             .setRpo("rpo113137")
185             .addAllAcl(new ArrayList<BucketAccessControl>())
186             .addAllDefaultObjectAcl(new ArrayList<ObjectAccessControl>())
187             .setLifecycle(Bucket.Lifecycle.newBuilder().build())
188             .setCreateTime(Timestamp.newBuilder().build())
189             .addAllCors(new ArrayList<Bucket.Cors>())
190             .setUpdateTime(Timestamp.newBuilder().build())
191             .setDefaultEventBasedHold(true)
192             .putAllLabels(new HashMap<String, String>())
193             .setWebsite(Bucket.Website.newBuilder().build())
194             .setVersioning(Bucket.Versioning.newBuilder().build())
195             .setLogging(Bucket.Logging.newBuilder().build())
196             .setOwner(Owner.newBuilder().build())
197             .setEncryption(Bucket.Encryption.newBuilder().build())
198             .setBilling(Bucket.Billing.newBuilder().build())
199             .setRetentionPolicy(Bucket.RetentionPolicy.newBuilder().build())
200             .setIamConfig(Bucket.IamConfig.newBuilder().build())
201             .setSatisfiesPzs(true)
202             .setCustomPlacementConfig(Bucket.CustomPlacementConfig.newBuilder().build())
203             .setAutoclass(Bucket.Autoclass.newBuilder().build())
204             .build();
205     mockStorage.addResponse(expectedResponse);
206 
207     BucketName name = BucketName.of("[PROJECT]", "[BUCKET]");
208 
209     Bucket actualResponse = client.getBucket(name);
210     Assert.assertEquals(expectedResponse, actualResponse);
211 
212     List<AbstractMessage> actualRequests = mockStorage.getRequests();
213     Assert.assertEquals(1, actualRequests.size());
214     GetBucketRequest actualRequest = ((GetBucketRequest) actualRequests.get(0));
215 
216     Assert.assertEquals(name.toString(), actualRequest.getName());
217     Assert.assertTrue(
218         channelProvider.isHeaderSent(
219             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
220             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
221   }
222 
223   @Test
getBucketExceptionTest()224   public void getBucketExceptionTest() throws Exception {
225     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
226     mockStorage.addException(exception);
227 
228     try {
229       BucketName name = BucketName.of("[PROJECT]", "[BUCKET]");
230       client.getBucket(name);
231       Assert.fail("No exception raised");
232     } catch (InvalidArgumentException e) {
233       // Expected exception.
234     }
235   }
236 
237   @Test
getBucketTest2()238   public void getBucketTest2() throws Exception {
239     Bucket expectedResponse =
240         Bucket.newBuilder()
241             .setName(BucketName.of("[PROJECT]", "[BUCKET]").toString())
242             .setBucketId("bucketId-1603305307")
243             .setEtag("etag3123477")
244             .setProject(ProjectName.of("[PROJECT]").toString())
245             .setMetageneration(1048558813)
246             .setLocation("location1901043637")
247             .setLocationType("locationType-58277745")
248             .setStorageClass("storageClass871353277")
249             .setRpo("rpo113137")
250             .addAllAcl(new ArrayList<BucketAccessControl>())
251             .addAllDefaultObjectAcl(new ArrayList<ObjectAccessControl>())
252             .setLifecycle(Bucket.Lifecycle.newBuilder().build())
253             .setCreateTime(Timestamp.newBuilder().build())
254             .addAllCors(new ArrayList<Bucket.Cors>())
255             .setUpdateTime(Timestamp.newBuilder().build())
256             .setDefaultEventBasedHold(true)
257             .putAllLabels(new HashMap<String, String>())
258             .setWebsite(Bucket.Website.newBuilder().build())
259             .setVersioning(Bucket.Versioning.newBuilder().build())
260             .setLogging(Bucket.Logging.newBuilder().build())
261             .setOwner(Owner.newBuilder().build())
262             .setEncryption(Bucket.Encryption.newBuilder().build())
263             .setBilling(Bucket.Billing.newBuilder().build())
264             .setRetentionPolicy(Bucket.RetentionPolicy.newBuilder().build())
265             .setIamConfig(Bucket.IamConfig.newBuilder().build())
266             .setSatisfiesPzs(true)
267             .setCustomPlacementConfig(Bucket.CustomPlacementConfig.newBuilder().build())
268             .setAutoclass(Bucket.Autoclass.newBuilder().build())
269             .build();
270     mockStorage.addResponse(expectedResponse);
271 
272     String name = "name3373707";
273 
274     Bucket actualResponse = client.getBucket(name);
275     Assert.assertEquals(expectedResponse, actualResponse);
276 
277     List<AbstractMessage> actualRequests = mockStorage.getRequests();
278     Assert.assertEquals(1, actualRequests.size());
279     GetBucketRequest actualRequest = ((GetBucketRequest) actualRequests.get(0));
280 
281     Assert.assertEquals(name, actualRequest.getName());
282     Assert.assertTrue(
283         channelProvider.isHeaderSent(
284             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
285             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
286   }
287 
288   @Test
getBucketExceptionTest2()289   public void getBucketExceptionTest2() throws Exception {
290     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
291     mockStorage.addException(exception);
292 
293     try {
294       String name = "name3373707";
295       client.getBucket(name);
296       Assert.fail("No exception raised");
297     } catch (InvalidArgumentException e) {
298       // Expected exception.
299     }
300   }
301 
302   @Test
createBucketTest()303   public void createBucketTest() throws Exception {
304     Bucket expectedResponse =
305         Bucket.newBuilder()
306             .setName(BucketName.of("[PROJECT]", "[BUCKET]").toString())
307             .setBucketId("bucketId-1603305307")
308             .setEtag("etag3123477")
309             .setProject(ProjectName.of("[PROJECT]").toString())
310             .setMetageneration(1048558813)
311             .setLocation("location1901043637")
312             .setLocationType("locationType-58277745")
313             .setStorageClass("storageClass871353277")
314             .setRpo("rpo113137")
315             .addAllAcl(new ArrayList<BucketAccessControl>())
316             .addAllDefaultObjectAcl(new ArrayList<ObjectAccessControl>())
317             .setLifecycle(Bucket.Lifecycle.newBuilder().build())
318             .setCreateTime(Timestamp.newBuilder().build())
319             .addAllCors(new ArrayList<Bucket.Cors>())
320             .setUpdateTime(Timestamp.newBuilder().build())
321             .setDefaultEventBasedHold(true)
322             .putAllLabels(new HashMap<String, String>())
323             .setWebsite(Bucket.Website.newBuilder().build())
324             .setVersioning(Bucket.Versioning.newBuilder().build())
325             .setLogging(Bucket.Logging.newBuilder().build())
326             .setOwner(Owner.newBuilder().build())
327             .setEncryption(Bucket.Encryption.newBuilder().build())
328             .setBilling(Bucket.Billing.newBuilder().build())
329             .setRetentionPolicy(Bucket.RetentionPolicy.newBuilder().build())
330             .setIamConfig(Bucket.IamConfig.newBuilder().build())
331             .setSatisfiesPzs(true)
332             .setCustomPlacementConfig(Bucket.CustomPlacementConfig.newBuilder().build())
333             .setAutoclass(Bucket.Autoclass.newBuilder().build())
334             .build();
335     mockStorage.addResponse(expectedResponse);
336 
337     ProjectName parent = ProjectName.of("[PROJECT]");
338     Bucket bucket = Bucket.newBuilder().build();
339     String bucketId = "bucketId-1603305307";
340 
341     Bucket actualResponse = client.createBucket(parent, bucket, bucketId);
342     Assert.assertEquals(expectedResponse, actualResponse);
343 
344     List<AbstractMessage> actualRequests = mockStorage.getRequests();
345     Assert.assertEquals(1, actualRequests.size());
346     CreateBucketRequest actualRequest = ((CreateBucketRequest) actualRequests.get(0));
347 
348     Assert.assertEquals(parent.toString(), actualRequest.getParent());
349     Assert.assertEquals(bucket, actualRequest.getBucket());
350     Assert.assertEquals(bucketId, actualRequest.getBucketId());
351     Assert.assertTrue(
352         channelProvider.isHeaderSent(
353             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
354             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
355   }
356 
357   @Test
createBucketExceptionTest()358   public void createBucketExceptionTest() throws Exception {
359     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
360     mockStorage.addException(exception);
361 
362     try {
363       ProjectName parent = ProjectName.of("[PROJECT]");
364       Bucket bucket = Bucket.newBuilder().build();
365       String bucketId = "bucketId-1603305307";
366       client.createBucket(parent, bucket, bucketId);
367       Assert.fail("No exception raised");
368     } catch (InvalidArgumentException e) {
369       // Expected exception.
370     }
371   }
372 
373   @Test
createBucketTest2()374   public void createBucketTest2() throws Exception {
375     Bucket expectedResponse =
376         Bucket.newBuilder()
377             .setName(BucketName.of("[PROJECT]", "[BUCKET]").toString())
378             .setBucketId("bucketId-1603305307")
379             .setEtag("etag3123477")
380             .setProject(ProjectName.of("[PROJECT]").toString())
381             .setMetageneration(1048558813)
382             .setLocation("location1901043637")
383             .setLocationType("locationType-58277745")
384             .setStorageClass("storageClass871353277")
385             .setRpo("rpo113137")
386             .addAllAcl(new ArrayList<BucketAccessControl>())
387             .addAllDefaultObjectAcl(new ArrayList<ObjectAccessControl>())
388             .setLifecycle(Bucket.Lifecycle.newBuilder().build())
389             .setCreateTime(Timestamp.newBuilder().build())
390             .addAllCors(new ArrayList<Bucket.Cors>())
391             .setUpdateTime(Timestamp.newBuilder().build())
392             .setDefaultEventBasedHold(true)
393             .putAllLabels(new HashMap<String, String>())
394             .setWebsite(Bucket.Website.newBuilder().build())
395             .setVersioning(Bucket.Versioning.newBuilder().build())
396             .setLogging(Bucket.Logging.newBuilder().build())
397             .setOwner(Owner.newBuilder().build())
398             .setEncryption(Bucket.Encryption.newBuilder().build())
399             .setBilling(Bucket.Billing.newBuilder().build())
400             .setRetentionPolicy(Bucket.RetentionPolicy.newBuilder().build())
401             .setIamConfig(Bucket.IamConfig.newBuilder().build())
402             .setSatisfiesPzs(true)
403             .setCustomPlacementConfig(Bucket.CustomPlacementConfig.newBuilder().build())
404             .setAutoclass(Bucket.Autoclass.newBuilder().build())
405             .build();
406     mockStorage.addResponse(expectedResponse);
407 
408     String parent = "parent-995424086";
409     Bucket bucket = Bucket.newBuilder().build();
410     String bucketId = "bucketId-1603305307";
411 
412     Bucket actualResponse = client.createBucket(parent, bucket, bucketId);
413     Assert.assertEquals(expectedResponse, actualResponse);
414 
415     List<AbstractMessage> actualRequests = mockStorage.getRequests();
416     Assert.assertEquals(1, actualRequests.size());
417     CreateBucketRequest actualRequest = ((CreateBucketRequest) actualRequests.get(0));
418 
419     Assert.assertEquals(parent, actualRequest.getParent());
420     Assert.assertEquals(bucket, actualRequest.getBucket());
421     Assert.assertEquals(bucketId, actualRequest.getBucketId());
422     Assert.assertTrue(
423         channelProvider.isHeaderSent(
424             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
425             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
426   }
427 
428   @Test
createBucketExceptionTest2()429   public void createBucketExceptionTest2() throws Exception {
430     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
431     mockStorage.addException(exception);
432 
433     try {
434       String parent = "parent-995424086";
435       Bucket bucket = Bucket.newBuilder().build();
436       String bucketId = "bucketId-1603305307";
437       client.createBucket(parent, bucket, bucketId);
438       Assert.fail("No exception raised");
439     } catch (InvalidArgumentException e) {
440       // Expected exception.
441     }
442   }
443 
444   @Test
listBucketsTest()445   public void listBucketsTest() throws Exception {
446     Bucket responsesElement = Bucket.newBuilder().build();
447     ListBucketsResponse expectedResponse =
448         ListBucketsResponse.newBuilder()
449             .setNextPageToken("")
450             .addAllBuckets(Arrays.asList(responsesElement))
451             .build();
452     mockStorage.addResponse(expectedResponse);
453 
454     ProjectName parent = ProjectName.of("[PROJECT]");
455 
456     ListBucketsPagedResponse pagedListResponse = client.listBuckets(parent);
457 
458     List<Bucket> resources = Lists.newArrayList(pagedListResponse.iterateAll());
459 
460     Assert.assertEquals(1, resources.size());
461     Assert.assertEquals(expectedResponse.getBucketsList().get(0), resources.get(0));
462 
463     List<AbstractMessage> actualRequests = mockStorage.getRequests();
464     Assert.assertEquals(1, actualRequests.size());
465     ListBucketsRequest actualRequest = ((ListBucketsRequest) actualRequests.get(0));
466 
467     Assert.assertEquals(parent.toString(), actualRequest.getParent());
468     Assert.assertTrue(
469         channelProvider.isHeaderSent(
470             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
471             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
472   }
473 
474   @Test
listBucketsExceptionTest()475   public void listBucketsExceptionTest() throws Exception {
476     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
477     mockStorage.addException(exception);
478 
479     try {
480       ProjectName parent = ProjectName.of("[PROJECT]");
481       client.listBuckets(parent);
482       Assert.fail("No exception raised");
483     } catch (InvalidArgumentException e) {
484       // Expected exception.
485     }
486   }
487 
488   @Test
listBucketsTest2()489   public void listBucketsTest2() throws Exception {
490     Bucket responsesElement = Bucket.newBuilder().build();
491     ListBucketsResponse expectedResponse =
492         ListBucketsResponse.newBuilder()
493             .setNextPageToken("")
494             .addAllBuckets(Arrays.asList(responsesElement))
495             .build();
496     mockStorage.addResponse(expectedResponse);
497 
498     String parent = "parent-995424086";
499 
500     ListBucketsPagedResponse pagedListResponse = client.listBuckets(parent);
501 
502     List<Bucket> resources = Lists.newArrayList(pagedListResponse.iterateAll());
503 
504     Assert.assertEquals(1, resources.size());
505     Assert.assertEquals(expectedResponse.getBucketsList().get(0), resources.get(0));
506 
507     List<AbstractMessage> actualRequests = mockStorage.getRequests();
508     Assert.assertEquals(1, actualRequests.size());
509     ListBucketsRequest actualRequest = ((ListBucketsRequest) actualRequests.get(0));
510 
511     Assert.assertEquals(parent, actualRequest.getParent());
512     Assert.assertTrue(
513         channelProvider.isHeaderSent(
514             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
515             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
516   }
517 
518   @Test
listBucketsExceptionTest2()519   public void listBucketsExceptionTest2() throws Exception {
520     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
521     mockStorage.addException(exception);
522 
523     try {
524       String parent = "parent-995424086";
525       client.listBuckets(parent);
526       Assert.fail("No exception raised");
527     } catch (InvalidArgumentException e) {
528       // Expected exception.
529     }
530   }
531 
532   @Test
lockBucketRetentionPolicyTest()533   public void lockBucketRetentionPolicyTest() throws Exception {
534     Bucket expectedResponse =
535         Bucket.newBuilder()
536             .setName(BucketName.of("[PROJECT]", "[BUCKET]").toString())
537             .setBucketId("bucketId-1603305307")
538             .setEtag("etag3123477")
539             .setProject(ProjectName.of("[PROJECT]").toString())
540             .setMetageneration(1048558813)
541             .setLocation("location1901043637")
542             .setLocationType("locationType-58277745")
543             .setStorageClass("storageClass871353277")
544             .setRpo("rpo113137")
545             .addAllAcl(new ArrayList<BucketAccessControl>())
546             .addAllDefaultObjectAcl(new ArrayList<ObjectAccessControl>())
547             .setLifecycle(Bucket.Lifecycle.newBuilder().build())
548             .setCreateTime(Timestamp.newBuilder().build())
549             .addAllCors(new ArrayList<Bucket.Cors>())
550             .setUpdateTime(Timestamp.newBuilder().build())
551             .setDefaultEventBasedHold(true)
552             .putAllLabels(new HashMap<String, String>())
553             .setWebsite(Bucket.Website.newBuilder().build())
554             .setVersioning(Bucket.Versioning.newBuilder().build())
555             .setLogging(Bucket.Logging.newBuilder().build())
556             .setOwner(Owner.newBuilder().build())
557             .setEncryption(Bucket.Encryption.newBuilder().build())
558             .setBilling(Bucket.Billing.newBuilder().build())
559             .setRetentionPolicy(Bucket.RetentionPolicy.newBuilder().build())
560             .setIamConfig(Bucket.IamConfig.newBuilder().build())
561             .setSatisfiesPzs(true)
562             .setCustomPlacementConfig(Bucket.CustomPlacementConfig.newBuilder().build())
563             .setAutoclass(Bucket.Autoclass.newBuilder().build())
564             .build();
565     mockStorage.addResponse(expectedResponse);
566 
567     BucketName bucket = BucketName.of("[PROJECT]", "[BUCKET]");
568 
569     Bucket actualResponse = client.lockBucketRetentionPolicy(bucket);
570     Assert.assertEquals(expectedResponse, actualResponse);
571 
572     List<AbstractMessage> actualRequests = mockStorage.getRequests();
573     Assert.assertEquals(1, actualRequests.size());
574     LockBucketRetentionPolicyRequest actualRequest =
575         ((LockBucketRetentionPolicyRequest) actualRequests.get(0));
576 
577     Assert.assertEquals(bucket.toString(), actualRequest.getBucket());
578     Assert.assertTrue(
579         channelProvider.isHeaderSent(
580             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
581             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
582   }
583 
584   @Test
lockBucketRetentionPolicyExceptionTest()585   public void lockBucketRetentionPolicyExceptionTest() throws Exception {
586     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
587     mockStorage.addException(exception);
588 
589     try {
590       BucketName bucket = BucketName.of("[PROJECT]", "[BUCKET]");
591       client.lockBucketRetentionPolicy(bucket);
592       Assert.fail("No exception raised");
593     } catch (InvalidArgumentException e) {
594       // Expected exception.
595     }
596   }
597 
598   @Test
lockBucketRetentionPolicyTest2()599   public void lockBucketRetentionPolicyTest2() throws Exception {
600     Bucket expectedResponse =
601         Bucket.newBuilder()
602             .setName(BucketName.of("[PROJECT]", "[BUCKET]").toString())
603             .setBucketId("bucketId-1603305307")
604             .setEtag("etag3123477")
605             .setProject(ProjectName.of("[PROJECT]").toString())
606             .setMetageneration(1048558813)
607             .setLocation("location1901043637")
608             .setLocationType("locationType-58277745")
609             .setStorageClass("storageClass871353277")
610             .setRpo("rpo113137")
611             .addAllAcl(new ArrayList<BucketAccessControl>())
612             .addAllDefaultObjectAcl(new ArrayList<ObjectAccessControl>())
613             .setLifecycle(Bucket.Lifecycle.newBuilder().build())
614             .setCreateTime(Timestamp.newBuilder().build())
615             .addAllCors(new ArrayList<Bucket.Cors>())
616             .setUpdateTime(Timestamp.newBuilder().build())
617             .setDefaultEventBasedHold(true)
618             .putAllLabels(new HashMap<String, String>())
619             .setWebsite(Bucket.Website.newBuilder().build())
620             .setVersioning(Bucket.Versioning.newBuilder().build())
621             .setLogging(Bucket.Logging.newBuilder().build())
622             .setOwner(Owner.newBuilder().build())
623             .setEncryption(Bucket.Encryption.newBuilder().build())
624             .setBilling(Bucket.Billing.newBuilder().build())
625             .setRetentionPolicy(Bucket.RetentionPolicy.newBuilder().build())
626             .setIamConfig(Bucket.IamConfig.newBuilder().build())
627             .setSatisfiesPzs(true)
628             .setCustomPlacementConfig(Bucket.CustomPlacementConfig.newBuilder().build())
629             .setAutoclass(Bucket.Autoclass.newBuilder().build())
630             .build();
631     mockStorage.addResponse(expectedResponse);
632 
633     String bucket = "bucket-1378203158";
634 
635     Bucket actualResponse = client.lockBucketRetentionPolicy(bucket);
636     Assert.assertEquals(expectedResponse, actualResponse);
637 
638     List<AbstractMessage> actualRequests = mockStorage.getRequests();
639     Assert.assertEquals(1, actualRequests.size());
640     LockBucketRetentionPolicyRequest actualRequest =
641         ((LockBucketRetentionPolicyRequest) actualRequests.get(0));
642 
643     Assert.assertEquals(bucket, actualRequest.getBucket());
644     Assert.assertTrue(
645         channelProvider.isHeaderSent(
646             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
647             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
648   }
649 
650   @Test
lockBucketRetentionPolicyExceptionTest2()651   public void lockBucketRetentionPolicyExceptionTest2() throws Exception {
652     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
653     mockStorage.addException(exception);
654 
655     try {
656       String bucket = "bucket-1378203158";
657       client.lockBucketRetentionPolicy(bucket);
658       Assert.fail("No exception raised");
659     } catch (InvalidArgumentException e) {
660       // Expected exception.
661     }
662   }
663 
664   @Test
getIamPolicyTest()665   public void getIamPolicyTest() throws Exception {
666     Policy expectedResponse =
667         Policy.newBuilder()
668             .setVersion(351608024)
669             .addAllBindings(new ArrayList<Binding>())
670             .addAllAuditConfigs(new ArrayList<AuditConfig>())
671             .setEtag(ByteString.EMPTY)
672             .build();
673     mockStorage.addResponse(expectedResponse);
674 
675     ResourceName resource =
676         CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]");
677 
678     Policy actualResponse = client.getIamPolicy(resource);
679     Assert.assertEquals(expectedResponse, actualResponse);
680 
681     List<AbstractMessage> actualRequests = mockStorage.getRequests();
682     Assert.assertEquals(1, actualRequests.size());
683     GetIamPolicyRequest actualRequest = ((GetIamPolicyRequest) actualRequests.get(0));
684 
685     Assert.assertEquals(resource.toString(), actualRequest.getResource());
686     Assert.assertTrue(
687         channelProvider.isHeaderSent(
688             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
689             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
690   }
691 
692   @Test
getIamPolicyExceptionTest()693   public void getIamPolicyExceptionTest() throws Exception {
694     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
695     mockStorage.addException(exception);
696 
697     try {
698       ResourceName resource =
699           CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]");
700       client.getIamPolicy(resource);
701       Assert.fail("No exception raised");
702     } catch (InvalidArgumentException e) {
703       // Expected exception.
704     }
705   }
706 
707   @Test
getIamPolicyTest2()708   public void getIamPolicyTest2() throws Exception {
709     Policy expectedResponse =
710         Policy.newBuilder()
711             .setVersion(351608024)
712             .addAllBindings(new ArrayList<Binding>())
713             .addAllAuditConfigs(new ArrayList<AuditConfig>())
714             .setEtag(ByteString.EMPTY)
715             .build();
716     mockStorage.addResponse(expectedResponse);
717 
718     String resource = "resource-341064690";
719 
720     Policy actualResponse = client.getIamPolicy(resource);
721     Assert.assertEquals(expectedResponse, actualResponse);
722 
723     List<AbstractMessage> actualRequests = mockStorage.getRequests();
724     Assert.assertEquals(1, actualRequests.size());
725     GetIamPolicyRequest actualRequest = ((GetIamPolicyRequest) actualRequests.get(0));
726 
727     Assert.assertEquals(resource, actualRequest.getResource());
728     Assert.assertTrue(
729         channelProvider.isHeaderSent(
730             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
731             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
732   }
733 
734   @Test
getIamPolicyExceptionTest2()735   public void getIamPolicyExceptionTest2() throws Exception {
736     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
737     mockStorage.addException(exception);
738 
739     try {
740       String resource = "resource-341064690";
741       client.getIamPolicy(resource);
742       Assert.fail("No exception raised");
743     } catch (InvalidArgumentException e) {
744       // Expected exception.
745     }
746   }
747 
748   @Test
setIamPolicyTest()749   public void setIamPolicyTest() throws Exception {
750     Policy expectedResponse =
751         Policy.newBuilder()
752             .setVersion(351608024)
753             .addAllBindings(new ArrayList<Binding>())
754             .addAllAuditConfigs(new ArrayList<AuditConfig>())
755             .setEtag(ByteString.EMPTY)
756             .build();
757     mockStorage.addResponse(expectedResponse);
758 
759     ResourceName resource =
760         CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]");
761     Policy policy = Policy.newBuilder().build();
762 
763     Policy actualResponse = client.setIamPolicy(resource, policy);
764     Assert.assertEquals(expectedResponse, actualResponse);
765 
766     List<AbstractMessage> actualRequests = mockStorage.getRequests();
767     Assert.assertEquals(1, actualRequests.size());
768     SetIamPolicyRequest actualRequest = ((SetIamPolicyRequest) actualRequests.get(0));
769 
770     Assert.assertEquals(resource.toString(), actualRequest.getResource());
771     Assert.assertEquals(policy, actualRequest.getPolicy());
772     Assert.assertTrue(
773         channelProvider.isHeaderSent(
774             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
775             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
776   }
777 
778   @Test
setIamPolicyExceptionTest()779   public void setIamPolicyExceptionTest() throws Exception {
780     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
781     mockStorage.addException(exception);
782 
783     try {
784       ResourceName resource =
785           CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]");
786       Policy policy = Policy.newBuilder().build();
787       client.setIamPolicy(resource, policy);
788       Assert.fail("No exception raised");
789     } catch (InvalidArgumentException e) {
790       // Expected exception.
791     }
792   }
793 
794   @Test
setIamPolicyTest2()795   public void setIamPolicyTest2() throws Exception {
796     Policy expectedResponse =
797         Policy.newBuilder()
798             .setVersion(351608024)
799             .addAllBindings(new ArrayList<Binding>())
800             .addAllAuditConfigs(new ArrayList<AuditConfig>())
801             .setEtag(ByteString.EMPTY)
802             .build();
803     mockStorage.addResponse(expectedResponse);
804 
805     String resource = "resource-341064690";
806     Policy policy = Policy.newBuilder().build();
807 
808     Policy actualResponse = client.setIamPolicy(resource, policy);
809     Assert.assertEquals(expectedResponse, actualResponse);
810 
811     List<AbstractMessage> actualRequests = mockStorage.getRequests();
812     Assert.assertEquals(1, actualRequests.size());
813     SetIamPolicyRequest actualRequest = ((SetIamPolicyRequest) actualRequests.get(0));
814 
815     Assert.assertEquals(resource, actualRequest.getResource());
816     Assert.assertEquals(policy, actualRequest.getPolicy());
817     Assert.assertTrue(
818         channelProvider.isHeaderSent(
819             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
820             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
821   }
822 
823   @Test
setIamPolicyExceptionTest2()824   public void setIamPolicyExceptionTest2() throws Exception {
825     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
826     mockStorage.addException(exception);
827 
828     try {
829       String resource = "resource-341064690";
830       Policy policy = Policy.newBuilder().build();
831       client.setIamPolicy(resource, policy);
832       Assert.fail("No exception raised");
833     } catch (InvalidArgumentException e) {
834       // Expected exception.
835     }
836   }
837 
838   @Test
testIamPermissionsTest()839   public void testIamPermissionsTest() throws Exception {
840     TestIamPermissionsResponse expectedResponse =
841         TestIamPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build();
842     mockStorage.addResponse(expectedResponse);
843 
844     ResourceName resource =
845         CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]");
846     List<String> permissions = new ArrayList<>();
847 
848     TestIamPermissionsResponse actualResponse = client.testIamPermissions(resource, permissions);
849     Assert.assertEquals(expectedResponse, actualResponse);
850 
851     List<AbstractMessage> actualRequests = mockStorage.getRequests();
852     Assert.assertEquals(1, actualRequests.size());
853     TestIamPermissionsRequest actualRequest = ((TestIamPermissionsRequest) actualRequests.get(0));
854 
855     Assert.assertEquals(resource.toString(), actualRequest.getResource());
856     Assert.assertEquals(permissions, actualRequest.getPermissionsList());
857     Assert.assertTrue(
858         channelProvider.isHeaderSent(
859             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
860             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
861   }
862 
863   @Test
testIamPermissionsExceptionTest()864   public void testIamPermissionsExceptionTest() throws Exception {
865     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
866     mockStorage.addException(exception);
867 
868     try {
869       ResourceName resource =
870           CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]");
871       List<String> permissions = new ArrayList<>();
872       client.testIamPermissions(resource, permissions);
873       Assert.fail("No exception raised");
874     } catch (InvalidArgumentException e) {
875       // Expected exception.
876     }
877   }
878 
879   @Test
testIamPermissionsTest2()880   public void testIamPermissionsTest2() throws Exception {
881     TestIamPermissionsResponse expectedResponse =
882         TestIamPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build();
883     mockStorage.addResponse(expectedResponse);
884 
885     String resource = "resource-341064690";
886     List<String> permissions = new ArrayList<>();
887 
888     TestIamPermissionsResponse actualResponse = client.testIamPermissions(resource, permissions);
889     Assert.assertEquals(expectedResponse, actualResponse);
890 
891     List<AbstractMessage> actualRequests = mockStorage.getRequests();
892     Assert.assertEquals(1, actualRequests.size());
893     TestIamPermissionsRequest actualRequest = ((TestIamPermissionsRequest) actualRequests.get(0));
894 
895     Assert.assertEquals(resource, actualRequest.getResource());
896     Assert.assertEquals(permissions, actualRequest.getPermissionsList());
897     Assert.assertTrue(
898         channelProvider.isHeaderSent(
899             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
900             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
901   }
902 
903   @Test
testIamPermissionsExceptionTest2()904   public void testIamPermissionsExceptionTest2() throws Exception {
905     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
906     mockStorage.addException(exception);
907 
908     try {
909       String resource = "resource-341064690";
910       List<String> permissions = new ArrayList<>();
911       client.testIamPermissions(resource, permissions);
912       Assert.fail("No exception raised");
913     } catch (InvalidArgumentException e) {
914       // Expected exception.
915     }
916   }
917 
918   @Test
updateBucketTest()919   public void updateBucketTest() throws Exception {
920     Bucket expectedResponse =
921         Bucket.newBuilder()
922             .setName(BucketName.of("[PROJECT]", "[BUCKET]").toString())
923             .setBucketId("bucketId-1603305307")
924             .setEtag("etag3123477")
925             .setProject(ProjectName.of("[PROJECT]").toString())
926             .setMetageneration(1048558813)
927             .setLocation("location1901043637")
928             .setLocationType("locationType-58277745")
929             .setStorageClass("storageClass871353277")
930             .setRpo("rpo113137")
931             .addAllAcl(new ArrayList<BucketAccessControl>())
932             .addAllDefaultObjectAcl(new ArrayList<ObjectAccessControl>())
933             .setLifecycle(Bucket.Lifecycle.newBuilder().build())
934             .setCreateTime(Timestamp.newBuilder().build())
935             .addAllCors(new ArrayList<Bucket.Cors>())
936             .setUpdateTime(Timestamp.newBuilder().build())
937             .setDefaultEventBasedHold(true)
938             .putAllLabels(new HashMap<String, String>())
939             .setWebsite(Bucket.Website.newBuilder().build())
940             .setVersioning(Bucket.Versioning.newBuilder().build())
941             .setLogging(Bucket.Logging.newBuilder().build())
942             .setOwner(Owner.newBuilder().build())
943             .setEncryption(Bucket.Encryption.newBuilder().build())
944             .setBilling(Bucket.Billing.newBuilder().build())
945             .setRetentionPolicy(Bucket.RetentionPolicy.newBuilder().build())
946             .setIamConfig(Bucket.IamConfig.newBuilder().build())
947             .setSatisfiesPzs(true)
948             .setCustomPlacementConfig(Bucket.CustomPlacementConfig.newBuilder().build())
949             .setAutoclass(Bucket.Autoclass.newBuilder().build())
950             .build();
951     mockStorage.addResponse(expectedResponse);
952 
953     Bucket bucket = Bucket.newBuilder().build();
954     FieldMask updateMask = FieldMask.newBuilder().build();
955 
956     Bucket actualResponse = client.updateBucket(bucket, updateMask);
957     Assert.assertEquals(expectedResponse, actualResponse);
958 
959     List<AbstractMessage> actualRequests = mockStorage.getRequests();
960     Assert.assertEquals(1, actualRequests.size());
961     UpdateBucketRequest actualRequest = ((UpdateBucketRequest) actualRequests.get(0));
962 
963     Assert.assertEquals(bucket, actualRequest.getBucket());
964     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
965     Assert.assertTrue(
966         channelProvider.isHeaderSent(
967             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
968             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
969   }
970 
971   @Test
updateBucketExceptionTest()972   public void updateBucketExceptionTest() throws Exception {
973     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
974     mockStorage.addException(exception);
975 
976     try {
977       Bucket bucket = Bucket.newBuilder().build();
978       FieldMask updateMask = FieldMask.newBuilder().build();
979       client.updateBucket(bucket, updateMask);
980       Assert.fail("No exception raised");
981     } catch (InvalidArgumentException e) {
982       // Expected exception.
983     }
984   }
985 
986   @Test
deleteNotificationTest()987   public void deleteNotificationTest() throws Exception {
988     Empty expectedResponse = Empty.newBuilder().build();
989     mockStorage.addResponse(expectedResponse);
990 
991     NotificationName name = NotificationName.of("[PROJECT]", "[BUCKET]", "[NOTIFICATION]");
992 
993     client.deleteNotification(name);
994 
995     List<AbstractMessage> actualRequests = mockStorage.getRequests();
996     Assert.assertEquals(1, actualRequests.size());
997     DeleteNotificationRequest actualRequest = ((DeleteNotificationRequest) actualRequests.get(0));
998 
999     Assert.assertEquals(name.toString(), actualRequest.getName());
1000     Assert.assertTrue(
1001         channelProvider.isHeaderSent(
1002             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1003             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1004   }
1005 
1006   @Test
deleteNotificationExceptionTest()1007   public void deleteNotificationExceptionTest() throws Exception {
1008     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1009     mockStorage.addException(exception);
1010 
1011     try {
1012       NotificationName name = NotificationName.of("[PROJECT]", "[BUCKET]", "[NOTIFICATION]");
1013       client.deleteNotification(name);
1014       Assert.fail("No exception raised");
1015     } catch (InvalidArgumentException e) {
1016       // Expected exception.
1017     }
1018   }
1019 
1020   @Test
deleteNotificationTest2()1021   public void deleteNotificationTest2() throws Exception {
1022     Empty expectedResponse = Empty.newBuilder().build();
1023     mockStorage.addResponse(expectedResponse);
1024 
1025     String name = "name3373707";
1026 
1027     client.deleteNotification(name);
1028 
1029     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1030     Assert.assertEquals(1, actualRequests.size());
1031     DeleteNotificationRequest actualRequest = ((DeleteNotificationRequest) actualRequests.get(0));
1032 
1033     Assert.assertEquals(name, actualRequest.getName());
1034     Assert.assertTrue(
1035         channelProvider.isHeaderSent(
1036             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1037             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1038   }
1039 
1040   @Test
deleteNotificationExceptionTest2()1041   public void deleteNotificationExceptionTest2() throws Exception {
1042     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1043     mockStorage.addException(exception);
1044 
1045     try {
1046       String name = "name3373707";
1047       client.deleteNotification(name);
1048       Assert.fail("No exception raised");
1049     } catch (InvalidArgumentException e) {
1050       // Expected exception.
1051     }
1052   }
1053 
1054   @Test
getNotificationTest()1055   public void getNotificationTest() throws Exception {
1056     Notification expectedResponse =
1057         Notification.newBuilder()
1058             .setName(NotificationName.of("[PROJECT]", "[BUCKET]", "[NOTIFICATION]").toString())
1059             .setTopic("topic110546223")
1060             .setEtag("etag3123477")
1061             .addAllEventTypes(new ArrayList<String>())
1062             .putAllCustomAttributes(new HashMap<String, String>())
1063             .setObjectNamePrefix("objectNamePrefix-1978236516")
1064             .setPayloadFormat("payloadFormat-2140609755")
1065             .build();
1066     mockStorage.addResponse(expectedResponse);
1067 
1068     BucketName name = BucketName.of("[PROJECT]", "[BUCKET]");
1069 
1070     Notification actualResponse = client.getNotification(name);
1071     Assert.assertEquals(expectedResponse, actualResponse);
1072 
1073     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1074     Assert.assertEquals(1, actualRequests.size());
1075     GetNotificationRequest actualRequest = ((GetNotificationRequest) actualRequests.get(0));
1076 
1077     Assert.assertEquals(name.toString(), actualRequest.getName());
1078     Assert.assertTrue(
1079         channelProvider.isHeaderSent(
1080             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1081             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1082   }
1083 
1084   @Test
getNotificationExceptionTest()1085   public void getNotificationExceptionTest() throws Exception {
1086     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1087     mockStorage.addException(exception);
1088 
1089     try {
1090       BucketName name = BucketName.of("[PROJECT]", "[BUCKET]");
1091       client.getNotification(name);
1092       Assert.fail("No exception raised");
1093     } catch (InvalidArgumentException e) {
1094       // Expected exception.
1095     }
1096   }
1097 
1098   @Test
getNotificationTest2()1099   public void getNotificationTest2() throws Exception {
1100     Notification expectedResponse =
1101         Notification.newBuilder()
1102             .setName(NotificationName.of("[PROJECT]", "[BUCKET]", "[NOTIFICATION]").toString())
1103             .setTopic("topic110546223")
1104             .setEtag("etag3123477")
1105             .addAllEventTypes(new ArrayList<String>())
1106             .putAllCustomAttributes(new HashMap<String, String>())
1107             .setObjectNamePrefix("objectNamePrefix-1978236516")
1108             .setPayloadFormat("payloadFormat-2140609755")
1109             .build();
1110     mockStorage.addResponse(expectedResponse);
1111 
1112     String name = "name3373707";
1113 
1114     Notification actualResponse = client.getNotification(name);
1115     Assert.assertEquals(expectedResponse, actualResponse);
1116 
1117     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1118     Assert.assertEquals(1, actualRequests.size());
1119     GetNotificationRequest actualRequest = ((GetNotificationRequest) actualRequests.get(0));
1120 
1121     Assert.assertEquals(name, actualRequest.getName());
1122     Assert.assertTrue(
1123         channelProvider.isHeaderSent(
1124             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1125             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1126   }
1127 
1128   @Test
getNotificationExceptionTest2()1129   public void getNotificationExceptionTest2() throws Exception {
1130     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1131     mockStorage.addException(exception);
1132 
1133     try {
1134       String name = "name3373707";
1135       client.getNotification(name);
1136       Assert.fail("No exception raised");
1137     } catch (InvalidArgumentException e) {
1138       // Expected exception.
1139     }
1140   }
1141 
1142   @Test
createNotificationTest()1143   public void createNotificationTest() throws Exception {
1144     Notification expectedResponse =
1145         Notification.newBuilder()
1146             .setName(NotificationName.of("[PROJECT]", "[BUCKET]", "[NOTIFICATION]").toString())
1147             .setTopic("topic110546223")
1148             .setEtag("etag3123477")
1149             .addAllEventTypes(new ArrayList<String>())
1150             .putAllCustomAttributes(new HashMap<String, String>())
1151             .setObjectNamePrefix("objectNamePrefix-1978236516")
1152             .setPayloadFormat("payloadFormat-2140609755")
1153             .build();
1154     mockStorage.addResponse(expectedResponse);
1155 
1156     ProjectName parent = ProjectName.of("[PROJECT]");
1157     Notification notification = Notification.newBuilder().build();
1158 
1159     Notification actualResponse = client.createNotification(parent, notification);
1160     Assert.assertEquals(expectedResponse, actualResponse);
1161 
1162     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1163     Assert.assertEquals(1, actualRequests.size());
1164     CreateNotificationRequest actualRequest = ((CreateNotificationRequest) actualRequests.get(0));
1165 
1166     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1167     Assert.assertEquals(notification, actualRequest.getNotification());
1168     Assert.assertTrue(
1169         channelProvider.isHeaderSent(
1170             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1171             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1172   }
1173 
1174   @Test
createNotificationExceptionTest()1175   public void createNotificationExceptionTest() throws Exception {
1176     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1177     mockStorage.addException(exception);
1178 
1179     try {
1180       ProjectName parent = ProjectName.of("[PROJECT]");
1181       Notification notification = Notification.newBuilder().build();
1182       client.createNotification(parent, notification);
1183       Assert.fail("No exception raised");
1184     } catch (InvalidArgumentException e) {
1185       // Expected exception.
1186     }
1187   }
1188 
1189   @Test
createNotificationTest2()1190   public void createNotificationTest2() throws Exception {
1191     Notification expectedResponse =
1192         Notification.newBuilder()
1193             .setName(NotificationName.of("[PROJECT]", "[BUCKET]", "[NOTIFICATION]").toString())
1194             .setTopic("topic110546223")
1195             .setEtag("etag3123477")
1196             .addAllEventTypes(new ArrayList<String>())
1197             .putAllCustomAttributes(new HashMap<String, String>())
1198             .setObjectNamePrefix("objectNamePrefix-1978236516")
1199             .setPayloadFormat("payloadFormat-2140609755")
1200             .build();
1201     mockStorage.addResponse(expectedResponse);
1202 
1203     String parent = "parent-995424086";
1204     Notification notification = Notification.newBuilder().build();
1205 
1206     Notification actualResponse = client.createNotification(parent, notification);
1207     Assert.assertEquals(expectedResponse, actualResponse);
1208 
1209     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1210     Assert.assertEquals(1, actualRequests.size());
1211     CreateNotificationRequest actualRequest = ((CreateNotificationRequest) actualRequests.get(0));
1212 
1213     Assert.assertEquals(parent, actualRequest.getParent());
1214     Assert.assertEquals(notification, actualRequest.getNotification());
1215     Assert.assertTrue(
1216         channelProvider.isHeaderSent(
1217             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1218             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1219   }
1220 
1221   @Test
createNotificationExceptionTest2()1222   public void createNotificationExceptionTest2() throws Exception {
1223     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1224     mockStorage.addException(exception);
1225 
1226     try {
1227       String parent = "parent-995424086";
1228       Notification notification = Notification.newBuilder().build();
1229       client.createNotification(parent, notification);
1230       Assert.fail("No exception raised");
1231     } catch (InvalidArgumentException e) {
1232       // Expected exception.
1233     }
1234   }
1235 
1236   @Test
listNotificationsTest()1237   public void listNotificationsTest() throws Exception {
1238     Notification responsesElement = Notification.newBuilder().build();
1239     ListNotificationsResponse expectedResponse =
1240         ListNotificationsResponse.newBuilder()
1241             .setNextPageToken("")
1242             .addAllNotifications(Arrays.asList(responsesElement))
1243             .build();
1244     mockStorage.addResponse(expectedResponse);
1245 
1246     ProjectName parent = ProjectName.of("[PROJECT]");
1247 
1248     ListNotificationsPagedResponse pagedListResponse = client.listNotifications(parent);
1249 
1250     List<Notification> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1251 
1252     Assert.assertEquals(1, resources.size());
1253     Assert.assertEquals(expectedResponse.getNotificationsList().get(0), resources.get(0));
1254 
1255     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1256     Assert.assertEquals(1, actualRequests.size());
1257     ListNotificationsRequest actualRequest = ((ListNotificationsRequest) actualRequests.get(0));
1258 
1259     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1260     Assert.assertTrue(
1261         channelProvider.isHeaderSent(
1262             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1263             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1264   }
1265 
1266   @Test
listNotificationsExceptionTest()1267   public void listNotificationsExceptionTest() throws Exception {
1268     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1269     mockStorage.addException(exception);
1270 
1271     try {
1272       ProjectName parent = ProjectName.of("[PROJECT]");
1273       client.listNotifications(parent);
1274       Assert.fail("No exception raised");
1275     } catch (InvalidArgumentException e) {
1276       // Expected exception.
1277     }
1278   }
1279 
1280   @Test
listNotificationsTest2()1281   public void listNotificationsTest2() throws Exception {
1282     Notification responsesElement = Notification.newBuilder().build();
1283     ListNotificationsResponse expectedResponse =
1284         ListNotificationsResponse.newBuilder()
1285             .setNextPageToken("")
1286             .addAllNotifications(Arrays.asList(responsesElement))
1287             .build();
1288     mockStorage.addResponse(expectedResponse);
1289 
1290     String parent = "parent-995424086";
1291 
1292     ListNotificationsPagedResponse pagedListResponse = client.listNotifications(parent);
1293 
1294     List<Notification> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1295 
1296     Assert.assertEquals(1, resources.size());
1297     Assert.assertEquals(expectedResponse.getNotificationsList().get(0), resources.get(0));
1298 
1299     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1300     Assert.assertEquals(1, actualRequests.size());
1301     ListNotificationsRequest actualRequest = ((ListNotificationsRequest) actualRequests.get(0));
1302 
1303     Assert.assertEquals(parent, actualRequest.getParent());
1304     Assert.assertTrue(
1305         channelProvider.isHeaderSent(
1306             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1307             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1308   }
1309 
1310   @Test
listNotificationsExceptionTest2()1311   public void listNotificationsExceptionTest2() throws Exception {
1312     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1313     mockStorage.addException(exception);
1314 
1315     try {
1316       String parent = "parent-995424086";
1317       client.listNotifications(parent);
1318       Assert.fail("No exception raised");
1319     } catch (InvalidArgumentException e) {
1320       // Expected exception.
1321     }
1322   }
1323 
1324   @Test
composeObjectTest()1325   public void composeObjectTest() throws Exception {
1326     Object expectedResponse =
1327         Object.newBuilder()
1328             .setName("name3373707")
1329             .setBucket(BucketName.of("[PROJECT]", "[BUCKET]").toString())
1330             .setEtag("etag3123477")
1331             .setGeneration(305703192)
1332             .setMetageneration(1048558813)
1333             .setStorageClass("storageClass871353277")
1334             .setSize(3530753)
1335             .setContentEncoding("contentEncoding-160088852")
1336             .setContentDisposition("contentDisposition1034341758")
1337             .setCacheControl("cacheControl-1336592517")
1338             .addAllAcl(new ArrayList<ObjectAccessControl>())
1339             .setContentLanguage("contentLanguage810066673")
1340             .setDeleteTime(Timestamp.newBuilder().build())
1341             .setContentType("contentType-389131437")
1342             .setCreateTime(Timestamp.newBuilder().build())
1343             .setComponentCount(-485073075)
1344             .setChecksums(ObjectChecksums.newBuilder().build())
1345             .setUpdateTime(Timestamp.newBuilder().build())
1346             .setKmsKey(
1347                 CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
1348                     .toString())
1349             .setUpdateStorageClassTime(Timestamp.newBuilder().build())
1350             .setTemporaryHold(true)
1351             .setRetentionExpireTime(Timestamp.newBuilder().build())
1352             .putAllMetadata(new HashMap<String, String>())
1353             .setEventBasedHold(true)
1354             .setOwner(Owner.newBuilder().build())
1355             .setCustomerEncryption(CustomerEncryption.newBuilder().build())
1356             .setCustomTime(Timestamp.newBuilder().build())
1357             .build();
1358     mockStorage.addResponse(expectedResponse);
1359 
1360     ComposeObjectRequest request =
1361         ComposeObjectRequest.newBuilder()
1362             .setDestination(Object.newBuilder().build())
1363             .addAllSourceObjects(new ArrayList<ComposeObjectRequest.SourceObject>())
1364             .setDestinationPredefinedAcl("destinationPredefinedAcl1111125814")
1365             .setIfGenerationMatch(-1086241088)
1366             .setIfMetagenerationMatch(1043427781)
1367             .setKmsKey(
1368                 CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
1369                     .toString())
1370             .setCommonObjectRequestParams(CommonObjectRequestParams.newBuilder().build())
1371             .setObjectChecksums(ObjectChecksums.newBuilder().build())
1372             .build();
1373 
1374     Object actualResponse = client.composeObject(request);
1375     Assert.assertEquals(expectedResponse, actualResponse);
1376 
1377     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1378     Assert.assertEquals(1, actualRequests.size());
1379     ComposeObjectRequest actualRequest = ((ComposeObjectRequest) actualRequests.get(0));
1380 
1381     Assert.assertEquals(request.getDestination(), actualRequest.getDestination());
1382     Assert.assertEquals(request.getSourceObjectsList(), actualRequest.getSourceObjectsList());
1383     Assert.assertEquals(
1384         request.getDestinationPredefinedAcl(), actualRequest.getDestinationPredefinedAcl());
1385     Assert.assertEquals(request.getIfGenerationMatch(), actualRequest.getIfGenerationMatch());
1386     Assert.assertEquals(
1387         request.getIfMetagenerationMatch(), actualRequest.getIfMetagenerationMatch());
1388     Assert.assertEquals(request.getKmsKey(), actualRequest.getKmsKey());
1389     Assert.assertEquals(
1390         request.getCommonObjectRequestParams(), actualRequest.getCommonObjectRequestParams());
1391     Assert.assertEquals(request.getObjectChecksums(), actualRequest.getObjectChecksums());
1392     Assert.assertTrue(
1393         channelProvider.isHeaderSent(
1394             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1395             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1396   }
1397 
1398   @Test
composeObjectExceptionTest()1399   public void composeObjectExceptionTest() throws Exception {
1400     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1401     mockStorage.addException(exception);
1402 
1403     try {
1404       ComposeObjectRequest request =
1405           ComposeObjectRequest.newBuilder()
1406               .setDestination(Object.newBuilder().build())
1407               .addAllSourceObjects(new ArrayList<ComposeObjectRequest.SourceObject>())
1408               .setDestinationPredefinedAcl("destinationPredefinedAcl1111125814")
1409               .setIfGenerationMatch(-1086241088)
1410               .setIfMetagenerationMatch(1043427781)
1411               .setKmsKey(
1412                   CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
1413                       .toString())
1414               .setCommonObjectRequestParams(CommonObjectRequestParams.newBuilder().build())
1415               .setObjectChecksums(ObjectChecksums.newBuilder().build())
1416               .build();
1417       client.composeObject(request);
1418       Assert.fail("No exception raised");
1419     } catch (InvalidArgumentException e) {
1420       // Expected exception.
1421     }
1422   }
1423 
1424   @Test
deleteObjectTest()1425   public void deleteObjectTest() throws Exception {
1426     Empty expectedResponse = Empty.newBuilder().build();
1427     mockStorage.addResponse(expectedResponse);
1428 
1429     String bucket = "bucket-1378203158";
1430     String object = "object-1023368385";
1431 
1432     client.deleteObject(bucket, object);
1433 
1434     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1435     Assert.assertEquals(1, actualRequests.size());
1436     DeleteObjectRequest actualRequest = ((DeleteObjectRequest) actualRequests.get(0));
1437 
1438     Assert.assertEquals(bucket, actualRequest.getBucket());
1439     Assert.assertEquals(object, actualRequest.getObject());
1440     Assert.assertTrue(
1441         channelProvider.isHeaderSent(
1442             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1443             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1444   }
1445 
1446   @Test
deleteObjectExceptionTest()1447   public void deleteObjectExceptionTest() throws Exception {
1448     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1449     mockStorage.addException(exception);
1450 
1451     try {
1452       String bucket = "bucket-1378203158";
1453       String object = "object-1023368385";
1454       client.deleteObject(bucket, object);
1455       Assert.fail("No exception raised");
1456     } catch (InvalidArgumentException e) {
1457       // Expected exception.
1458     }
1459   }
1460 
1461   @Test
deleteObjectTest2()1462   public void deleteObjectTest2() throws Exception {
1463     Empty expectedResponse = Empty.newBuilder().build();
1464     mockStorage.addResponse(expectedResponse);
1465 
1466     String bucket = "bucket-1378203158";
1467     String object = "object-1023368385";
1468     long generation = 305703192;
1469 
1470     client.deleteObject(bucket, object, generation);
1471 
1472     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1473     Assert.assertEquals(1, actualRequests.size());
1474     DeleteObjectRequest actualRequest = ((DeleteObjectRequest) actualRequests.get(0));
1475 
1476     Assert.assertEquals(bucket, actualRequest.getBucket());
1477     Assert.assertEquals(object, actualRequest.getObject());
1478     Assert.assertEquals(generation, actualRequest.getGeneration());
1479     Assert.assertTrue(
1480         channelProvider.isHeaderSent(
1481             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1482             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1483   }
1484 
1485   @Test
deleteObjectExceptionTest2()1486   public void deleteObjectExceptionTest2() throws Exception {
1487     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1488     mockStorage.addException(exception);
1489 
1490     try {
1491       String bucket = "bucket-1378203158";
1492       String object = "object-1023368385";
1493       long generation = 305703192;
1494       client.deleteObject(bucket, object, generation);
1495       Assert.fail("No exception raised");
1496     } catch (InvalidArgumentException e) {
1497       // Expected exception.
1498     }
1499   }
1500 
1501   @Test
cancelResumableWriteTest()1502   public void cancelResumableWriteTest() throws Exception {
1503     CancelResumableWriteResponse expectedResponse =
1504         CancelResumableWriteResponse.newBuilder().build();
1505     mockStorage.addResponse(expectedResponse);
1506 
1507     String uploadId = "uploadId1563990780";
1508 
1509     CancelResumableWriteResponse actualResponse = client.cancelResumableWrite(uploadId);
1510     Assert.assertEquals(expectedResponse, actualResponse);
1511 
1512     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1513     Assert.assertEquals(1, actualRequests.size());
1514     CancelResumableWriteRequest actualRequest =
1515         ((CancelResumableWriteRequest) actualRequests.get(0));
1516 
1517     Assert.assertEquals(uploadId, actualRequest.getUploadId());
1518     Assert.assertTrue(
1519         channelProvider.isHeaderSent(
1520             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1521             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1522   }
1523 
1524   @Test
cancelResumableWriteExceptionTest()1525   public void cancelResumableWriteExceptionTest() throws Exception {
1526     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1527     mockStorage.addException(exception);
1528 
1529     try {
1530       String uploadId = "uploadId1563990780";
1531       client.cancelResumableWrite(uploadId);
1532       Assert.fail("No exception raised");
1533     } catch (InvalidArgumentException e) {
1534       // Expected exception.
1535     }
1536   }
1537 
1538   @Test
getObjectTest()1539   public void getObjectTest() throws Exception {
1540     Object expectedResponse =
1541         Object.newBuilder()
1542             .setName("name3373707")
1543             .setBucket(BucketName.of("[PROJECT]", "[BUCKET]").toString())
1544             .setEtag("etag3123477")
1545             .setGeneration(305703192)
1546             .setMetageneration(1048558813)
1547             .setStorageClass("storageClass871353277")
1548             .setSize(3530753)
1549             .setContentEncoding("contentEncoding-160088852")
1550             .setContentDisposition("contentDisposition1034341758")
1551             .setCacheControl("cacheControl-1336592517")
1552             .addAllAcl(new ArrayList<ObjectAccessControl>())
1553             .setContentLanguage("contentLanguage810066673")
1554             .setDeleteTime(Timestamp.newBuilder().build())
1555             .setContentType("contentType-389131437")
1556             .setCreateTime(Timestamp.newBuilder().build())
1557             .setComponentCount(-485073075)
1558             .setChecksums(ObjectChecksums.newBuilder().build())
1559             .setUpdateTime(Timestamp.newBuilder().build())
1560             .setKmsKey(
1561                 CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
1562                     .toString())
1563             .setUpdateStorageClassTime(Timestamp.newBuilder().build())
1564             .setTemporaryHold(true)
1565             .setRetentionExpireTime(Timestamp.newBuilder().build())
1566             .putAllMetadata(new HashMap<String, String>())
1567             .setEventBasedHold(true)
1568             .setOwner(Owner.newBuilder().build())
1569             .setCustomerEncryption(CustomerEncryption.newBuilder().build())
1570             .setCustomTime(Timestamp.newBuilder().build())
1571             .build();
1572     mockStorage.addResponse(expectedResponse);
1573 
1574     String bucket = "bucket-1378203158";
1575     String object = "object-1023368385";
1576 
1577     Object actualResponse = client.getObject(bucket, object);
1578     Assert.assertEquals(expectedResponse, actualResponse);
1579 
1580     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1581     Assert.assertEquals(1, actualRequests.size());
1582     GetObjectRequest actualRequest = ((GetObjectRequest) actualRequests.get(0));
1583 
1584     Assert.assertEquals(bucket, actualRequest.getBucket());
1585     Assert.assertEquals(object, actualRequest.getObject());
1586     Assert.assertTrue(
1587         channelProvider.isHeaderSent(
1588             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1589             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1590   }
1591 
1592   @Test
getObjectExceptionTest()1593   public void getObjectExceptionTest() throws Exception {
1594     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1595     mockStorage.addException(exception);
1596 
1597     try {
1598       String bucket = "bucket-1378203158";
1599       String object = "object-1023368385";
1600       client.getObject(bucket, object);
1601       Assert.fail("No exception raised");
1602     } catch (InvalidArgumentException e) {
1603       // Expected exception.
1604     }
1605   }
1606 
1607   @Test
getObjectTest2()1608   public void getObjectTest2() throws Exception {
1609     Object expectedResponse =
1610         Object.newBuilder()
1611             .setName("name3373707")
1612             .setBucket(BucketName.of("[PROJECT]", "[BUCKET]").toString())
1613             .setEtag("etag3123477")
1614             .setGeneration(305703192)
1615             .setMetageneration(1048558813)
1616             .setStorageClass("storageClass871353277")
1617             .setSize(3530753)
1618             .setContentEncoding("contentEncoding-160088852")
1619             .setContentDisposition("contentDisposition1034341758")
1620             .setCacheControl("cacheControl-1336592517")
1621             .addAllAcl(new ArrayList<ObjectAccessControl>())
1622             .setContentLanguage("contentLanguage810066673")
1623             .setDeleteTime(Timestamp.newBuilder().build())
1624             .setContentType("contentType-389131437")
1625             .setCreateTime(Timestamp.newBuilder().build())
1626             .setComponentCount(-485073075)
1627             .setChecksums(ObjectChecksums.newBuilder().build())
1628             .setUpdateTime(Timestamp.newBuilder().build())
1629             .setKmsKey(
1630                 CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
1631                     .toString())
1632             .setUpdateStorageClassTime(Timestamp.newBuilder().build())
1633             .setTemporaryHold(true)
1634             .setRetentionExpireTime(Timestamp.newBuilder().build())
1635             .putAllMetadata(new HashMap<String, String>())
1636             .setEventBasedHold(true)
1637             .setOwner(Owner.newBuilder().build())
1638             .setCustomerEncryption(CustomerEncryption.newBuilder().build())
1639             .setCustomTime(Timestamp.newBuilder().build())
1640             .build();
1641     mockStorage.addResponse(expectedResponse);
1642 
1643     String bucket = "bucket-1378203158";
1644     String object = "object-1023368385";
1645     long generation = 305703192;
1646 
1647     Object actualResponse = client.getObject(bucket, object, generation);
1648     Assert.assertEquals(expectedResponse, actualResponse);
1649 
1650     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1651     Assert.assertEquals(1, actualRequests.size());
1652     GetObjectRequest actualRequest = ((GetObjectRequest) actualRequests.get(0));
1653 
1654     Assert.assertEquals(bucket, actualRequest.getBucket());
1655     Assert.assertEquals(object, actualRequest.getObject());
1656     Assert.assertEquals(generation, actualRequest.getGeneration());
1657     Assert.assertTrue(
1658         channelProvider.isHeaderSent(
1659             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1660             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1661   }
1662 
1663   @Test
getObjectExceptionTest2()1664   public void getObjectExceptionTest2() throws Exception {
1665     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1666     mockStorage.addException(exception);
1667 
1668     try {
1669       String bucket = "bucket-1378203158";
1670       String object = "object-1023368385";
1671       long generation = 305703192;
1672       client.getObject(bucket, object, generation);
1673       Assert.fail("No exception raised");
1674     } catch (InvalidArgumentException e) {
1675       // Expected exception.
1676     }
1677   }
1678 
1679   @Test
readObjectTest()1680   public void readObjectTest() throws Exception {
1681     ReadObjectResponse expectedResponse =
1682         ReadObjectResponse.newBuilder()
1683             .setChecksummedData(ChecksummedData.newBuilder().build())
1684             .setObjectChecksums(ObjectChecksums.newBuilder().build())
1685             .setContentRange(ContentRange.newBuilder().build())
1686             .setMetadata(Object.newBuilder().build())
1687             .build();
1688     mockStorage.addResponse(expectedResponse);
1689     ReadObjectRequest request =
1690         ReadObjectRequest.newBuilder()
1691             .setBucket("bucket-1378203158")
1692             .setObject("object-1023368385")
1693             .setGeneration(305703192)
1694             .setReadOffset(-715377828)
1695             .setReadLimit(-164298798)
1696             .setIfGenerationMatch(-1086241088)
1697             .setIfGenerationNotMatch(1475720404)
1698             .setIfMetagenerationMatch(1043427781)
1699             .setIfMetagenerationNotMatch(1025430873)
1700             .setCommonObjectRequestParams(CommonObjectRequestParams.newBuilder().build())
1701             .setReadMask(FieldMask.newBuilder().build())
1702             .build();
1703 
1704     MockStreamObserver<ReadObjectResponse> responseObserver = new MockStreamObserver<>();
1705 
1706     ServerStreamingCallable<ReadObjectRequest, ReadObjectResponse> callable =
1707         client.readObjectCallable();
1708     callable.serverStreamingCall(request, responseObserver);
1709 
1710     List<ReadObjectResponse> actualResponses = responseObserver.future().get();
1711     Assert.assertEquals(1, actualResponses.size());
1712     Assert.assertEquals(expectedResponse, actualResponses.get(0));
1713   }
1714 
1715   @Test
readObjectExceptionTest()1716   public void readObjectExceptionTest() throws Exception {
1717     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1718     mockStorage.addException(exception);
1719     ReadObjectRequest request =
1720         ReadObjectRequest.newBuilder()
1721             .setBucket("bucket-1378203158")
1722             .setObject("object-1023368385")
1723             .setGeneration(305703192)
1724             .setReadOffset(-715377828)
1725             .setReadLimit(-164298798)
1726             .setIfGenerationMatch(-1086241088)
1727             .setIfGenerationNotMatch(1475720404)
1728             .setIfMetagenerationMatch(1043427781)
1729             .setIfMetagenerationNotMatch(1025430873)
1730             .setCommonObjectRequestParams(CommonObjectRequestParams.newBuilder().build())
1731             .setReadMask(FieldMask.newBuilder().build())
1732             .build();
1733 
1734     MockStreamObserver<ReadObjectResponse> responseObserver = new MockStreamObserver<>();
1735 
1736     ServerStreamingCallable<ReadObjectRequest, ReadObjectResponse> callable =
1737         client.readObjectCallable();
1738     callable.serverStreamingCall(request, responseObserver);
1739 
1740     try {
1741       List<ReadObjectResponse> actualResponses = responseObserver.future().get();
1742       Assert.fail("No exception thrown");
1743     } catch (ExecutionException e) {
1744       Assert.assertTrue(e.getCause() instanceof InvalidArgumentException);
1745       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1746       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1747     }
1748   }
1749 
1750   @Test
updateObjectTest()1751   public void updateObjectTest() throws Exception {
1752     Object expectedResponse =
1753         Object.newBuilder()
1754             .setName("name3373707")
1755             .setBucket(BucketName.of("[PROJECT]", "[BUCKET]").toString())
1756             .setEtag("etag3123477")
1757             .setGeneration(305703192)
1758             .setMetageneration(1048558813)
1759             .setStorageClass("storageClass871353277")
1760             .setSize(3530753)
1761             .setContentEncoding("contentEncoding-160088852")
1762             .setContentDisposition("contentDisposition1034341758")
1763             .setCacheControl("cacheControl-1336592517")
1764             .addAllAcl(new ArrayList<ObjectAccessControl>())
1765             .setContentLanguage("contentLanguage810066673")
1766             .setDeleteTime(Timestamp.newBuilder().build())
1767             .setContentType("contentType-389131437")
1768             .setCreateTime(Timestamp.newBuilder().build())
1769             .setComponentCount(-485073075)
1770             .setChecksums(ObjectChecksums.newBuilder().build())
1771             .setUpdateTime(Timestamp.newBuilder().build())
1772             .setKmsKey(
1773                 CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
1774                     .toString())
1775             .setUpdateStorageClassTime(Timestamp.newBuilder().build())
1776             .setTemporaryHold(true)
1777             .setRetentionExpireTime(Timestamp.newBuilder().build())
1778             .putAllMetadata(new HashMap<String, String>())
1779             .setEventBasedHold(true)
1780             .setOwner(Owner.newBuilder().build())
1781             .setCustomerEncryption(CustomerEncryption.newBuilder().build())
1782             .setCustomTime(Timestamp.newBuilder().build())
1783             .build();
1784     mockStorage.addResponse(expectedResponse);
1785 
1786     Object object = Object.newBuilder().build();
1787     FieldMask updateMask = FieldMask.newBuilder().build();
1788 
1789     Object actualResponse = client.updateObject(object, updateMask);
1790     Assert.assertEquals(expectedResponse, actualResponse);
1791 
1792     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1793     Assert.assertEquals(1, actualRequests.size());
1794     UpdateObjectRequest actualRequest = ((UpdateObjectRequest) actualRequests.get(0));
1795 
1796     Assert.assertEquals(object, actualRequest.getObject());
1797     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
1798     Assert.assertTrue(
1799         channelProvider.isHeaderSent(
1800             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1801             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1802   }
1803 
1804   @Test
updateObjectExceptionTest()1805   public void updateObjectExceptionTest() throws Exception {
1806     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1807     mockStorage.addException(exception);
1808 
1809     try {
1810       Object object = Object.newBuilder().build();
1811       FieldMask updateMask = FieldMask.newBuilder().build();
1812       client.updateObject(object, updateMask);
1813       Assert.fail("No exception raised");
1814     } catch (InvalidArgumentException e) {
1815       // Expected exception.
1816     }
1817   }
1818 
1819   @Test
writeObjectTest()1820   public void writeObjectTest() throws Exception {
1821     WriteObjectResponse expectedResponse = WriteObjectResponse.newBuilder().build();
1822     mockStorage.addResponse(expectedResponse);
1823     WriteObjectRequest request =
1824         WriteObjectRequest.newBuilder()
1825             .setWriteOffset(-1559543565)
1826             .setObjectChecksums(ObjectChecksums.newBuilder().build())
1827             .setFinishWrite(true)
1828             .setCommonObjectRequestParams(CommonObjectRequestParams.newBuilder().build())
1829             .build();
1830 
1831     MockStreamObserver<WriteObjectResponse> responseObserver = new MockStreamObserver<>();
1832 
1833     ClientStreamingCallable<WriteObjectRequest, WriteObjectResponse> callable =
1834         client.writeObjectCallable();
1835     ApiStreamObserver<WriteObjectRequest> requestObserver =
1836         callable.clientStreamingCall(responseObserver);
1837 
1838     requestObserver.onNext(request);
1839     requestObserver.onCompleted();
1840 
1841     List<WriteObjectResponse> actualResponses = responseObserver.future().get();
1842     Assert.assertEquals(1, actualResponses.size());
1843     Assert.assertEquals(expectedResponse, actualResponses.get(0));
1844   }
1845 
1846   @Test
writeObjectExceptionTest()1847   public void writeObjectExceptionTest() throws Exception {
1848     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1849     mockStorage.addException(exception);
1850     WriteObjectRequest request =
1851         WriteObjectRequest.newBuilder()
1852             .setWriteOffset(-1559543565)
1853             .setObjectChecksums(ObjectChecksums.newBuilder().build())
1854             .setFinishWrite(true)
1855             .setCommonObjectRequestParams(CommonObjectRequestParams.newBuilder().build())
1856             .build();
1857 
1858     MockStreamObserver<WriteObjectResponse> responseObserver = new MockStreamObserver<>();
1859 
1860     ClientStreamingCallable<WriteObjectRequest, WriteObjectResponse> callable =
1861         client.writeObjectCallable();
1862     ApiStreamObserver<WriteObjectRequest> requestObserver =
1863         callable.clientStreamingCall(responseObserver);
1864 
1865     requestObserver.onNext(request);
1866 
1867     try {
1868       List<WriteObjectResponse> actualResponses = responseObserver.future().get();
1869       Assert.fail("No exception thrown");
1870     } catch (ExecutionException e) {
1871       Assert.assertTrue(e.getCause() instanceof InvalidArgumentException);
1872       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1873       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1874     }
1875   }
1876 
1877   @Test
listObjectsTest()1878   public void listObjectsTest() throws Exception {
1879     Object responsesElement = Object.newBuilder().build();
1880     ListObjectsResponse expectedResponse =
1881         ListObjectsResponse.newBuilder()
1882             .setNextPageToken("")
1883             .addAllObjects(Arrays.asList(responsesElement))
1884             .build();
1885     mockStorage.addResponse(expectedResponse);
1886 
1887     ProjectName parent = ProjectName.of("[PROJECT]");
1888 
1889     ListObjectsPagedResponse pagedListResponse = client.listObjects(parent);
1890 
1891     List<Object> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1892 
1893     Assert.assertEquals(1, resources.size());
1894     Assert.assertEquals(expectedResponse.getObjectsList().get(0), resources.get(0));
1895 
1896     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1897     Assert.assertEquals(1, actualRequests.size());
1898     ListObjectsRequest actualRequest = ((ListObjectsRequest) actualRequests.get(0));
1899 
1900     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1901     Assert.assertTrue(
1902         channelProvider.isHeaderSent(
1903             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1904             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1905   }
1906 
1907   @Test
listObjectsExceptionTest()1908   public void listObjectsExceptionTest() throws Exception {
1909     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1910     mockStorage.addException(exception);
1911 
1912     try {
1913       ProjectName parent = ProjectName.of("[PROJECT]");
1914       client.listObjects(parent);
1915       Assert.fail("No exception raised");
1916     } catch (InvalidArgumentException e) {
1917       // Expected exception.
1918     }
1919   }
1920 
1921   @Test
listObjectsTest2()1922   public void listObjectsTest2() throws Exception {
1923     Object responsesElement = Object.newBuilder().build();
1924     ListObjectsResponse expectedResponse =
1925         ListObjectsResponse.newBuilder()
1926             .setNextPageToken("")
1927             .addAllObjects(Arrays.asList(responsesElement))
1928             .build();
1929     mockStorage.addResponse(expectedResponse);
1930 
1931     String parent = "parent-995424086";
1932 
1933     ListObjectsPagedResponse pagedListResponse = client.listObjects(parent);
1934 
1935     List<Object> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1936 
1937     Assert.assertEquals(1, resources.size());
1938     Assert.assertEquals(expectedResponse.getObjectsList().get(0), resources.get(0));
1939 
1940     List<AbstractMessage> actualRequests = mockStorage.getRequests();
1941     Assert.assertEquals(1, actualRequests.size());
1942     ListObjectsRequest actualRequest = ((ListObjectsRequest) actualRequests.get(0));
1943 
1944     Assert.assertEquals(parent, actualRequest.getParent());
1945     Assert.assertTrue(
1946         channelProvider.isHeaderSent(
1947             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1948             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1949   }
1950 
1951   @Test
listObjectsExceptionTest2()1952   public void listObjectsExceptionTest2() throws Exception {
1953     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1954     mockStorage.addException(exception);
1955 
1956     try {
1957       String parent = "parent-995424086";
1958       client.listObjects(parent);
1959       Assert.fail("No exception raised");
1960     } catch (InvalidArgumentException e) {
1961       // Expected exception.
1962     }
1963   }
1964 
1965   @Test
rewriteObjectTest()1966   public void rewriteObjectTest() throws Exception {
1967     RewriteResponse expectedResponse =
1968         RewriteResponse.newBuilder()
1969             .setTotalBytesRewritten(-1109205579)
1970             .setObjectSize(-1277221631)
1971             .setDone(true)
1972             .setRewriteToken("rewriteToken80654285")
1973             .setResource(Object.newBuilder().build())
1974             .build();
1975     mockStorage.addResponse(expectedResponse);
1976 
1977     RewriteObjectRequest request =
1978         RewriteObjectRequest.newBuilder()
1979             .setDestinationName("destinationName-1762755655")
1980             .setDestinationBucket(BucketName.of("[PROJECT]", "[BUCKET]").toString())
1981             .setDestinationKmsKey(
1982                 CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
1983                     .toString())
1984             .setDestination(Object.newBuilder().build())
1985             .setSourceBucket("sourceBucket841604581")
1986             .setSourceObject("sourceObject1196439354")
1987             .setSourceGeneration(1232209852)
1988             .setRewriteToken("rewriteToken80654285")
1989             .setDestinationPredefinedAcl("destinationPredefinedAcl1111125814")
1990             .setIfGenerationMatch(-1086241088)
1991             .setIfGenerationNotMatch(1475720404)
1992             .setIfMetagenerationMatch(1043427781)
1993             .setIfMetagenerationNotMatch(1025430873)
1994             .setIfSourceGenerationMatch(-1427877280)
1995             .setIfSourceGenerationNotMatch(1575612532)
1996             .setIfSourceMetagenerationMatch(1143319909)
1997             .setIfSourceMetagenerationNotMatch(1900822777)
1998             .setMaxBytesRewrittenPerCall(1178170730)
1999             .setCopySourceEncryptionAlgorithm("copySourceEncryptionAlgorithm-1524952548")
2000             .setCopySourceEncryptionKeyBytes(ByteString.EMPTY)
2001             .setCopySourceEncryptionKeySha256Bytes(ByteString.EMPTY)
2002             .setCommonObjectRequestParams(CommonObjectRequestParams.newBuilder().build())
2003             .setObjectChecksums(ObjectChecksums.newBuilder().build())
2004             .build();
2005 
2006     RewriteResponse actualResponse = client.rewriteObject(request);
2007     Assert.assertEquals(expectedResponse, actualResponse);
2008 
2009     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2010     Assert.assertEquals(1, actualRequests.size());
2011     RewriteObjectRequest actualRequest = ((RewriteObjectRequest) actualRequests.get(0));
2012 
2013     Assert.assertEquals(request.getDestinationName(), actualRequest.getDestinationName());
2014     Assert.assertEquals(request.getDestinationBucket(), actualRequest.getDestinationBucket());
2015     Assert.assertEquals(request.getDestinationKmsKey(), actualRequest.getDestinationKmsKey());
2016     Assert.assertEquals(request.getDestination(), actualRequest.getDestination());
2017     Assert.assertEquals(request.getSourceBucket(), actualRequest.getSourceBucket());
2018     Assert.assertEquals(request.getSourceObject(), actualRequest.getSourceObject());
2019     Assert.assertEquals(request.getSourceGeneration(), actualRequest.getSourceGeneration());
2020     Assert.assertEquals(request.getRewriteToken(), actualRequest.getRewriteToken());
2021     Assert.assertEquals(
2022         request.getDestinationPredefinedAcl(), actualRequest.getDestinationPredefinedAcl());
2023     Assert.assertEquals(request.getIfGenerationMatch(), actualRequest.getIfGenerationMatch());
2024     Assert.assertEquals(request.getIfGenerationNotMatch(), actualRequest.getIfGenerationNotMatch());
2025     Assert.assertEquals(
2026         request.getIfMetagenerationMatch(), actualRequest.getIfMetagenerationMatch());
2027     Assert.assertEquals(
2028         request.getIfMetagenerationNotMatch(), actualRequest.getIfMetagenerationNotMatch());
2029     Assert.assertEquals(
2030         request.getIfSourceGenerationMatch(), actualRequest.getIfSourceGenerationMatch());
2031     Assert.assertEquals(
2032         request.getIfSourceGenerationNotMatch(), actualRequest.getIfSourceGenerationNotMatch());
2033     Assert.assertEquals(
2034         request.getIfSourceMetagenerationMatch(), actualRequest.getIfSourceMetagenerationMatch());
2035     Assert.assertEquals(
2036         request.getIfSourceMetagenerationNotMatch(),
2037         actualRequest.getIfSourceMetagenerationNotMatch());
2038     Assert.assertEquals(
2039         request.getMaxBytesRewrittenPerCall(), actualRequest.getMaxBytesRewrittenPerCall());
2040     Assert.assertEquals(
2041         request.getCopySourceEncryptionAlgorithm(),
2042         actualRequest.getCopySourceEncryptionAlgorithm());
2043     Assert.assertEquals(
2044         request.getCopySourceEncryptionKeyBytes(), actualRequest.getCopySourceEncryptionKeyBytes());
2045     Assert.assertEquals(
2046         request.getCopySourceEncryptionKeySha256Bytes(),
2047         actualRequest.getCopySourceEncryptionKeySha256Bytes());
2048     Assert.assertEquals(
2049         request.getCommonObjectRequestParams(), actualRequest.getCommonObjectRequestParams());
2050     Assert.assertEquals(request.getObjectChecksums(), actualRequest.getObjectChecksums());
2051     Assert.assertTrue(
2052         channelProvider.isHeaderSent(
2053             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2054             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2055   }
2056 
2057   @Test
rewriteObjectExceptionTest()2058   public void rewriteObjectExceptionTest() throws Exception {
2059     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2060     mockStorage.addException(exception);
2061 
2062     try {
2063       RewriteObjectRequest request =
2064           RewriteObjectRequest.newBuilder()
2065               .setDestinationName("destinationName-1762755655")
2066               .setDestinationBucket(BucketName.of("[PROJECT]", "[BUCKET]").toString())
2067               .setDestinationKmsKey(
2068                   CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
2069                       .toString())
2070               .setDestination(Object.newBuilder().build())
2071               .setSourceBucket("sourceBucket841604581")
2072               .setSourceObject("sourceObject1196439354")
2073               .setSourceGeneration(1232209852)
2074               .setRewriteToken("rewriteToken80654285")
2075               .setDestinationPredefinedAcl("destinationPredefinedAcl1111125814")
2076               .setIfGenerationMatch(-1086241088)
2077               .setIfGenerationNotMatch(1475720404)
2078               .setIfMetagenerationMatch(1043427781)
2079               .setIfMetagenerationNotMatch(1025430873)
2080               .setIfSourceGenerationMatch(-1427877280)
2081               .setIfSourceGenerationNotMatch(1575612532)
2082               .setIfSourceMetagenerationMatch(1143319909)
2083               .setIfSourceMetagenerationNotMatch(1900822777)
2084               .setMaxBytesRewrittenPerCall(1178170730)
2085               .setCopySourceEncryptionAlgorithm("copySourceEncryptionAlgorithm-1524952548")
2086               .setCopySourceEncryptionKeyBytes(ByteString.EMPTY)
2087               .setCopySourceEncryptionKeySha256Bytes(ByteString.EMPTY)
2088               .setCommonObjectRequestParams(CommonObjectRequestParams.newBuilder().build())
2089               .setObjectChecksums(ObjectChecksums.newBuilder().build())
2090               .build();
2091       client.rewriteObject(request);
2092       Assert.fail("No exception raised");
2093     } catch (InvalidArgumentException e) {
2094       // Expected exception.
2095     }
2096   }
2097 
2098   @Test
startResumableWriteTest()2099   public void startResumableWriteTest() throws Exception {
2100     StartResumableWriteResponse expectedResponse =
2101         StartResumableWriteResponse.newBuilder().setUploadId("uploadId1563990780").build();
2102     mockStorage.addResponse(expectedResponse);
2103 
2104     StartResumableWriteRequest request =
2105         StartResumableWriteRequest.newBuilder()
2106             .setWriteObjectSpec(WriteObjectSpec.newBuilder().build())
2107             .setCommonObjectRequestParams(CommonObjectRequestParams.newBuilder().build())
2108             .setObjectChecksums(ObjectChecksums.newBuilder().build())
2109             .build();
2110 
2111     StartResumableWriteResponse actualResponse = client.startResumableWrite(request);
2112     Assert.assertEquals(expectedResponse, actualResponse);
2113 
2114     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2115     Assert.assertEquals(1, actualRequests.size());
2116     StartResumableWriteRequest actualRequest = ((StartResumableWriteRequest) actualRequests.get(0));
2117 
2118     Assert.assertEquals(request.getWriteObjectSpec(), actualRequest.getWriteObjectSpec());
2119     Assert.assertEquals(
2120         request.getCommonObjectRequestParams(), actualRequest.getCommonObjectRequestParams());
2121     Assert.assertEquals(request.getObjectChecksums(), actualRequest.getObjectChecksums());
2122     Assert.assertTrue(
2123         channelProvider.isHeaderSent(
2124             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2125             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2126   }
2127 
2128   @Test
startResumableWriteExceptionTest()2129   public void startResumableWriteExceptionTest() throws Exception {
2130     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2131     mockStorage.addException(exception);
2132 
2133     try {
2134       StartResumableWriteRequest request =
2135           StartResumableWriteRequest.newBuilder()
2136               .setWriteObjectSpec(WriteObjectSpec.newBuilder().build())
2137               .setCommonObjectRequestParams(CommonObjectRequestParams.newBuilder().build())
2138               .setObjectChecksums(ObjectChecksums.newBuilder().build())
2139               .build();
2140       client.startResumableWrite(request);
2141       Assert.fail("No exception raised");
2142     } catch (InvalidArgumentException e) {
2143       // Expected exception.
2144     }
2145   }
2146 
2147   @Test
queryWriteStatusTest()2148   public void queryWriteStatusTest() throws Exception {
2149     QueryWriteStatusResponse expectedResponse = QueryWriteStatusResponse.newBuilder().build();
2150     mockStorage.addResponse(expectedResponse);
2151 
2152     String uploadId = "uploadId1563990780";
2153 
2154     QueryWriteStatusResponse actualResponse = client.queryWriteStatus(uploadId);
2155     Assert.assertEquals(expectedResponse, actualResponse);
2156 
2157     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2158     Assert.assertEquals(1, actualRequests.size());
2159     QueryWriteStatusRequest actualRequest = ((QueryWriteStatusRequest) actualRequests.get(0));
2160 
2161     Assert.assertEquals(uploadId, actualRequest.getUploadId());
2162     Assert.assertTrue(
2163         channelProvider.isHeaderSent(
2164             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2165             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2166   }
2167 
2168   @Test
queryWriteStatusExceptionTest()2169   public void queryWriteStatusExceptionTest() throws Exception {
2170     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2171     mockStorage.addException(exception);
2172 
2173     try {
2174       String uploadId = "uploadId1563990780";
2175       client.queryWriteStatus(uploadId);
2176       Assert.fail("No exception raised");
2177     } catch (InvalidArgumentException e) {
2178       // Expected exception.
2179     }
2180   }
2181 
2182   @Test
getServiceAccountTest()2183   public void getServiceAccountTest() throws Exception {
2184     ServiceAccount expectedResponse =
2185         ServiceAccount.newBuilder().setEmailAddress("emailAddress-1070931784").build();
2186     mockStorage.addResponse(expectedResponse);
2187 
2188     ProjectName project = ProjectName.of("[PROJECT]");
2189 
2190     ServiceAccount actualResponse = client.getServiceAccount(project);
2191     Assert.assertEquals(expectedResponse, actualResponse);
2192 
2193     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2194     Assert.assertEquals(1, actualRequests.size());
2195     GetServiceAccountRequest actualRequest = ((GetServiceAccountRequest) actualRequests.get(0));
2196 
2197     Assert.assertEquals(project.toString(), actualRequest.getProject());
2198     Assert.assertTrue(
2199         channelProvider.isHeaderSent(
2200             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2201             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2202   }
2203 
2204   @Test
getServiceAccountExceptionTest()2205   public void getServiceAccountExceptionTest() throws Exception {
2206     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2207     mockStorage.addException(exception);
2208 
2209     try {
2210       ProjectName project = ProjectName.of("[PROJECT]");
2211       client.getServiceAccount(project);
2212       Assert.fail("No exception raised");
2213     } catch (InvalidArgumentException e) {
2214       // Expected exception.
2215     }
2216   }
2217 
2218   @Test
getServiceAccountTest2()2219   public void getServiceAccountTest2() throws Exception {
2220     ServiceAccount expectedResponse =
2221         ServiceAccount.newBuilder().setEmailAddress("emailAddress-1070931784").build();
2222     mockStorage.addResponse(expectedResponse);
2223 
2224     String project = "project-309310695";
2225 
2226     ServiceAccount actualResponse = client.getServiceAccount(project);
2227     Assert.assertEquals(expectedResponse, actualResponse);
2228 
2229     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2230     Assert.assertEquals(1, actualRequests.size());
2231     GetServiceAccountRequest actualRequest = ((GetServiceAccountRequest) actualRequests.get(0));
2232 
2233     Assert.assertEquals(project, actualRequest.getProject());
2234     Assert.assertTrue(
2235         channelProvider.isHeaderSent(
2236             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2237             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2238   }
2239 
2240   @Test
getServiceAccountExceptionTest2()2241   public void getServiceAccountExceptionTest2() throws Exception {
2242     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2243     mockStorage.addException(exception);
2244 
2245     try {
2246       String project = "project-309310695";
2247       client.getServiceAccount(project);
2248       Assert.fail("No exception raised");
2249     } catch (InvalidArgumentException e) {
2250       // Expected exception.
2251     }
2252   }
2253 
2254   @Test
createHmacKeyTest()2255   public void createHmacKeyTest() throws Exception {
2256     CreateHmacKeyResponse expectedResponse =
2257         CreateHmacKeyResponse.newBuilder()
2258             .setMetadata(HmacKeyMetadata.newBuilder().build())
2259             .setSecretKeyBytes(ByteString.EMPTY)
2260             .build();
2261     mockStorage.addResponse(expectedResponse);
2262 
2263     ProjectName project = ProjectName.of("[PROJECT]");
2264     String serviceAccountEmail = "serviceAccountEmail1825953988";
2265 
2266     CreateHmacKeyResponse actualResponse = client.createHmacKey(project, serviceAccountEmail);
2267     Assert.assertEquals(expectedResponse, actualResponse);
2268 
2269     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2270     Assert.assertEquals(1, actualRequests.size());
2271     CreateHmacKeyRequest actualRequest = ((CreateHmacKeyRequest) actualRequests.get(0));
2272 
2273     Assert.assertEquals(project.toString(), actualRequest.getProject());
2274     Assert.assertEquals(serviceAccountEmail, actualRequest.getServiceAccountEmail());
2275     Assert.assertTrue(
2276         channelProvider.isHeaderSent(
2277             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2278             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2279   }
2280 
2281   @Test
createHmacKeyExceptionTest()2282   public void createHmacKeyExceptionTest() throws Exception {
2283     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2284     mockStorage.addException(exception);
2285 
2286     try {
2287       ProjectName project = ProjectName.of("[PROJECT]");
2288       String serviceAccountEmail = "serviceAccountEmail1825953988";
2289       client.createHmacKey(project, serviceAccountEmail);
2290       Assert.fail("No exception raised");
2291     } catch (InvalidArgumentException e) {
2292       // Expected exception.
2293     }
2294   }
2295 
2296   @Test
createHmacKeyTest2()2297   public void createHmacKeyTest2() throws Exception {
2298     CreateHmacKeyResponse expectedResponse =
2299         CreateHmacKeyResponse.newBuilder()
2300             .setMetadata(HmacKeyMetadata.newBuilder().build())
2301             .setSecretKeyBytes(ByteString.EMPTY)
2302             .build();
2303     mockStorage.addResponse(expectedResponse);
2304 
2305     String project = "project-309310695";
2306     String serviceAccountEmail = "serviceAccountEmail1825953988";
2307 
2308     CreateHmacKeyResponse actualResponse = client.createHmacKey(project, serviceAccountEmail);
2309     Assert.assertEquals(expectedResponse, actualResponse);
2310 
2311     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2312     Assert.assertEquals(1, actualRequests.size());
2313     CreateHmacKeyRequest actualRequest = ((CreateHmacKeyRequest) actualRequests.get(0));
2314 
2315     Assert.assertEquals(project, actualRequest.getProject());
2316     Assert.assertEquals(serviceAccountEmail, actualRequest.getServiceAccountEmail());
2317     Assert.assertTrue(
2318         channelProvider.isHeaderSent(
2319             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2320             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2321   }
2322 
2323   @Test
createHmacKeyExceptionTest2()2324   public void createHmacKeyExceptionTest2() throws Exception {
2325     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2326     mockStorage.addException(exception);
2327 
2328     try {
2329       String project = "project-309310695";
2330       String serviceAccountEmail = "serviceAccountEmail1825953988";
2331       client.createHmacKey(project, serviceAccountEmail);
2332       Assert.fail("No exception raised");
2333     } catch (InvalidArgumentException e) {
2334       // Expected exception.
2335     }
2336   }
2337 
2338   @Test
deleteHmacKeyTest()2339   public void deleteHmacKeyTest() throws Exception {
2340     Empty expectedResponse = Empty.newBuilder().build();
2341     mockStorage.addResponse(expectedResponse);
2342 
2343     String accessId = "accessId-2146437729";
2344     ProjectName project = ProjectName.of("[PROJECT]");
2345 
2346     client.deleteHmacKey(accessId, project);
2347 
2348     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2349     Assert.assertEquals(1, actualRequests.size());
2350     DeleteHmacKeyRequest actualRequest = ((DeleteHmacKeyRequest) actualRequests.get(0));
2351 
2352     Assert.assertEquals(accessId, actualRequest.getAccessId());
2353     Assert.assertEquals(project.toString(), actualRequest.getProject());
2354     Assert.assertTrue(
2355         channelProvider.isHeaderSent(
2356             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2357             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2358   }
2359 
2360   @Test
deleteHmacKeyExceptionTest()2361   public void deleteHmacKeyExceptionTest() throws Exception {
2362     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2363     mockStorage.addException(exception);
2364 
2365     try {
2366       String accessId = "accessId-2146437729";
2367       ProjectName project = ProjectName.of("[PROJECT]");
2368       client.deleteHmacKey(accessId, project);
2369       Assert.fail("No exception raised");
2370     } catch (InvalidArgumentException e) {
2371       // Expected exception.
2372     }
2373   }
2374 
2375   @Test
deleteHmacKeyTest2()2376   public void deleteHmacKeyTest2() throws Exception {
2377     Empty expectedResponse = Empty.newBuilder().build();
2378     mockStorage.addResponse(expectedResponse);
2379 
2380     String accessId = "accessId-2146437729";
2381     String project = "project-309310695";
2382 
2383     client.deleteHmacKey(accessId, project);
2384 
2385     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2386     Assert.assertEquals(1, actualRequests.size());
2387     DeleteHmacKeyRequest actualRequest = ((DeleteHmacKeyRequest) actualRequests.get(0));
2388 
2389     Assert.assertEquals(accessId, actualRequest.getAccessId());
2390     Assert.assertEquals(project, actualRequest.getProject());
2391     Assert.assertTrue(
2392         channelProvider.isHeaderSent(
2393             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2394             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2395   }
2396 
2397   @Test
deleteHmacKeyExceptionTest2()2398   public void deleteHmacKeyExceptionTest2() throws Exception {
2399     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2400     mockStorage.addException(exception);
2401 
2402     try {
2403       String accessId = "accessId-2146437729";
2404       String project = "project-309310695";
2405       client.deleteHmacKey(accessId, project);
2406       Assert.fail("No exception raised");
2407     } catch (InvalidArgumentException e) {
2408       // Expected exception.
2409     }
2410   }
2411 
2412   @Test
getHmacKeyTest()2413   public void getHmacKeyTest() throws Exception {
2414     HmacKeyMetadata expectedResponse =
2415         HmacKeyMetadata.newBuilder()
2416             .setId("id3355")
2417             .setAccessId("accessId-2146437729")
2418             .setProject(ProjectName.of("[PROJECT]").toString())
2419             .setServiceAccountEmail("serviceAccountEmail1825953988")
2420             .setState("state109757585")
2421             .setCreateTime(Timestamp.newBuilder().build())
2422             .setUpdateTime(Timestamp.newBuilder().build())
2423             .setEtag("etag3123477")
2424             .build();
2425     mockStorage.addResponse(expectedResponse);
2426 
2427     String accessId = "accessId-2146437729";
2428     ProjectName project = ProjectName.of("[PROJECT]");
2429 
2430     HmacKeyMetadata actualResponse = client.getHmacKey(accessId, project);
2431     Assert.assertEquals(expectedResponse, actualResponse);
2432 
2433     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2434     Assert.assertEquals(1, actualRequests.size());
2435     GetHmacKeyRequest actualRequest = ((GetHmacKeyRequest) actualRequests.get(0));
2436 
2437     Assert.assertEquals(accessId, actualRequest.getAccessId());
2438     Assert.assertEquals(project.toString(), actualRequest.getProject());
2439     Assert.assertTrue(
2440         channelProvider.isHeaderSent(
2441             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2442             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2443   }
2444 
2445   @Test
getHmacKeyExceptionTest()2446   public void getHmacKeyExceptionTest() throws Exception {
2447     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2448     mockStorage.addException(exception);
2449 
2450     try {
2451       String accessId = "accessId-2146437729";
2452       ProjectName project = ProjectName.of("[PROJECT]");
2453       client.getHmacKey(accessId, project);
2454       Assert.fail("No exception raised");
2455     } catch (InvalidArgumentException e) {
2456       // Expected exception.
2457     }
2458   }
2459 
2460   @Test
getHmacKeyTest2()2461   public void getHmacKeyTest2() throws Exception {
2462     HmacKeyMetadata expectedResponse =
2463         HmacKeyMetadata.newBuilder()
2464             .setId("id3355")
2465             .setAccessId("accessId-2146437729")
2466             .setProject(ProjectName.of("[PROJECT]").toString())
2467             .setServiceAccountEmail("serviceAccountEmail1825953988")
2468             .setState("state109757585")
2469             .setCreateTime(Timestamp.newBuilder().build())
2470             .setUpdateTime(Timestamp.newBuilder().build())
2471             .setEtag("etag3123477")
2472             .build();
2473     mockStorage.addResponse(expectedResponse);
2474 
2475     String accessId = "accessId-2146437729";
2476     String project = "project-309310695";
2477 
2478     HmacKeyMetadata actualResponse = client.getHmacKey(accessId, project);
2479     Assert.assertEquals(expectedResponse, actualResponse);
2480 
2481     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2482     Assert.assertEquals(1, actualRequests.size());
2483     GetHmacKeyRequest actualRequest = ((GetHmacKeyRequest) actualRequests.get(0));
2484 
2485     Assert.assertEquals(accessId, actualRequest.getAccessId());
2486     Assert.assertEquals(project, actualRequest.getProject());
2487     Assert.assertTrue(
2488         channelProvider.isHeaderSent(
2489             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2490             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2491   }
2492 
2493   @Test
getHmacKeyExceptionTest2()2494   public void getHmacKeyExceptionTest2() throws Exception {
2495     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2496     mockStorage.addException(exception);
2497 
2498     try {
2499       String accessId = "accessId-2146437729";
2500       String project = "project-309310695";
2501       client.getHmacKey(accessId, project);
2502       Assert.fail("No exception raised");
2503     } catch (InvalidArgumentException e) {
2504       // Expected exception.
2505     }
2506   }
2507 
2508   @Test
listHmacKeysTest()2509   public void listHmacKeysTest() throws Exception {
2510     HmacKeyMetadata responsesElement = HmacKeyMetadata.newBuilder().build();
2511     ListHmacKeysResponse expectedResponse =
2512         ListHmacKeysResponse.newBuilder()
2513             .setNextPageToken("")
2514             .addAllHmacKeys(Arrays.asList(responsesElement))
2515             .build();
2516     mockStorage.addResponse(expectedResponse);
2517 
2518     ProjectName project = ProjectName.of("[PROJECT]");
2519 
2520     ListHmacKeysPagedResponse pagedListResponse = client.listHmacKeys(project);
2521 
2522     List<HmacKeyMetadata> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2523 
2524     Assert.assertEquals(1, resources.size());
2525     Assert.assertEquals(expectedResponse.getHmacKeysList().get(0), resources.get(0));
2526 
2527     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2528     Assert.assertEquals(1, actualRequests.size());
2529     ListHmacKeysRequest actualRequest = ((ListHmacKeysRequest) actualRequests.get(0));
2530 
2531     Assert.assertEquals(project.toString(), actualRequest.getProject());
2532     Assert.assertTrue(
2533         channelProvider.isHeaderSent(
2534             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2535             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2536   }
2537 
2538   @Test
listHmacKeysExceptionTest()2539   public void listHmacKeysExceptionTest() throws Exception {
2540     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2541     mockStorage.addException(exception);
2542 
2543     try {
2544       ProjectName project = ProjectName.of("[PROJECT]");
2545       client.listHmacKeys(project);
2546       Assert.fail("No exception raised");
2547     } catch (InvalidArgumentException e) {
2548       // Expected exception.
2549     }
2550   }
2551 
2552   @Test
listHmacKeysTest2()2553   public void listHmacKeysTest2() throws Exception {
2554     HmacKeyMetadata responsesElement = HmacKeyMetadata.newBuilder().build();
2555     ListHmacKeysResponse expectedResponse =
2556         ListHmacKeysResponse.newBuilder()
2557             .setNextPageToken("")
2558             .addAllHmacKeys(Arrays.asList(responsesElement))
2559             .build();
2560     mockStorage.addResponse(expectedResponse);
2561 
2562     String project = "project-309310695";
2563 
2564     ListHmacKeysPagedResponse pagedListResponse = client.listHmacKeys(project);
2565 
2566     List<HmacKeyMetadata> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2567 
2568     Assert.assertEquals(1, resources.size());
2569     Assert.assertEquals(expectedResponse.getHmacKeysList().get(0), resources.get(0));
2570 
2571     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2572     Assert.assertEquals(1, actualRequests.size());
2573     ListHmacKeysRequest actualRequest = ((ListHmacKeysRequest) actualRequests.get(0));
2574 
2575     Assert.assertEquals(project, actualRequest.getProject());
2576     Assert.assertTrue(
2577         channelProvider.isHeaderSent(
2578             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2579             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2580   }
2581 
2582   @Test
listHmacKeysExceptionTest2()2583   public void listHmacKeysExceptionTest2() throws Exception {
2584     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2585     mockStorage.addException(exception);
2586 
2587     try {
2588       String project = "project-309310695";
2589       client.listHmacKeys(project);
2590       Assert.fail("No exception raised");
2591     } catch (InvalidArgumentException e) {
2592       // Expected exception.
2593     }
2594   }
2595 
2596   @Test
updateHmacKeyTest()2597   public void updateHmacKeyTest() throws Exception {
2598     HmacKeyMetadata expectedResponse =
2599         HmacKeyMetadata.newBuilder()
2600             .setId("id3355")
2601             .setAccessId("accessId-2146437729")
2602             .setProject(ProjectName.of("[PROJECT]").toString())
2603             .setServiceAccountEmail("serviceAccountEmail1825953988")
2604             .setState("state109757585")
2605             .setCreateTime(Timestamp.newBuilder().build())
2606             .setUpdateTime(Timestamp.newBuilder().build())
2607             .setEtag("etag3123477")
2608             .build();
2609     mockStorage.addResponse(expectedResponse);
2610 
2611     HmacKeyMetadata hmacKey = HmacKeyMetadata.newBuilder().build();
2612     FieldMask updateMask = FieldMask.newBuilder().build();
2613 
2614     HmacKeyMetadata actualResponse = client.updateHmacKey(hmacKey, updateMask);
2615     Assert.assertEquals(expectedResponse, actualResponse);
2616 
2617     List<AbstractMessage> actualRequests = mockStorage.getRequests();
2618     Assert.assertEquals(1, actualRequests.size());
2619     UpdateHmacKeyRequest actualRequest = ((UpdateHmacKeyRequest) actualRequests.get(0));
2620 
2621     Assert.assertEquals(hmacKey, actualRequest.getHmacKey());
2622     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
2623     Assert.assertTrue(
2624         channelProvider.isHeaderSent(
2625             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2626             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2627   }
2628 
2629   @Test
updateHmacKeyExceptionTest()2630   public void updateHmacKeyExceptionTest() throws Exception {
2631     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2632     mockStorage.addException(exception);
2633 
2634     try {
2635       HmacKeyMetadata hmacKey = HmacKeyMetadata.newBuilder().build();
2636       FieldMask updateMask = FieldMask.newBuilder().build();
2637       client.updateHmacKey(hmacKey, updateMask);
2638       Assert.fail("No exception raised");
2639     } catch (InvalidArgumentException e) {
2640       // Expected exception.
2641     }
2642   }
2643 }
2644