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