• 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.devtools.cloudbuild.v2;
18 
19 import static com.google.cloud.devtools.cloudbuild.v2.RepositoryManagerClient.FetchLinkableRepositoriesPagedResponse;
20 import static com.google.cloud.devtools.cloudbuild.v2.RepositoryManagerClient.ListConnectionsPagedResponse;
21 import static com.google.cloud.devtools.cloudbuild.v2.RepositoryManagerClient.ListRepositoriesPagedResponse;
22 
23 import com.google.api.gax.core.NoCredentialsProvider;
24 import com.google.api.gax.grpc.GaxGrpcProperties;
25 import com.google.api.gax.grpc.testing.LocalChannelProvider;
26 import com.google.api.gax.grpc.testing.MockGrpcService;
27 import com.google.api.gax.grpc.testing.MockServiceHelper;
28 import com.google.api.gax.rpc.ApiClientHeaderProvider;
29 import com.google.api.gax.rpc.InvalidArgumentException;
30 import com.google.api.gax.rpc.StatusCode;
31 import com.google.cloudbuild.v2.BatchCreateRepositoriesRequest;
32 import com.google.cloudbuild.v2.BatchCreateRepositoriesResponse;
33 import com.google.cloudbuild.v2.Connection;
34 import com.google.cloudbuild.v2.ConnectionName;
35 import com.google.cloudbuild.v2.CreateConnectionRequest;
36 import com.google.cloudbuild.v2.CreateRepositoryRequest;
37 import com.google.cloudbuild.v2.DeleteConnectionRequest;
38 import com.google.cloudbuild.v2.DeleteRepositoryRequest;
39 import com.google.cloudbuild.v2.FetchLinkableRepositoriesRequest;
40 import com.google.cloudbuild.v2.FetchLinkableRepositoriesResponse;
41 import com.google.cloudbuild.v2.FetchReadTokenRequest;
42 import com.google.cloudbuild.v2.FetchReadTokenResponse;
43 import com.google.cloudbuild.v2.FetchReadWriteTokenRequest;
44 import com.google.cloudbuild.v2.FetchReadWriteTokenResponse;
45 import com.google.cloudbuild.v2.GetConnectionRequest;
46 import com.google.cloudbuild.v2.GetRepositoryRequest;
47 import com.google.cloudbuild.v2.InstallationState;
48 import com.google.cloudbuild.v2.ListConnectionsRequest;
49 import com.google.cloudbuild.v2.ListConnectionsResponse;
50 import com.google.cloudbuild.v2.ListRepositoriesRequest;
51 import com.google.cloudbuild.v2.ListRepositoriesResponse;
52 import com.google.cloudbuild.v2.LocationName;
53 import com.google.cloudbuild.v2.Repository;
54 import com.google.cloudbuild.v2.RepositoryName;
55 import com.google.cloudbuild.v2.UpdateConnectionRequest;
56 import com.google.common.collect.Lists;
57 import com.google.iam.v1.AuditConfig;
58 import com.google.iam.v1.Binding;
59 import com.google.iam.v1.GetIamPolicyRequest;
60 import com.google.iam.v1.GetPolicyOptions;
61 import com.google.iam.v1.Policy;
62 import com.google.iam.v1.SetIamPolicyRequest;
63 import com.google.iam.v1.TestIamPermissionsRequest;
64 import com.google.iam.v1.TestIamPermissionsResponse;
65 import com.google.longrunning.Operation;
66 import com.google.protobuf.AbstractMessage;
67 import com.google.protobuf.Any;
68 import com.google.protobuf.ByteString;
69 import com.google.protobuf.Empty;
70 import com.google.protobuf.FieldMask;
71 import com.google.protobuf.Timestamp;
72 import io.grpc.StatusRuntimeException;
73 import java.io.IOException;
74 import java.util.ArrayList;
75 import java.util.Arrays;
76 import java.util.HashMap;
77 import java.util.List;
78 import java.util.UUID;
79 import java.util.concurrent.ExecutionException;
80 import javax.annotation.Generated;
81 import org.junit.After;
82 import org.junit.AfterClass;
83 import org.junit.Assert;
84 import org.junit.Before;
85 import org.junit.BeforeClass;
86 import org.junit.Test;
87 
88 @Generated("by gapic-generator-java")
89 public class RepositoryManagerClientTest {
90   private static MockIAMPolicy mockIAMPolicy;
91   private static MockLocations mockLocations;
92   private static MockRepositoryManager mockRepositoryManager;
93   private static MockServiceHelper mockServiceHelper;
94   private LocalChannelProvider channelProvider;
95   private RepositoryManagerClient client;
96 
97   @BeforeClass
startStaticServer()98   public static void startStaticServer() {
99     mockRepositoryManager = new MockRepositoryManager();
100     mockLocations = new MockLocations();
101     mockIAMPolicy = new MockIAMPolicy();
102     mockServiceHelper =
103         new MockServiceHelper(
104             UUID.randomUUID().toString(),
105             Arrays.<MockGrpcService>asList(mockRepositoryManager, mockLocations, mockIAMPolicy));
106     mockServiceHelper.start();
107   }
108 
109   @AfterClass
stopServer()110   public static void stopServer() {
111     mockServiceHelper.stop();
112   }
113 
114   @Before
setUp()115   public void setUp() throws IOException {
116     mockServiceHelper.reset();
117     channelProvider = mockServiceHelper.createChannelProvider();
118     RepositoryManagerSettings settings =
119         RepositoryManagerSettings.newBuilder()
120             .setTransportChannelProvider(channelProvider)
121             .setCredentialsProvider(NoCredentialsProvider.create())
122             .build();
123     client = RepositoryManagerClient.create(settings);
124   }
125 
126   @After
tearDown()127   public void tearDown() throws Exception {
128     client.close();
129   }
130 
131   @Test
createConnectionTest()132   public void createConnectionTest() throws Exception {
133     Connection expectedResponse =
134         Connection.newBuilder()
135             .setName(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
136             .setCreateTime(Timestamp.newBuilder().build())
137             .setUpdateTime(Timestamp.newBuilder().build())
138             .setInstallationState(InstallationState.newBuilder().build())
139             .setDisabled(true)
140             .setReconciling(true)
141             .putAllAnnotations(new HashMap<String, String>())
142             .setEtag("etag3123477")
143             .build();
144     Operation resultOperation =
145         Operation.newBuilder()
146             .setName("createConnectionTest")
147             .setDone(true)
148             .setResponse(Any.pack(expectedResponse))
149             .build();
150     mockRepositoryManager.addResponse(resultOperation);
151 
152     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
153     Connection connection = Connection.newBuilder().build();
154     String connectionId = "connectionId1923106969";
155 
156     Connection actualResponse =
157         client.createConnectionAsync(parent, connection, connectionId).get();
158     Assert.assertEquals(expectedResponse, actualResponse);
159 
160     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
161     Assert.assertEquals(1, actualRequests.size());
162     CreateConnectionRequest actualRequest = ((CreateConnectionRequest) actualRequests.get(0));
163 
164     Assert.assertEquals(parent.toString(), actualRequest.getParent());
165     Assert.assertEquals(connection, actualRequest.getConnection());
166     Assert.assertEquals(connectionId, actualRequest.getConnectionId());
167     Assert.assertTrue(
168         channelProvider.isHeaderSent(
169             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
170             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
171   }
172 
173   @Test
createConnectionExceptionTest()174   public void createConnectionExceptionTest() throws Exception {
175     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
176     mockRepositoryManager.addException(exception);
177 
178     try {
179       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
180       Connection connection = Connection.newBuilder().build();
181       String connectionId = "connectionId1923106969";
182       client.createConnectionAsync(parent, connection, connectionId).get();
183       Assert.fail("No exception raised");
184     } catch (ExecutionException e) {
185       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
186       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
187       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
188     }
189   }
190 
191   @Test
createConnectionTest2()192   public void createConnectionTest2() throws Exception {
193     Connection expectedResponse =
194         Connection.newBuilder()
195             .setName(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
196             .setCreateTime(Timestamp.newBuilder().build())
197             .setUpdateTime(Timestamp.newBuilder().build())
198             .setInstallationState(InstallationState.newBuilder().build())
199             .setDisabled(true)
200             .setReconciling(true)
201             .putAllAnnotations(new HashMap<String, String>())
202             .setEtag("etag3123477")
203             .build();
204     Operation resultOperation =
205         Operation.newBuilder()
206             .setName("createConnectionTest")
207             .setDone(true)
208             .setResponse(Any.pack(expectedResponse))
209             .build();
210     mockRepositoryManager.addResponse(resultOperation);
211 
212     String parent = "parent-995424086";
213     Connection connection = Connection.newBuilder().build();
214     String connectionId = "connectionId1923106969";
215 
216     Connection actualResponse =
217         client.createConnectionAsync(parent, connection, connectionId).get();
218     Assert.assertEquals(expectedResponse, actualResponse);
219 
220     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
221     Assert.assertEquals(1, actualRequests.size());
222     CreateConnectionRequest actualRequest = ((CreateConnectionRequest) actualRequests.get(0));
223 
224     Assert.assertEquals(parent, actualRequest.getParent());
225     Assert.assertEquals(connection, actualRequest.getConnection());
226     Assert.assertEquals(connectionId, actualRequest.getConnectionId());
227     Assert.assertTrue(
228         channelProvider.isHeaderSent(
229             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
230             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
231   }
232 
233   @Test
createConnectionExceptionTest2()234   public void createConnectionExceptionTest2() throws Exception {
235     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
236     mockRepositoryManager.addException(exception);
237 
238     try {
239       String parent = "parent-995424086";
240       Connection connection = Connection.newBuilder().build();
241       String connectionId = "connectionId1923106969";
242       client.createConnectionAsync(parent, connection, connectionId).get();
243       Assert.fail("No exception raised");
244     } catch (ExecutionException e) {
245       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
246       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
247       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
248     }
249   }
250 
251   @Test
getConnectionTest()252   public void getConnectionTest() throws Exception {
253     Connection expectedResponse =
254         Connection.newBuilder()
255             .setName(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
256             .setCreateTime(Timestamp.newBuilder().build())
257             .setUpdateTime(Timestamp.newBuilder().build())
258             .setInstallationState(InstallationState.newBuilder().build())
259             .setDisabled(true)
260             .setReconciling(true)
261             .putAllAnnotations(new HashMap<String, String>())
262             .setEtag("etag3123477")
263             .build();
264     mockRepositoryManager.addResponse(expectedResponse);
265 
266     ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
267 
268     Connection actualResponse = client.getConnection(name);
269     Assert.assertEquals(expectedResponse, actualResponse);
270 
271     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
272     Assert.assertEquals(1, actualRequests.size());
273     GetConnectionRequest actualRequest = ((GetConnectionRequest) actualRequests.get(0));
274 
275     Assert.assertEquals(name.toString(), actualRequest.getName());
276     Assert.assertTrue(
277         channelProvider.isHeaderSent(
278             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
279             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
280   }
281 
282   @Test
getConnectionExceptionTest()283   public void getConnectionExceptionTest() throws Exception {
284     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
285     mockRepositoryManager.addException(exception);
286 
287     try {
288       ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
289       client.getConnection(name);
290       Assert.fail("No exception raised");
291     } catch (InvalidArgumentException e) {
292       // Expected exception.
293     }
294   }
295 
296   @Test
getConnectionTest2()297   public void getConnectionTest2() throws Exception {
298     Connection expectedResponse =
299         Connection.newBuilder()
300             .setName(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
301             .setCreateTime(Timestamp.newBuilder().build())
302             .setUpdateTime(Timestamp.newBuilder().build())
303             .setInstallationState(InstallationState.newBuilder().build())
304             .setDisabled(true)
305             .setReconciling(true)
306             .putAllAnnotations(new HashMap<String, String>())
307             .setEtag("etag3123477")
308             .build();
309     mockRepositoryManager.addResponse(expectedResponse);
310 
311     String name = "name3373707";
312 
313     Connection actualResponse = client.getConnection(name);
314     Assert.assertEquals(expectedResponse, actualResponse);
315 
316     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
317     Assert.assertEquals(1, actualRequests.size());
318     GetConnectionRequest actualRequest = ((GetConnectionRequest) actualRequests.get(0));
319 
320     Assert.assertEquals(name, actualRequest.getName());
321     Assert.assertTrue(
322         channelProvider.isHeaderSent(
323             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
324             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
325   }
326 
327   @Test
getConnectionExceptionTest2()328   public void getConnectionExceptionTest2() throws Exception {
329     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
330     mockRepositoryManager.addException(exception);
331 
332     try {
333       String name = "name3373707";
334       client.getConnection(name);
335       Assert.fail("No exception raised");
336     } catch (InvalidArgumentException e) {
337       // Expected exception.
338     }
339   }
340 
341   @Test
listConnectionsTest()342   public void listConnectionsTest() throws Exception {
343     Connection responsesElement = Connection.newBuilder().build();
344     ListConnectionsResponse expectedResponse =
345         ListConnectionsResponse.newBuilder()
346             .setNextPageToken("")
347             .addAllConnections(Arrays.asList(responsesElement))
348             .build();
349     mockRepositoryManager.addResponse(expectedResponse);
350 
351     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
352 
353     ListConnectionsPagedResponse pagedListResponse = client.listConnections(parent);
354 
355     List<Connection> resources = Lists.newArrayList(pagedListResponse.iterateAll());
356 
357     Assert.assertEquals(1, resources.size());
358     Assert.assertEquals(expectedResponse.getConnectionsList().get(0), resources.get(0));
359 
360     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
361     Assert.assertEquals(1, actualRequests.size());
362     ListConnectionsRequest actualRequest = ((ListConnectionsRequest) actualRequests.get(0));
363 
364     Assert.assertEquals(parent.toString(), actualRequest.getParent());
365     Assert.assertTrue(
366         channelProvider.isHeaderSent(
367             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
368             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
369   }
370 
371   @Test
listConnectionsExceptionTest()372   public void listConnectionsExceptionTest() throws Exception {
373     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
374     mockRepositoryManager.addException(exception);
375 
376     try {
377       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
378       client.listConnections(parent);
379       Assert.fail("No exception raised");
380     } catch (InvalidArgumentException e) {
381       // Expected exception.
382     }
383   }
384 
385   @Test
listConnectionsTest2()386   public void listConnectionsTest2() throws Exception {
387     Connection responsesElement = Connection.newBuilder().build();
388     ListConnectionsResponse expectedResponse =
389         ListConnectionsResponse.newBuilder()
390             .setNextPageToken("")
391             .addAllConnections(Arrays.asList(responsesElement))
392             .build();
393     mockRepositoryManager.addResponse(expectedResponse);
394 
395     String parent = "parent-995424086";
396 
397     ListConnectionsPagedResponse pagedListResponse = client.listConnections(parent);
398 
399     List<Connection> resources = Lists.newArrayList(pagedListResponse.iterateAll());
400 
401     Assert.assertEquals(1, resources.size());
402     Assert.assertEquals(expectedResponse.getConnectionsList().get(0), resources.get(0));
403 
404     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
405     Assert.assertEquals(1, actualRequests.size());
406     ListConnectionsRequest actualRequest = ((ListConnectionsRequest) actualRequests.get(0));
407 
408     Assert.assertEquals(parent, actualRequest.getParent());
409     Assert.assertTrue(
410         channelProvider.isHeaderSent(
411             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
412             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
413   }
414 
415   @Test
listConnectionsExceptionTest2()416   public void listConnectionsExceptionTest2() throws Exception {
417     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
418     mockRepositoryManager.addException(exception);
419 
420     try {
421       String parent = "parent-995424086";
422       client.listConnections(parent);
423       Assert.fail("No exception raised");
424     } catch (InvalidArgumentException e) {
425       // Expected exception.
426     }
427   }
428 
429   @Test
updateConnectionTest()430   public void updateConnectionTest() throws Exception {
431     Connection expectedResponse =
432         Connection.newBuilder()
433             .setName(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
434             .setCreateTime(Timestamp.newBuilder().build())
435             .setUpdateTime(Timestamp.newBuilder().build())
436             .setInstallationState(InstallationState.newBuilder().build())
437             .setDisabled(true)
438             .setReconciling(true)
439             .putAllAnnotations(new HashMap<String, String>())
440             .setEtag("etag3123477")
441             .build();
442     Operation resultOperation =
443         Operation.newBuilder()
444             .setName("updateConnectionTest")
445             .setDone(true)
446             .setResponse(Any.pack(expectedResponse))
447             .build();
448     mockRepositoryManager.addResponse(resultOperation);
449 
450     Connection connection = Connection.newBuilder().build();
451     FieldMask updateMask = FieldMask.newBuilder().build();
452 
453     Connection actualResponse = client.updateConnectionAsync(connection, updateMask).get();
454     Assert.assertEquals(expectedResponse, actualResponse);
455 
456     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
457     Assert.assertEquals(1, actualRequests.size());
458     UpdateConnectionRequest actualRequest = ((UpdateConnectionRequest) actualRequests.get(0));
459 
460     Assert.assertEquals(connection, actualRequest.getConnection());
461     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
462     Assert.assertTrue(
463         channelProvider.isHeaderSent(
464             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
465             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
466   }
467 
468   @Test
updateConnectionExceptionTest()469   public void updateConnectionExceptionTest() throws Exception {
470     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
471     mockRepositoryManager.addException(exception);
472 
473     try {
474       Connection connection = Connection.newBuilder().build();
475       FieldMask updateMask = FieldMask.newBuilder().build();
476       client.updateConnectionAsync(connection, updateMask).get();
477       Assert.fail("No exception raised");
478     } catch (ExecutionException e) {
479       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
480       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
481       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
482     }
483   }
484 
485   @Test
deleteConnectionTest()486   public void deleteConnectionTest() throws Exception {
487     Empty expectedResponse = Empty.newBuilder().build();
488     Operation resultOperation =
489         Operation.newBuilder()
490             .setName("deleteConnectionTest")
491             .setDone(true)
492             .setResponse(Any.pack(expectedResponse))
493             .build();
494     mockRepositoryManager.addResponse(resultOperation);
495 
496     ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
497 
498     client.deleteConnectionAsync(name).get();
499 
500     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
501     Assert.assertEquals(1, actualRequests.size());
502     DeleteConnectionRequest actualRequest = ((DeleteConnectionRequest) actualRequests.get(0));
503 
504     Assert.assertEquals(name.toString(), actualRequest.getName());
505     Assert.assertTrue(
506         channelProvider.isHeaderSent(
507             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
508             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
509   }
510 
511   @Test
deleteConnectionExceptionTest()512   public void deleteConnectionExceptionTest() throws Exception {
513     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
514     mockRepositoryManager.addException(exception);
515 
516     try {
517       ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
518       client.deleteConnectionAsync(name).get();
519       Assert.fail("No exception raised");
520     } catch (ExecutionException e) {
521       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
522       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
523       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
524     }
525   }
526 
527   @Test
deleteConnectionTest2()528   public void deleteConnectionTest2() throws Exception {
529     Empty expectedResponse = Empty.newBuilder().build();
530     Operation resultOperation =
531         Operation.newBuilder()
532             .setName("deleteConnectionTest")
533             .setDone(true)
534             .setResponse(Any.pack(expectedResponse))
535             .build();
536     mockRepositoryManager.addResponse(resultOperation);
537 
538     String name = "name3373707";
539 
540     client.deleteConnectionAsync(name).get();
541 
542     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
543     Assert.assertEquals(1, actualRequests.size());
544     DeleteConnectionRequest actualRequest = ((DeleteConnectionRequest) actualRequests.get(0));
545 
546     Assert.assertEquals(name, actualRequest.getName());
547     Assert.assertTrue(
548         channelProvider.isHeaderSent(
549             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
550             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
551   }
552 
553   @Test
deleteConnectionExceptionTest2()554   public void deleteConnectionExceptionTest2() throws Exception {
555     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
556     mockRepositoryManager.addException(exception);
557 
558     try {
559       String name = "name3373707";
560       client.deleteConnectionAsync(name).get();
561       Assert.fail("No exception raised");
562     } catch (ExecutionException e) {
563       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
564       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
565       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
566     }
567   }
568 
569   @Test
createRepositoryTest()570   public void createRepositoryTest() throws Exception {
571     Repository expectedResponse =
572         Repository.newBuilder()
573             .setName(
574                 RepositoryName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]", "[REPOSITORY]")
575                     .toString())
576             .setRemoteUri("remoteUri1280517958")
577             .setCreateTime(Timestamp.newBuilder().build())
578             .setUpdateTime(Timestamp.newBuilder().build())
579             .putAllAnnotations(new HashMap<String, String>())
580             .setEtag("etag3123477")
581             .build();
582     Operation resultOperation =
583         Operation.newBuilder()
584             .setName("createRepositoryTest")
585             .setDone(true)
586             .setResponse(Any.pack(expectedResponse))
587             .build();
588     mockRepositoryManager.addResponse(resultOperation);
589 
590     ConnectionName parent = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
591     Repository repository = Repository.newBuilder().build();
592     String repositoryId = "repositoryId2113747461";
593 
594     Repository actualResponse =
595         client.createRepositoryAsync(parent, repository, repositoryId).get();
596     Assert.assertEquals(expectedResponse, actualResponse);
597 
598     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
599     Assert.assertEquals(1, actualRequests.size());
600     CreateRepositoryRequest actualRequest = ((CreateRepositoryRequest) actualRequests.get(0));
601 
602     Assert.assertEquals(parent.toString(), actualRequest.getParent());
603     Assert.assertEquals(repository, actualRequest.getRepository());
604     Assert.assertEquals(repositoryId, actualRequest.getRepositoryId());
605     Assert.assertTrue(
606         channelProvider.isHeaderSent(
607             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
608             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
609   }
610 
611   @Test
createRepositoryExceptionTest()612   public void createRepositoryExceptionTest() throws Exception {
613     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
614     mockRepositoryManager.addException(exception);
615 
616     try {
617       ConnectionName parent = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
618       Repository repository = Repository.newBuilder().build();
619       String repositoryId = "repositoryId2113747461";
620       client.createRepositoryAsync(parent, repository, repositoryId).get();
621       Assert.fail("No exception raised");
622     } catch (ExecutionException e) {
623       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
624       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
625       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
626     }
627   }
628 
629   @Test
createRepositoryTest2()630   public void createRepositoryTest2() throws Exception {
631     Repository expectedResponse =
632         Repository.newBuilder()
633             .setName(
634                 RepositoryName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]", "[REPOSITORY]")
635                     .toString())
636             .setRemoteUri("remoteUri1280517958")
637             .setCreateTime(Timestamp.newBuilder().build())
638             .setUpdateTime(Timestamp.newBuilder().build())
639             .putAllAnnotations(new HashMap<String, String>())
640             .setEtag("etag3123477")
641             .build();
642     Operation resultOperation =
643         Operation.newBuilder()
644             .setName("createRepositoryTest")
645             .setDone(true)
646             .setResponse(Any.pack(expectedResponse))
647             .build();
648     mockRepositoryManager.addResponse(resultOperation);
649 
650     String parent = "parent-995424086";
651     Repository repository = Repository.newBuilder().build();
652     String repositoryId = "repositoryId2113747461";
653 
654     Repository actualResponse =
655         client.createRepositoryAsync(parent, repository, repositoryId).get();
656     Assert.assertEquals(expectedResponse, actualResponse);
657 
658     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
659     Assert.assertEquals(1, actualRequests.size());
660     CreateRepositoryRequest actualRequest = ((CreateRepositoryRequest) actualRequests.get(0));
661 
662     Assert.assertEquals(parent, actualRequest.getParent());
663     Assert.assertEquals(repository, actualRequest.getRepository());
664     Assert.assertEquals(repositoryId, actualRequest.getRepositoryId());
665     Assert.assertTrue(
666         channelProvider.isHeaderSent(
667             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
668             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
669   }
670 
671   @Test
createRepositoryExceptionTest2()672   public void createRepositoryExceptionTest2() throws Exception {
673     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
674     mockRepositoryManager.addException(exception);
675 
676     try {
677       String parent = "parent-995424086";
678       Repository repository = Repository.newBuilder().build();
679       String repositoryId = "repositoryId2113747461";
680       client.createRepositoryAsync(parent, repository, repositoryId).get();
681       Assert.fail("No exception raised");
682     } catch (ExecutionException e) {
683       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
684       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
685       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
686     }
687   }
688 
689   @Test
batchCreateRepositoriesTest()690   public void batchCreateRepositoriesTest() throws Exception {
691     BatchCreateRepositoriesResponse expectedResponse =
692         BatchCreateRepositoriesResponse.newBuilder()
693             .addAllRepositories(new ArrayList<Repository>())
694             .build();
695     Operation resultOperation =
696         Operation.newBuilder()
697             .setName("batchCreateRepositoriesTest")
698             .setDone(true)
699             .setResponse(Any.pack(expectedResponse))
700             .build();
701     mockRepositoryManager.addResponse(resultOperation);
702 
703     ConnectionName parent = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
704     List<CreateRepositoryRequest> requests = new ArrayList<>();
705 
706     BatchCreateRepositoriesResponse actualResponse =
707         client.batchCreateRepositoriesAsync(parent, requests).get();
708     Assert.assertEquals(expectedResponse, actualResponse);
709 
710     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
711     Assert.assertEquals(1, actualRequests.size());
712     BatchCreateRepositoriesRequest actualRequest =
713         ((BatchCreateRepositoriesRequest) actualRequests.get(0));
714 
715     Assert.assertEquals(parent.toString(), actualRequest.getParent());
716     Assert.assertEquals(requests, actualRequest.getRequestsList());
717     Assert.assertTrue(
718         channelProvider.isHeaderSent(
719             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
720             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
721   }
722 
723   @Test
batchCreateRepositoriesExceptionTest()724   public void batchCreateRepositoriesExceptionTest() throws Exception {
725     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
726     mockRepositoryManager.addException(exception);
727 
728     try {
729       ConnectionName parent = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
730       List<CreateRepositoryRequest> requests = new ArrayList<>();
731       client.batchCreateRepositoriesAsync(parent, requests).get();
732       Assert.fail("No exception raised");
733     } catch (ExecutionException e) {
734       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
735       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
736       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
737     }
738   }
739 
740   @Test
batchCreateRepositoriesTest2()741   public void batchCreateRepositoriesTest2() throws Exception {
742     BatchCreateRepositoriesResponse expectedResponse =
743         BatchCreateRepositoriesResponse.newBuilder()
744             .addAllRepositories(new ArrayList<Repository>())
745             .build();
746     Operation resultOperation =
747         Operation.newBuilder()
748             .setName("batchCreateRepositoriesTest")
749             .setDone(true)
750             .setResponse(Any.pack(expectedResponse))
751             .build();
752     mockRepositoryManager.addResponse(resultOperation);
753 
754     String parent = "parent-995424086";
755     List<CreateRepositoryRequest> requests = new ArrayList<>();
756 
757     BatchCreateRepositoriesResponse actualResponse =
758         client.batchCreateRepositoriesAsync(parent, requests).get();
759     Assert.assertEquals(expectedResponse, actualResponse);
760 
761     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
762     Assert.assertEquals(1, actualRequests.size());
763     BatchCreateRepositoriesRequest actualRequest =
764         ((BatchCreateRepositoriesRequest) actualRequests.get(0));
765 
766     Assert.assertEquals(parent, actualRequest.getParent());
767     Assert.assertEquals(requests, actualRequest.getRequestsList());
768     Assert.assertTrue(
769         channelProvider.isHeaderSent(
770             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
771             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
772   }
773 
774   @Test
batchCreateRepositoriesExceptionTest2()775   public void batchCreateRepositoriesExceptionTest2() throws Exception {
776     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
777     mockRepositoryManager.addException(exception);
778 
779     try {
780       String parent = "parent-995424086";
781       List<CreateRepositoryRequest> requests = new ArrayList<>();
782       client.batchCreateRepositoriesAsync(parent, requests).get();
783       Assert.fail("No exception raised");
784     } catch (ExecutionException e) {
785       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
786       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
787       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
788     }
789   }
790 
791   @Test
getRepositoryTest()792   public void getRepositoryTest() throws Exception {
793     Repository expectedResponse =
794         Repository.newBuilder()
795             .setName(
796                 RepositoryName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]", "[REPOSITORY]")
797                     .toString())
798             .setRemoteUri("remoteUri1280517958")
799             .setCreateTime(Timestamp.newBuilder().build())
800             .setUpdateTime(Timestamp.newBuilder().build())
801             .putAllAnnotations(new HashMap<String, String>())
802             .setEtag("etag3123477")
803             .build();
804     mockRepositoryManager.addResponse(expectedResponse);
805 
806     RepositoryName name =
807         RepositoryName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]", "[REPOSITORY]");
808 
809     Repository actualResponse = client.getRepository(name);
810     Assert.assertEquals(expectedResponse, actualResponse);
811 
812     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
813     Assert.assertEquals(1, actualRequests.size());
814     GetRepositoryRequest actualRequest = ((GetRepositoryRequest) actualRequests.get(0));
815 
816     Assert.assertEquals(name.toString(), actualRequest.getName());
817     Assert.assertTrue(
818         channelProvider.isHeaderSent(
819             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
820             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
821   }
822 
823   @Test
getRepositoryExceptionTest()824   public void getRepositoryExceptionTest() throws Exception {
825     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
826     mockRepositoryManager.addException(exception);
827 
828     try {
829       RepositoryName name =
830           RepositoryName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]", "[REPOSITORY]");
831       client.getRepository(name);
832       Assert.fail("No exception raised");
833     } catch (InvalidArgumentException e) {
834       // Expected exception.
835     }
836   }
837 
838   @Test
getRepositoryTest2()839   public void getRepositoryTest2() throws Exception {
840     Repository expectedResponse =
841         Repository.newBuilder()
842             .setName(
843                 RepositoryName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]", "[REPOSITORY]")
844                     .toString())
845             .setRemoteUri("remoteUri1280517958")
846             .setCreateTime(Timestamp.newBuilder().build())
847             .setUpdateTime(Timestamp.newBuilder().build())
848             .putAllAnnotations(new HashMap<String, String>())
849             .setEtag("etag3123477")
850             .build();
851     mockRepositoryManager.addResponse(expectedResponse);
852 
853     String name = "name3373707";
854 
855     Repository actualResponse = client.getRepository(name);
856     Assert.assertEquals(expectedResponse, actualResponse);
857 
858     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
859     Assert.assertEquals(1, actualRequests.size());
860     GetRepositoryRequest actualRequest = ((GetRepositoryRequest) actualRequests.get(0));
861 
862     Assert.assertEquals(name, actualRequest.getName());
863     Assert.assertTrue(
864         channelProvider.isHeaderSent(
865             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
866             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
867   }
868 
869   @Test
getRepositoryExceptionTest2()870   public void getRepositoryExceptionTest2() throws Exception {
871     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
872     mockRepositoryManager.addException(exception);
873 
874     try {
875       String name = "name3373707";
876       client.getRepository(name);
877       Assert.fail("No exception raised");
878     } catch (InvalidArgumentException e) {
879       // Expected exception.
880     }
881   }
882 
883   @Test
listRepositoriesTest()884   public void listRepositoriesTest() throws Exception {
885     Repository responsesElement = Repository.newBuilder().build();
886     ListRepositoriesResponse expectedResponse =
887         ListRepositoriesResponse.newBuilder()
888             .setNextPageToken("")
889             .addAllRepositories(Arrays.asList(responsesElement))
890             .build();
891     mockRepositoryManager.addResponse(expectedResponse);
892 
893     ConnectionName parent = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
894 
895     ListRepositoriesPagedResponse pagedListResponse = client.listRepositories(parent);
896 
897     List<Repository> resources = Lists.newArrayList(pagedListResponse.iterateAll());
898 
899     Assert.assertEquals(1, resources.size());
900     Assert.assertEquals(expectedResponse.getRepositoriesList().get(0), resources.get(0));
901 
902     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
903     Assert.assertEquals(1, actualRequests.size());
904     ListRepositoriesRequest actualRequest = ((ListRepositoriesRequest) actualRequests.get(0));
905 
906     Assert.assertEquals(parent.toString(), actualRequest.getParent());
907     Assert.assertTrue(
908         channelProvider.isHeaderSent(
909             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
910             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
911   }
912 
913   @Test
listRepositoriesExceptionTest()914   public void listRepositoriesExceptionTest() throws Exception {
915     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
916     mockRepositoryManager.addException(exception);
917 
918     try {
919       ConnectionName parent = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
920       client.listRepositories(parent);
921       Assert.fail("No exception raised");
922     } catch (InvalidArgumentException e) {
923       // Expected exception.
924     }
925   }
926 
927   @Test
listRepositoriesTest2()928   public void listRepositoriesTest2() throws Exception {
929     Repository responsesElement = Repository.newBuilder().build();
930     ListRepositoriesResponse expectedResponse =
931         ListRepositoriesResponse.newBuilder()
932             .setNextPageToken("")
933             .addAllRepositories(Arrays.asList(responsesElement))
934             .build();
935     mockRepositoryManager.addResponse(expectedResponse);
936 
937     String parent = "parent-995424086";
938 
939     ListRepositoriesPagedResponse pagedListResponse = client.listRepositories(parent);
940 
941     List<Repository> resources = Lists.newArrayList(pagedListResponse.iterateAll());
942 
943     Assert.assertEquals(1, resources.size());
944     Assert.assertEquals(expectedResponse.getRepositoriesList().get(0), resources.get(0));
945 
946     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
947     Assert.assertEquals(1, actualRequests.size());
948     ListRepositoriesRequest actualRequest = ((ListRepositoriesRequest) actualRequests.get(0));
949 
950     Assert.assertEquals(parent, actualRequest.getParent());
951     Assert.assertTrue(
952         channelProvider.isHeaderSent(
953             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
954             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
955   }
956 
957   @Test
listRepositoriesExceptionTest2()958   public void listRepositoriesExceptionTest2() throws Exception {
959     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
960     mockRepositoryManager.addException(exception);
961 
962     try {
963       String parent = "parent-995424086";
964       client.listRepositories(parent);
965       Assert.fail("No exception raised");
966     } catch (InvalidArgumentException e) {
967       // Expected exception.
968     }
969   }
970 
971   @Test
deleteRepositoryTest()972   public void deleteRepositoryTest() throws Exception {
973     Empty expectedResponse = Empty.newBuilder().build();
974     Operation resultOperation =
975         Operation.newBuilder()
976             .setName("deleteRepositoryTest")
977             .setDone(true)
978             .setResponse(Any.pack(expectedResponse))
979             .build();
980     mockRepositoryManager.addResponse(resultOperation);
981 
982     RepositoryName name =
983         RepositoryName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]", "[REPOSITORY]");
984 
985     client.deleteRepositoryAsync(name).get();
986 
987     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
988     Assert.assertEquals(1, actualRequests.size());
989     DeleteRepositoryRequest actualRequest = ((DeleteRepositoryRequest) actualRequests.get(0));
990 
991     Assert.assertEquals(name.toString(), actualRequest.getName());
992     Assert.assertTrue(
993         channelProvider.isHeaderSent(
994             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
995             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
996   }
997 
998   @Test
deleteRepositoryExceptionTest()999   public void deleteRepositoryExceptionTest() throws Exception {
1000     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1001     mockRepositoryManager.addException(exception);
1002 
1003     try {
1004       RepositoryName name =
1005           RepositoryName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]", "[REPOSITORY]");
1006       client.deleteRepositoryAsync(name).get();
1007       Assert.fail("No exception raised");
1008     } catch (ExecutionException e) {
1009       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1010       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1011       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1012     }
1013   }
1014 
1015   @Test
deleteRepositoryTest2()1016   public void deleteRepositoryTest2() throws Exception {
1017     Empty expectedResponse = Empty.newBuilder().build();
1018     Operation resultOperation =
1019         Operation.newBuilder()
1020             .setName("deleteRepositoryTest")
1021             .setDone(true)
1022             .setResponse(Any.pack(expectedResponse))
1023             .build();
1024     mockRepositoryManager.addResponse(resultOperation);
1025 
1026     String name = "name3373707";
1027 
1028     client.deleteRepositoryAsync(name).get();
1029 
1030     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
1031     Assert.assertEquals(1, actualRequests.size());
1032     DeleteRepositoryRequest actualRequest = ((DeleteRepositoryRequest) actualRequests.get(0));
1033 
1034     Assert.assertEquals(name, actualRequest.getName());
1035     Assert.assertTrue(
1036         channelProvider.isHeaderSent(
1037             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1038             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1039   }
1040 
1041   @Test
deleteRepositoryExceptionTest2()1042   public void deleteRepositoryExceptionTest2() throws Exception {
1043     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1044     mockRepositoryManager.addException(exception);
1045 
1046     try {
1047       String name = "name3373707";
1048       client.deleteRepositoryAsync(name).get();
1049       Assert.fail("No exception raised");
1050     } catch (ExecutionException e) {
1051       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1052       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1053       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1054     }
1055   }
1056 
1057   @Test
fetchReadWriteTokenTest()1058   public void fetchReadWriteTokenTest() throws Exception {
1059     FetchReadWriteTokenResponse expectedResponse =
1060         FetchReadWriteTokenResponse.newBuilder()
1061             .setToken("token110541305")
1062             .setExpirationTime(Timestamp.newBuilder().build())
1063             .build();
1064     mockRepositoryManager.addResponse(expectedResponse);
1065 
1066     RepositoryName repository =
1067         RepositoryName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]", "[REPOSITORY]");
1068 
1069     FetchReadWriteTokenResponse actualResponse = client.fetchReadWriteToken(repository);
1070     Assert.assertEquals(expectedResponse, actualResponse);
1071 
1072     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
1073     Assert.assertEquals(1, actualRequests.size());
1074     FetchReadWriteTokenRequest actualRequest = ((FetchReadWriteTokenRequest) actualRequests.get(0));
1075 
1076     Assert.assertEquals(repository.toString(), actualRequest.getRepository());
1077     Assert.assertTrue(
1078         channelProvider.isHeaderSent(
1079             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1080             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1081   }
1082 
1083   @Test
fetchReadWriteTokenExceptionTest()1084   public void fetchReadWriteTokenExceptionTest() throws Exception {
1085     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1086     mockRepositoryManager.addException(exception);
1087 
1088     try {
1089       RepositoryName repository =
1090           RepositoryName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]", "[REPOSITORY]");
1091       client.fetchReadWriteToken(repository);
1092       Assert.fail("No exception raised");
1093     } catch (InvalidArgumentException e) {
1094       // Expected exception.
1095     }
1096   }
1097 
1098   @Test
fetchReadWriteTokenTest2()1099   public void fetchReadWriteTokenTest2() throws Exception {
1100     FetchReadWriteTokenResponse expectedResponse =
1101         FetchReadWriteTokenResponse.newBuilder()
1102             .setToken("token110541305")
1103             .setExpirationTime(Timestamp.newBuilder().build())
1104             .build();
1105     mockRepositoryManager.addResponse(expectedResponse);
1106 
1107     String repository = "repository1950800714";
1108 
1109     FetchReadWriteTokenResponse actualResponse = client.fetchReadWriteToken(repository);
1110     Assert.assertEquals(expectedResponse, actualResponse);
1111 
1112     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
1113     Assert.assertEquals(1, actualRequests.size());
1114     FetchReadWriteTokenRequest actualRequest = ((FetchReadWriteTokenRequest) actualRequests.get(0));
1115 
1116     Assert.assertEquals(repository, actualRequest.getRepository());
1117     Assert.assertTrue(
1118         channelProvider.isHeaderSent(
1119             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1120             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1121   }
1122 
1123   @Test
fetchReadWriteTokenExceptionTest2()1124   public void fetchReadWriteTokenExceptionTest2() throws Exception {
1125     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1126     mockRepositoryManager.addException(exception);
1127 
1128     try {
1129       String repository = "repository1950800714";
1130       client.fetchReadWriteToken(repository);
1131       Assert.fail("No exception raised");
1132     } catch (InvalidArgumentException e) {
1133       // Expected exception.
1134     }
1135   }
1136 
1137   @Test
fetchReadTokenTest()1138   public void fetchReadTokenTest() throws Exception {
1139     FetchReadTokenResponse expectedResponse =
1140         FetchReadTokenResponse.newBuilder()
1141             .setToken("token110541305")
1142             .setExpirationTime(Timestamp.newBuilder().build())
1143             .build();
1144     mockRepositoryManager.addResponse(expectedResponse);
1145 
1146     RepositoryName repository =
1147         RepositoryName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]", "[REPOSITORY]");
1148 
1149     FetchReadTokenResponse actualResponse = client.fetchReadToken(repository);
1150     Assert.assertEquals(expectedResponse, actualResponse);
1151 
1152     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
1153     Assert.assertEquals(1, actualRequests.size());
1154     FetchReadTokenRequest actualRequest = ((FetchReadTokenRequest) actualRequests.get(0));
1155 
1156     Assert.assertEquals(repository.toString(), actualRequest.getRepository());
1157     Assert.assertTrue(
1158         channelProvider.isHeaderSent(
1159             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1160             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1161   }
1162 
1163   @Test
fetchReadTokenExceptionTest()1164   public void fetchReadTokenExceptionTest() throws Exception {
1165     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1166     mockRepositoryManager.addException(exception);
1167 
1168     try {
1169       RepositoryName repository =
1170           RepositoryName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]", "[REPOSITORY]");
1171       client.fetchReadToken(repository);
1172       Assert.fail("No exception raised");
1173     } catch (InvalidArgumentException e) {
1174       // Expected exception.
1175     }
1176   }
1177 
1178   @Test
fetchReadTokenTest2()1179   public void fetchReadTokenTest2() throws Exception {
1180     FetchReadTokenResponse expectedResponse =
1181         FetchReadTokenResponse.newBuilder()
1182             .setToken("token110541305")
1183             .setExpirationTime(Timestamp.newBuilder().build())
1184             .build();
1185     mockRepositoryManager.addResponse(expectedResponse);
1186 
1187     String repository = "repository1950800714";
1188 
1189     FetchReadTokenResponse actualResponse = client.fetchReadToken(repository);
1190     Assert.assertEquals(expectedResponse, actualResponse);
1191 
1192     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
1193     Assert.assertEquals(1, actualRequests.size());
1194     FetchReadTokenRequest actualRequest = ((FetchReadTokenRequest) actualRequests.get(0));
1195 
1196     Assert.assertEquals(repository, actualRequest.getRepository());
1197     Assert.assertTrue(
1198         channelProvider.isHeaderSent(
1199             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1200             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1201   }
1202 
1203   @Test
fetchReadTokenExceptionTest2()1204   public void fetchReadTokenExceptionTest2() throws Exception {
1205     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1206     mockRepositoryManager.addException(exception);
1207 
1208     try {
1209       String repository = "repository1950800714";
1210       client.fetchReadToken(repository);
1211       Assert.fail("No exception raised");
1212     } catch (InvalidArgumentException e) {
1213       // Expected exception.
1214     }
1215   }
1216 
1217   @Test
fetchLinkableRepositoriesTest()1218   public void fetchLinkableRepositoriesTest() throws Exception {
1219     Repository responsesElement = Repository.newBuilder().build();
1220     FetchLinkableRepositoriesResponse expectedResponse =
1221         FetchLinkableRepositoriesResponse.newBuilder()
1222             .setNextPageToken("")
1223             .addAllRepositories(Arrays.asList(responsesElement))
1224             .build();
1225     mockRepositoryManager.addResponse(expectedResponse);
1226 
1227     FetchLinkableRepositoriesRequest request =
1228         FetchLinkableRepositoriesRequest.newBuilder()
1229             .setConnection(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
1230             .setPageSize(883849137)
1231             .setPageToken("pageToken873572522")
1232             .build();
1233 
1234     FetchLinkableRepositoriesPagedResponse pagedListResponse =
1235         client.fetchLinkableRepositories(request);
1236 
1237     List<Repository> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1238 
1239     Assert.assertEquals(1, resources.size());
1240     Assert.assertEquals(expectedResponse.getRepositoriesList().get(0), resources.get(0));
1241 
1242     List<AbstractMessage> actualRequests = mockRepositoryManager.getRequests();
1243     Assert.assertEquals(1, actualRequests.size());
1244     FetchLinkableRepositoriesRequest actualRequest =
1245         ((FetchLinkableRepositoriesRequest) actualRequests.get(0));
1246 
1247     Assert.assertEquals(request.getConnection(), actualRequest.getConnection());
1248     Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize());
1249     Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken());
1250     Assert.assertTrue(
1251         channelProvider.isHeaderSent(
1252             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1253             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1254   }
1255 
1256   @Test
fetchLinkableRepositoriesExceptionTest()1257   public void fetchLinkableRepositoriesExceptionTest() throws Exception {
1258     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1259     mockRepositoryManager.addException(exception);
1260 
1261     try {
1262       FetchLinkableRepositoriesRequest request =
1263           FetchLinkableRepositoriesRequest.newBuilder()
1264               .setConnection(
1265                   ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
1266               .setPageSize(883849137)
1267               .setPageToken("pageToken873572522")
1268               .build();
1269       client.fetchLinkableRepositories(request);
1270       Assert.fail("No exception raised");
1271     } catch (InvalidArgumentException e) {
1272       // Expected exception.
1273     }
1274   }
1275 
1276   @Test
setIamPolicyTest()1277   public void setIamPolicyTest() throws Exception {
1278     Policy expectedResponse =
1279         Policy.newBuilder()
1280             .setVersion(351608024)
1281             .addAllBindings(new ArrayList<Binding>())
1282             .addAllAuditConfigs(new ArrayList<AuditConfig>())
1283             .setEtag(ByteString.EMPTY)
1284             .build();
1285     mockIAMPolicy.addResponse(expectedResponse);
1286 
1287     SetIamPolicyRequest request =
1288         SetIamPolicyRequest.newBuilder()
1289             .setResource(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
1290             .setPolicy(Policy.newBuilder().build())
1291             .setUpdateMask(FieldMask.newBuilder().build())
1292             .build();
1293 
1294     Policy actualResponse = client.setIamPolicy(request);
1295     Assert.assertEquals(expectedResponse, actualResponse);
1296 
1297     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
1298     Assert.assertEquals(1, actualRequests.size());
1299     SetIamPolicyRequest actualRequest = ((SetIamPolicyRequest) actualRequests.get(0));
1300 
1301     Assert.assertEquals(request.getResource(), actualRequest.getResource());
1302     Assert.assertEquals(request.getPolicy(), actualRequest.getPolicy());
1303     Assert.assertEquals(request.getUpdateMask(), actualRequest.getUpdateMask());
1304     Assert.assertTrue(
1305         channelProvider.isHeaderSent(
1306             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1307             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1308   }
1309 
1310   @Test
setIamPolicyExceptionTest()1311   public void setIamPolicyExceptionTest() throws Exception {
1312     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1313     mockIAMPolicy.addException(exception);
1314 
1315     try {
1316       SetIamPolicyRequest request =
1317           SetIamPolicyRequest.newBuilder()
1318               .setResource(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
1319               .setPolicy(Policy.newBuilder().build())
1320               .setUpdateMask(FieldMask.newBuilder().build())
1321               .build();
1322       client.setIamPolicy(request);
1323       Assert.fail("No exception raised");
1324     } catch (InvalidArgumentException e) {
1325       // Expected exception.
1326     }
1327   }
1328 
1329   @Test
getIamPolicyTest()1330   public void getIamPolicyTest() throws Exception {
1331     Policy expectedResponse =
1332         Policy.newBuilder()
1333             .setVersion(351608024)
1334             .addAllBindings(new ArrayList<Binding>())
1335             .addAllAuditConfigs(new ArrayList<AuditConfig>())
1336             .setEtag(ByteString.EMPTY)
1337             .build();
1338     mockIAMPolicy.addResponse(expectedResponse);
1339 
1340     GetIamPolicyRequest request =
1341         GetIamPolicyRequest.newBuilder()
1342             .setResource(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
1343             .setOptions(GetPolicyOptions.newBuilder().build())
1344             .build();
1345 
1346     Policy actualResponse = client.getIamPolicy(request);
1347     Assert.assertEquals(expectedResponse, actualResponse);
1348 
1349     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
1350     Assert.assertEquals(1, actualRequests.size());
1351     GetIamPolicyRequest actualRequest = ((GetIamPolicyRequest) actualRequests.get(0));
1352 
1353     Assert.assertEquals(request.getResource(), actualRequest.getResource());
1354     Assert.assertEquals(request.getOptions(), actualRequest.getOptions());
1355     Assert.assertTrue(
1356         channelProvider.isHeaderSent(
1357             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1358             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1359   }
1360 
1361   @Test
getIamPolicyExceptionTest()1362   public void getIamPolicyExceptionTest() throws Exception {
1363     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1364     mockIAMPolicy.addException(exception);
1365 
1366     try {
1367       GetIamPolicyRequest request =
1368           GetIamPolicyRequest.newBuilder()
1369               .setResource(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
1370               .setOptions(GetPolicyOptions.newBuilder().build())
1371               .build();
1372       client.getIamPolicy(request);
1373       Assert.fail("No exception raised");
1374     } catch (InvalidArgumentException e) {
1375       // Expected exception.
1376     }
1377   }
1378 
1379   @Test
testIamPermissionsTest()1380   public void testIamPermissionsTest() throws Exception {
1381     TestIamPermissionsResponse expectedResponse =
1382         TestIamPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build();
1383     mockIAMPolicy.addResponse(expectedResponse);
1384 
1385     TestIamPermissionsRequest request =
1386         TestIamPermissionsRequest.newBuilder()
1387             .setResource(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
1388             .addAllPermissions(new ArrayList<String>())
1389             .build();
1390 
1391     TestIamPermissionsResponse actualResponse = client.testIamPermissions(request);
1392     Assert.assertEquals(expectedResponse, actualResponse);
1393 
1394     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
1395     Assert.assertEquals(1, actualRequests.size());
1396     TestIamPermissionsRequest actualRequest = ((TestIamPermissionsRequest) actualRequests.get(0));
1397 
1398     Assert.assertEquals(request.getResource(), actualRequest.getResource());
1399     Assert.assertEquals(request.getPermissionsList(), actualRequest.getPermissionsList());
1400     Assert.assertTrue(
1401         channelProvider.isHeaderSent(
1402             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1403             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1404   }
1405 
1406   @Test
testIamPermissionsExceptionTest()1407   public void testIamPermissionsExceptionTest() throws Exception {
1408     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1409     mockIAMPolicy.addException(exception);
1410 
1411     try {
1412       TestIamPermissionsRequest request =
1413           TestIamPermissionsRequest.newBuilder()
1414               .setResource(ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]").toString())
1415               .addAllPermissions(new ArrayList<String>())
1416               .build();
1417       client.testIamPermissions(request);
1418       Assert.fail("No exception raised");
1419     } catch (InvalidArgumentException e) {
1420       // Expected exception.
1421     }
1422   }
1423 }
1424