• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.cloud.bigqueryconnection.v1;
18 
19 import static com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient.ListConnectionsPagedResponse;
20 
21 import com.google.api.gax.core.NoCredentialsProvider;
22 import com.google.api.gax.grpc.GaxGrpcProperties;
23 import com.google.api.gax.grpc.testing.LocalChannelProvider;
24 import com.google.api.gax.grpc.testing.MockGrpcService;
25 import com.google.api.gax.grpc.testing.MockServiceHelper;
26 import com.google.api.gax.rpc.ApiClientHeaderProvider;
27 import com.google.api.gax.rpc.InvalidArgumentException;
28 import com.google.api.resourcenames.ResourceName;
29 import com.google.cloud.bigquery.connection.v1.Connection;
30 import com.google.cloud.bigquery.connection.v1.ConnectionName;
31 import com.google.cloud.bigquery.connection.v1.CreateConnectionRequest;
32 import com.google.cloud.bigquery.connection.v1.DeleteConnectionRequest;
33 import com.google.cloud.bigquery.connection.v1.GetConnectionRequest;
34 import com.google.cloud.bigquery.connection.v1.ListConnectionsRequest;
35 import com.google.cloud.bigquery.connection.v1.ListConnectionsResponse;
36 import com.google.cloud.bigquery.connection.v1.LocationName;
37 import com.google.cloud.bigquery.connection.v1.UpdateConnectionRequest;
38 import com.google.common.collect.Lists;
39 import com.google.iam.v1.AuditConfig;
40 import com.google.iam.v1.Binding;
41 import com.google.iam.v1.GetIamPolicyRequest;
42 import com.google.iam.v1.GetPolicyOptions;
43 import com.google.iam.v1.Policy;
44 import com.google.iam.v1.SetIamPolicyRequest;
45 import com.google.iam.v1.TestIamPermissionsRequest;
46 import com.google.iam.v1.TestIamPermissionsResponse;
47 import com.google.protobuf.AbstractMessage;
48 import com.google.protobuf.ByteString;
49 import com.google.protobuf.Empty;
50 import com.google.protobuf.FieldMask;
51 import io.grpc.StatusRuntimeException;
52 import java.io.IOException;
53 import java.util.ArrayList;
54 import java.util.Arrays;
55 import java.util.List;
56 import java.util.UUID;
57 import javax.annotation.Generated;
58 import org.junit.After;
59 import org.junit.AfterClass;
60 import org.junit.Assert;
61 import org.junit.Before;
62 import org.junit.BeforeClass;
63 import org.junit.Test;
64 
65 @Generated("by gapic-generator-java")
66 public class ConnectionServiceClientTest {
67   private static MockConnectionService mockConnectionService;
68   private static MockServiceHelper mockServiceHelper;
69   private LocalChannelProvider channelProvider;
70   private ConnectionServiceClient client;
71 
72   @BeforeClass
startStaticServer()73   public static void startStaticServer() {
74     mockConnectionService = new MockConnectionService();
75     mockServiceHelper =
76         new MockServiceHelper(
77             UUID.randomUUID().toString(), Arrays.<MockGrpcService>asList(mockConnectionService));
78     mockServiceHelper.start();
79   }
80 
81   @AfterClass
stopServer()82   public static void stopServer() {
83     mockServiceHelper.stop();
84   }
85 
86   @Before
setUp()87   public void setUp() throws IOException {
88     mockServiceHelper.reset();
89     channelProvider = mockServiceHelper.createChannelProvider();
90     ConnectionServiceSettings settings =
91         ConnectionServiceSettings.newBuilder()
92             .setTransportChannelProvider(channelProvider)
93             .setCredentialsProvider(NoCredentialsProvider.create())
94             .build();
95     client = ConnectionServiceClient.create(settings);
96   }
97 
98   @After
tearDown()99   public void tearDown() throws Exception {
100     client.close();
101   }
102 
103   @Test
createConnectionTest()104   public void createConnectionTest() throws Exception {
105     Connection expectedResponse =
106         Connection.newBuilder()
107             .setName(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
108             .setFriendlyName("friendlyName461933014")
109             .setDescription("description-1724546052")
110             .setCreationTime(1932333101)
111             .setLastModifiedTime(-671513446)
112             .setHasCredential(true)
113             .build();
114     mockConnectionService.addResponse(expectedResponse);
115 
116     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
117     Connection connection = Connection.newBuilder().build();
118     String connectionId = "connectionId1923106969";
119 
120     Connection actualResponse = client.createConnection(parent, connection, connectionId);
121     Assert.assertEquals(expectedResponse, actualResponse);
122 
123     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
124     Assert.assertEquals(1, actualRequests.size());
125     CreateConnectionRequest actualRequest = ((CreateConnectionRequest) actualRequests.get(0));
126 
127     Assert.assertEquals(parent.toString(), actualRequest.getParent());
128     Assert.assertEquals(connection, actualRequest.getConnection());
129     Assert.assertEquals(connectionId, actualRequest.getConnectionId());
130     Assert.assertTrue(
131         channelProvider.isHeaderSent(
132             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
133             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
134   }
135 
136   @Test
createConnectionExceptionTest()137   public void createConnectionExceptionTest() throws Exception {
138     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
139     mockConnectionService.addException(exception);
140 
141     try {
142       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
143       Connection connection = Connection.newBuilder().build();
144       String connectionId = "connectionId1923106969";
145       client.createConnection(parent, connection, connectionId);
146       Assert.fail("No exception raised");
147     } catch (InvalidArgumentException e) {
148       // Expected exception.
149     }
150   }
151 
152   @Test
createConnectionTest2()153   public void createConnectionTest2() throws Exception {
154     Connection expectedResponse =
155         Connection.newBuilder()
156             .setName(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
157             .setFriendlyName("friendlyName461933014")
158             .setDescription("description-1724546052")
159             .setCreationTime(1932333101)
160             .setLastModifiedTime(-671513446)
161             .setHasCredential(true)
162             .build();
163     mockConnectionService.addResponse(expectedResponse);
164 
165     String parent = "parent-995424086";
166     Connection connection = Connection.newBuilder().build();
167     String connectionId = "connectionId1923106969";
168 
169     Connection actualResponse = client.createConnection(parent, connection, connectionId);
170     Assert.assertEquals(expectedResponse, actualResponse);
171 
172     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
173     Assert.assertEquals(1, actualRequests.size());
174     CreateConnectionRequest actualRequest = ((CreateConnectionRequest) actualRequests.get(0));
175 
176     Assert.assertEquals(parent, actualRequest.getParent());
177     Assert.assertEquals(connection, actualRequest.getConnection());
178     Assert.assertEquals(connectionId, actualRequest.getConnectionId());
179     Assert.assertTrue(
180         channelProvider.isHeaderSent(
181             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
182             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
183   }
184 
185   @Test
createConnectionExceptionTest2()186   public void createConnectionExceptionTest2() throws Exception {
187     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
188     mockConnectionService.addException(exception);
189 
190     try {
191       String parent = "parent-995424086";
192       Connection connection = Connection.newBuilder().build();
193       String connectionId = "connectionId1923106969";
194       client.createConnection(parent, connection, connectionId);
195       Assert.fail("No exception raised");
196     } catch (InvalidArgumentException e) {
197       // Expected exception.
198     }
199   }
200 
201   @Test
getConnectionTest()202   public void getConnectionTest() throws Exception {
203     Connection expectedResponse =
204         Connection.newBuilder()
205             .setName(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
206             .setFriendlyName("friendlyName461933014")
207             .setDescription("description-1724546052")
208             .setCreationTime(1932333101)
209             .setLastModifiedTime(-671513446)
210             .setHasCredential(true)
211             .build();
212     mockConnectionService.addResponse(expectedResponse);
213 
214     ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
215 
216     Connection actualResponse = client.getConnection(name);
217     Assert.assertEquals(expectedResponse, actualResponse);
218 
219     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
220     Assert.assertEquals(1, actualRequests.size());
221     GetConnectionRequest actualRequest = ((GetConnectionRequest) actualRequests.get(0));
222 
223     Assert.assertEquals(name.toString(), actualRequest.getName());
224     Assert.assertTrue(
225         channelProvider.isHeaderSent(
226             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
227             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
228   }
229 
230   @Test
getConnectionExceptionTest()231   public void getConnectionExceptionTest() throws Exception {
232     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
233     mockConnectionService.addException(exception);
234 
235     try {
236       ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
237       client.getConnection(name);
238       Assert.fail("No exception raised");
239     } catch (InvalidArgumentException e) {
240       // Expected exception.
241     }
242   }
243 
244   @Test
getConnectionTest2()245   public void getConnectionTest2() throws Exception {
246     Connection expectedResponse =
247         Connection.newBuilder()
248             .setName(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
249             .setFriendlyName("friendlyName461933014")
250             .setDescription("description-1724546052")
251             .setCreationTime(1932333101)
252             .setLastModifiedTime(-671513446)
253             .setHasCredential(true)
254             .build();
255     mockConnectionService.addResponse(expectedResponse);
256 
257     String name = "name3373707";
258 
259     Connection actualResponse = client.getConnection(name);
260     Assert.assertEquals(expectedResponse, actualResponse);
261 
262     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
263     Assert.assertEquals(1, actualRequests.size());
264     GetConnectionRequest actualRequest = ((GetConnectionRequest) actualRequests.get(0));
265 
266     Assert.assertEquals(name, actualRequest.getName());
267     Assert.assertTrue(
268         channelProvider.isHeaderSent(
269             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
270             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
271   }
272 
273   @Test
getConnectionExceptionTest2()274   public void getConnectionExceptionTest2() throws Exception {
275     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
276     mockConnectionService.addException(exception);
277 
278     try {
279       String name = "name3373707";
280       client.getConnection(name);
281       Assert.fail("No exception raised");
282     } catch (InvalidArgumentException e) {
283       // Expected exception.
284     }
285   }
286 
287   @Test
listConnectionsTest()288   public void listConnectionsTest() throws Exception {
289     Connection responsesElement = Connection.newBuilder().build();
290     ListConnectionsResponse expectedResponse =
291         ListConnectionsResponse.newBuilder()
292             .setNextPageToken("")
293             .addAllConnections(Arrays.asList(responsesElement))
294             .build();
295     mockConnectionService.addResponse(expectedResponse);
296 
297     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
298 
299     ListConnectionsPagedResponse pagedListResponse = client.listConnections(parent);
300 
301     List<Connection> resources = Lists.newArrayList(pagedListResponse.iterateAll());
302 
303     Assert.assertEquals(1, resources.size());
304     Assert.assertEquals(expectedResponse.getConnectionsList().get(0), resources.get(0));
305 
306     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
307     Assert.assertEquals(1, actualRequests.size());
308     ListConnectionsRequest actualRequest = ((ListConnectionsRequest) actualRequests.get(0));
309 
310     Assert.assertEquals(parent.toString(), actualRequest.getParent());
311     Assert.assertTrue(
312         channelProvider.isHeaderSent(
313             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
314             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
315   }
316 
317   @Test
listConnectionsExceptionTest()318   public void listConnectionsExceptionTest() throws Exception {
319     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
320     mockConnectionService.addException(exception);
321 
322     try {
323       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
324       client.listConnections(parent);
325       Assert.fail("No exception raised");
326     } catch (InvalidArgumentException e) {
327       // Expected exception.
328     }
329   }
330 
331   @Test
listConnectionsTest2()332   public void listConnectionsTest2() throws Exception {
333     Connection responsesElement = Connection.newBuilder().build();
334     ListConnectionsResponse expectedResponse =
335         ListConnectionsResponse.newBuilder()
336             .setNextPageToken("")
337             .addAllConnections(Arrays.asList(responsesElement))
338             .build();
339     mockConnectionService.addResponse(expectedResponse);
340 
341     String parent = "parent-995424086";
342 
343     ListConnectionsPagedResponse pagedListResponse = client.listConnections(parent);
344 
345     List<Connection> resources = Lists.newArrayList(pagedListResponse.iterateAll());
346 
347     Assert.assertEquals(1, resources.size());
348     Assert.assertEquals(expectedResponse.getConnectionsList().get(0), resources.get(0));
349 
350     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
351     Assert.assertEquals(1, actualRequests.size());
352     ListConnectionsRequest actualRequest = ((ListConnectionsRequest) actualRequests.get(0));
353 
354     Assert.assertEquals(parent, actualRequest.getParent());
355     Assert.assertTrue(
356         channelProvider.isHeaderSent(
357             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
358             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
359   }
360 
361   @Test
listConnectionsExceptionTest2()362   public void listConnectionsExceptionTest2() throws Exception {
363     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
364     mockConnectionService.addException(exception);
365 
366     try {
367       String parent = "parent-995424086";
368       client.listConnections(parent);
369       Assert.fail("No exception raised");
370     } catch (InvalidArgumentException e) {
371       // Expected exception.
372     }
373   }
374 
375   @Test
updateConnectionTest()376   public void updateConnectionTest() throws Exception {
377     Connection expectedResponse =
378         Connection.newBuilder()
379             .setName(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
380             .setFriendlyName("friendlyName461933014")
381             .setDescription("description-1724546052")
382             .setCreationTime(1932333101)
383             .setLastModifiedTime(-671513446)
384             .setHasCredential(true)
385             .build();
386     mockConnectionService.addResponse(expectedResponse);
387 
388     ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
389     Connection connection = Connection.newBuilder().build();
390     FieldMask updateMask = FieldMask.newBuilder().build();
391 
392     Connection actualResponse = client.updateConnection(name, connection, updateMask);
393     Assert.assertEquals(expectedResponse, actualResponse);
394 
395     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
396     Assert.assertEquals(1, actualRequests.size());
397     UpdateConnectionRequest actualRequest = ((UpdateConnectionRequest) actualRequests.get(0));
398 
399     Assert.assertEquals(name.toString(), actualRequest.getName());
400     Assert.assertEquals(connection, actualRequest.getConnection());
401     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
402     Assert.assertTrue(
403         channelProvider.isHeaderSent(
404             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
405             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
406   }
407 
408   @Test
updateConnectionExceptionTest()409   public void updateConnectionExceptionTest() throws Exception {
410     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
411     mockConnectionService.addException(exception);
412 
413     try {
414       ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
415       Connection connection = Connection.newBuilder().build();
416       FieldMask updateMask = FieldMask.newBuilder().build();
417       client.updateConnection(name, connection, updateMask);
418       Assert.fail("No exception raised");
419     } catch (InvalidArgumentException e) {
420       // Expected exception.
421     }
422   }
423 
424   @Test
updateConnectionTest2()425   public void updateConnectionTest2() throws Exception {
426     Connection expectedResponse =
427         Connection.newBuilder()
428             .setName(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
429             .setFriendlyName("friendlyName461933014")
430             .setDescription("description-1724546052")
431             .setCreationTime(1932333101)
432             .setLastModifiedTime(-671513446)
433             .setHasCredential(true)
434             .build();
435     mockConnectionService.addResponse(expectedResponse);
436 
437     String name = "name3373707";
438     Connection connection = Connection.newBuilder().build();
439     FieldMask updateMask = FieldMask.newBuilder().build();
440 
441     Connection actualResponse = client.updateConnection(name, connection, updateMask);
442     Assert.assertEquals(expectedResponse, actualResponse);
443 
444     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
445     Assert.assertEquals(1, actualRequests.size());
446     UpdateConnectionRequest actualRequest = ((UpdateConnectionRequest) actualRequests.get(0));
447 
448     Assert.assertEquals(name, actualRequest.getName());
449     Assert.assertEquals(connection, actualRequest.getConnection());
450     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
451     Assert.assertTrue(
452         channelProvider.isHeaderSent(
453             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
454             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
455   }
456 
457   @Test
updateConnectionExceptionTest2()458   public void updateConnectionExceptionTest2() throws Exception {
459     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
460     mockConnectionService.addException(exception);
461 
462     try {
463       String name = "name3373707";
464       Connection connection = Connection.newBuilder().build();
465       FieldMask updateMask = FieldMask.newBuilder().build();
466       client.updateConnection(name, connection, updateMask);
467       Assert.fail("No exception raised");
468     } catch (InvalidArgumentException e) {
469       // Expected exception.
470     }
471   }
472 
473   @Test
deleteConnectionTest()474   public void deleteConnectionTest() throws Exception {
475     Empty expectedResponse = Empty.newBuilder().build();
476     mockConnectionService.addResponse(expectedResponse);
477 
478     ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
479 
480     client.deleteConnection(name);
481 
482     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
483     Assert.assertEquals(1, actualRequests.size());
484     DeleteConnectionRequest actualRequest = ((DeleteConnectionRequest) actualRequests.get(0));
485 
486     Assert.assertEquals(name.toString(), actualRequest.getName());
487     Assert.assertTrue(
488         channelProvider.isHeaderSent(
489             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
490             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
491   }
492 
493   @Test
deleteConnectionExceptionTest()494   public void deleteConnectionExceptionTest() throws Exception {
495     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
496     mockConnectionService.addException(exception);
497 
498     try {
499       ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
500       client.deleteConnection(name);
501       Assert.fail("No exception raised");
502     } catch (InvalidArgumentException e) {
503       // Expected exception.
504     }
505   }
506 
507   @Test
deleteConnectionTest2()508   public void deleteConnectionTest2() throws Exception {
509     Empty expectedResponse = Empty.newBuilder().build();
510     mockConnectionService.addResponse(expectedResponse);
511 
512     String name = "name3373707";
513 
514     client.deleteConnection(name);
515 
516     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
517     Assert.assertEquals(1, actualRequests.size());
518     DeleteConnectionRequest actualRequest = ((DeleteConnectionRequest) actualRequests.get(0));
519 
520     Assert.assertEquals(name, actualRequest.getName());
521     Assert.assertTrue(
522         channelProvider.isHeaderSent(
523             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
524             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
525   }
526 
527   @Test
deleteConnectionExceptionTest2()528   public void deleteConnectionExceptionTest2() throws Exception {
529     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
530     mockConnectionService.addException(exception);
531 
532     try {
533       String name = "name3373707";
534       client.deleteConnection(name);
535       Assert.fail("No exception raised");
536     } catch (InvalidArgumentException e) {
537       // Expected exception.
538     }
539   }
540 
541   @Test
getIamPolicyTest()542   public void getIamPolicyTest() throws Exception {
543     Policy expectedResponse =
544         Policy.newBuilder()
545             .setVersion(351608024)
546             .addAllBindings(new ArrayList<Binding>())
547             .addAllAuditConfigs(new ArrayList<AuditConfig>())
548             .setEtag(ByteString.EMPTY)
549             .build();
550     mockConnectionService.addResponse(expectedResponse);
551 
552     ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
553     GetPolicyOptions options = GetPolicyOptions.newBuilder().build();
554 
555     Policy actualResponse = client.getIamPolicy(resource, options);
556     Assert.assertEquals(expectedResponse, actualResponse);
557 
558     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
559     Assert.assertEquals(1, actualRequests.size());
560     GetIamPolicyRequest actualRequest = ((GetIamPolicyRequest) actualRequests.get(0));
561 
562     Assert.assertEquals(resource.toString(), actualRequest.getResource());
563     Assert.assertEquals(options, actualRequest.getOptions());
564     Assert.assertTrue(
565         channelProvider.isHeaderSent(
566             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
567             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
568   }
569 
570   @Test
getIamPolicyExceptionTest()571   public void getIamPolicyExceptionTest() throws Exception {
572     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
573     mockConnectionService.addException(exception);
574 
575     try {
576       ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
577       GetPolicyOptions options = GetPolicyOptions.newBuilder().build();
578       client.getIamPolicy(resource, options);
579       Assert.fail("No exception raised");
580     } catch (InvalidArgumentException e) {
581       // Expected exception.
582     }
583   }
584 
585   @Test
getIamPolicyTest2()586   public void getIamPolicyTest2() throws Exception {
587     Policy expectedResponse =
588         Policy.newBuilder()
589             .setVersion(351608024)
590             .addAllBindings(new ArrayList<Binding>())
591             .addAllAuditConfigs(new ArrayList<AuditConfig>())
592             .setEtag(ByteString.EMPTY)
593             .build();
594     mockConnectionService.addResponse(expectedResponse);
595 
596     String resource = "resource-341064690";
597     GetPolicyOptions options = GetPolicyOptions.newBuilder().build();
598 
599     Policy actualResponse = client.getIamPolicy(resource, options);
600     Assert.assertEquals(expectedResponse, actualResponse);
601 
602     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
603     Assert.assertEquals(1, actualRequests.size());
604     GetIamPolicyRequest actualRequest = ((GetIamPolicyRequest) actualRequests.get(0));
605 
606     Assert.assertEquals(resource, actualRequest.getResource());
607     Assert.assertEquals(options, actualRequest.getOptions());
608     Assert.assertTrue(
609         channelProvider.isHeaderSent(
610             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
611             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
612   }
613 
614   @Test
getIamPolicyExceptionTest2()615   public void getIamPolicyExceptionTest2() throws Exception {
616     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
617     mockConnectionService.addException(exception);
618 
619     try {
620       String resource = "resource-341064690";
621       GetPolicyOptions options = GetPolicyOptions.newBuilder().build();
622       client.getIamPolicy(resource, options);
623       Assert.fail("No exception raised");
624     } catch (InvalidArgumentException e) {
625       // Expected exception.
626     }
627   }
628 
629   @Test
setIamPolicyTest()630   public void setIamPolicyTest() throws Exception {
631     Policy expectedResponse =
632         Policy.newBuilder()
633             .setVersion(351608024)
634             .addAllBindings(new ArrayList<Binding>())
635             .addAllAuditConfigs(new ArrayList<AuditConfig>())
636             .setEtag(ByteString.EMPTY)
637             .build();
638     mockConnectionService.addResponse(expectedResponse);
639 
640     ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
641     Policy policy = Policy.newBuilder().build();
642 
643     Policy actualResponse = client.setIamPolicy(resource, policy);
644     Assert.assertEquals(expectedResponse, actualResponse);
645 
646     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
647     Assert.assertEquals(1, actualRequests.size());
648     SetIamPolicyRequest actualRequest = ((SetIamPolicyRequest) actualRequests.get(0));
649 
650     Assert.assertEquals(resource.toString(), actualRequest.getResource());
651     Assert.assertEquals(policy, actualRequest.getPolicy());
652     Assert.assertTrue(
653         channelProvider.isHeaderSent(
654             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
655             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
656   }
657 
658   @Test
setIamPolicyExceptionTest()659   public void setIamPolicyExceptionTest() throws Exception {
660     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
661     mockConnectionService.addException(exception);
662 
663     try {
664       ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
665       Policy policy = Policy.newBuilder().build();
666       client.setIamPolicy(resource, policy);
667       Assert.fail("No exception raised");
668     } catch (InvalidArgumentException e) {
669       // Expected exception.
670     }
671   }
672 
673   @Test
setIamPolicyTest2()674   public void setIamPolicyTest2() throws Exception {
675     Policy expectedResponse =
676         Policy.newBuilder()
677             .setVersion(351608024)
678             .addAllBindings(new ArrayList<Binding>())
679             .addAllAuditConfigs(new ArrayList<AuditConfig>())
680             .setEtag(ByteString.EMPTY)
681             .build();
682     mockConnectionService.addResponse(expectedResponse);
683 
684     String resource = "resource-341064690";
685     Policy policy = Policy.newBuilder().build();
686 
687     Policy actualResponse = client.setIamPolicy(resource, policy);
688     Assert.assertEquals(expectedResponse, actualResponse);
689 
690     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
691     Assert.assertEquals(1, actualRequests.size());
692     SetIamPolicyRequest actualRequest = ((SetIamPolicyRequest) actualRequests.get(0));
693 
694     Assert.assertEquals(resource, actualRequest.getResource());
695     Assert.assertEquals(policy, actualRequest.getPolicy());
696     Assert.assertTrue(
697         channelProvider.isHeaderSent(
698             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
699             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
700   }
701 
702   @Test
setIamPolicyExceptionTest2()703   public void setIamPolicyExceptionTest2() throws Exception {
704     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
705     mockConnectionService.addException(exception);
706 
707     try {
708       String resource = "resource-341064690";
709       Policy policy = Policy.newBuilder().build();
710       client.setIamPolicy(resource, policy);
711       Assert.fail("No exception raised");
712     } catch (InvalidArgumentException e) {
713       // Expected exception.
714     }
715   }
716 
717   @Test
testIamPermissionsTest()718   public void testIamPermissionsTest() throws Exception {
719     TestIamPermissionsResponse expectedResponse =
720         TestIamPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build();
721     mockConnectionService.addResponse(expectedResponse);
722 
723     ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
724     List<String> permissions = new ArrayList<>();
725 
726     TestIamPermissionsResponse actualResponse = client.testIamPermissions(resource, permissions);
727     Assert.assertEquals(expectedResponse, actualResponse);
728 
729     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
730     Assert.assertEquals(1, actualRequests.size());
731     TestIamPermissionsRequest actualRequest = ((TestIamPermissionsRequest) actualRequests.get(0));
732 
733     Assert.assertEquals(resource.toString(), actualRequest.getResource());
734     Assert.assertEquals(permissions, actualRequest.getPermissionsList());
735     Assert.assertTrue(
736         channelProvider.isHeaderSent(
737             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
738             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
739   }
740 
741   @Test
testIamPermissionsExceptionTest()742   public void testIamPermissionsExceptionTest() throws Exception {
743     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
744     mockConnectionService.addException(exception);
745 
746     try {
747       ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
748       List<String> permissions = new ArrayList<>();
749       client.testIamPermissions(resource, permissions);
750       Assert.fail("No exception raised");
751     } catch (InvalidArgumentException e) {
752       // Expected exception.
753     }
754   }
755 
756   @Test
testIamPermissionsTest2()757   public void testIamPermissionsTest2() throws Exception {
758     TestIamPermissionsResponse expectedResponse =
759         TestIamPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build();
760     mockConnectionService.addResponse(expectedResponse);
761 
762     String resource = "resource-341064690";
763     List<String> permissions = new ArrayList<>();
764 
765     TestIamPermissionsResponse actualResponse = client.testIamPermissions(resource, permissions);
766     Assert.assertEquals(expectedResponse, actualResponse);
767 
768     List<AbstractMessage> actualRequests = mockConnectionService.getRequests();
769     Assert.assertEquals(1, actualRequests.size());
770     TestIamPermissionsRequest actualRequest = ((TestIamPermissionsRequest) actualRequests.get(0));
771 
772     Assert.assertEquals(resource, actualRequest.getResource());
773     Assert.assertEquals(permissions, actualRequest.getPermissionsList());
774     Assert.assertTrue(
775         channelProvider.isHeaderSent(
776             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
777             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
778   }
779 
780   @Test
testIamPermissionsExceptionTest2()781   public void testIamPermissionsExceptionTest2() throws Exception {
782     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
783     mockConnectionService.addException(exception);
784 
785     try {
786       String resource = "resource-341064690";
787       List<String> permissions = new ArrayList<>();
788       client.testIamPermissions(resource, permissions);
789       Assert.fail("No exception raised");
790     } catch (InvalidArgumentException e) {
791       // Expected exception.
792     }
793   }
794 }
795