• 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.dialogflow.cx.v3;
18 
19 import static com.google.cloud.dialogflow.cx.v3.TransitionRouteGroupsClient.ListLocationsPagedResponse;
20 import static com.google.cloud.dialogflow.cx.v3.TransitionRouteGroupsClient.ListTransitionRouteGroupsPagedResponse;
21 
22 import com.google.api.gax.core.NoCredentialsProvider;
23 import com.google.api.gax.httpjson.GaxHttpJsonProperties;
24 import com.google.api.gax.httpjson.testing.MockHttpService;
25 import com.google.api.gax.rpc.ApiClientHeaderProvider;
26 import com.google.api.gax.rpc.ApiException;
27 import com.google.api.gax.rpc.ApiExceptionFactory;
28 import com.google.api.gax.rpc.InvalidArgumentException;
29 import com.google.api.gax.rpc.StatusCode;
30 import com.google.api.gax.rpc.testing.FakeStatusCode;
31 import com.google.cloud.dialogflow.cx.v3.stub.HttpJsonTransitionRouteGroupsStub;
32 import com.google.cloud.location.GetLocationRequest;
33 import com.google.cloud.location.ListLocationsRequest;
34 import com.google.cloud.location.ListLocationsResponse;
35 import com.google.cloud.location.Location;
36 import com.google.common.collect.Lists;
37 import com.google.protobuf.Any;
38 import com.google.protobuf.Empty;
39 import com.google.protobuf.FieldMask;
40 import java.io.IOException;
41 import java.util.ArrayList;
42 import java.util.Arrays;
43 import java.util.HashMap;
44 import java.util.List;
45 import javax.annotation.Generated;
46 import org.junit.After;
47 import org.junit.AfterClass;
48 import org.junit.Assert;
49 import org.junit.Before;
50 import org.junit.BeforeClass;
51 import org.junit.Test;
52 
53 @Generated("by gapic-generator-java")
54 public class TransitionRouteGroupsClientHttpJsonTest {
55   private static MockHttpService mockService;
56   private static TransitionRouteGroupsClient client;
57 
58   @BeforeClass
startStaticServer()59   public static void startStaticServer() throws IOException {
60     mockService =
61         new MockHttpService(
62             HttpJsonTransitionRouteGroupsStub.getMethodDescriptors(),
63             TransitionRouteGroupsSettings.getDefaultEndpoint());
64     TransitionRouteGroupsSettings settings =
65         TransitionRouteGroupsSettings.newHttpJsonBuilder()
66             .setTransportChannelProvider(
67                 TransitionRouteGroupsSettings.defaultHttpJsonTransportProviderBuilder()
68                     .setHttpTransport(mockService)
69                     .build())
70             .setCredentialsProvider(NoCredentialsProvider.create())
71             .build();
72     client = TransitionRouteGroupsClient.create(settings);
73   }
74 
75   @AfterClass
stopServer()76   public static void stopServer() {
77     client.close();
78   }
79 
80   @Before
setUp()81   public void setUp() {}
82 
83   @After
tearDown()84   public void tearDown() throws Exception {
85     mockService.reset();
86   }
87 
88   @Test
listTransitionRouteGroupsTest()89   public void listTransitionRouteGroupsTest() throws Exception {
90     TransitionRouteGroup responsesElement = TransitionRouteGroup.newBuilder().build();
91     ListTransitionRouteGroupsResponse expectedResponse =
92         ListTransitionRouteGroupsResponse.newBuilder()
93             .setNextPageToken("")
94             .addAllTransitionRouteGroups(Arrays.asList(responsesElement))
95             .build();
96     mockService.addResponse(expectedResponse);
97 
98     FlowName parent = FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]");
99 
100     ListTransitionRouteGroupsPagedResponse pagedListResponse =
101         client.listTransitionRouteGroups(parent);
102 
103     List<TransitionRouteGroup> resources = Lists.newArrayList(pagedListResponse.iterateAll());
104 
105     Assert.assertEquals(1, resources.size());
106     Assert.assertEquals(expectedResponse.getTransitionRouteGroupsList().get(0), resources.get(0));
107 
108     List<String> actualRequests = mockService.getRequestPaths();
109     Assert.assertEquals(1, actualRequests.size());
110 
111     String apiClientHeaderKey =
112         mockService
113             .getRequestHeaders()
114             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
115             .iterator()
116             .next();
117     Assert.assertTrue(
118         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
119             .matcher(apiClientHeaderKey)
120             .matches());
121   }
122 
123   @Test
listTransitionRouteGroupsExceptionTest()124   public void listTransitionRouteGroupsExceptionTest() throws Exception {
125     ApiException exception =
126         ApiExceptionFactory.createException(
127             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
128     mockService.addException(exception);
129 
130     try {
131       FlowName parent = FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]");
132       client.listTransitionRouteGroups(parent);
133       Assert.fail("No exception raised");
134     } catch (InvalidArgumentException e) {
135       // Expected exception.
136     }
137   }
138 
139   @Test
listTransitionRouteGroupsTest2()140   public void listTransitionRouteGroupsTest2() throws Exception {
141     TransitionRouteGroup responsesElement = TransitionRouteGroup.newBuilder().build();
142     ListTransitionRouteGroupsResponse expectedResponse =
143         ListTransitionRouteGroupsResponse.newBuilder()
144             .setNextPageToken("")
145             .addAllTransitionRouteGroups(Arrays.asList(responsesElement))
146             .build();
147     mockService.addResponse(expectedResponse);
148 
149     String parent =
150         "projects/project-7760/locations/location-7760/agents/agent-7760/flows/flow-7760";
151 
152     ListTransitionRouteGroupsPagedResponse pagedListResponse =
153         client.listTransitionRouteGroups(parent);
154 
155     List<TransitionRouteGroup> resources = Lists.newArrayList(pagedListResponse.iterateAll());
156 
157     Assert.assertEquals(1, resources.size());
158     Assert.assertEquals(expectedResponse.getTransitionRouteGroupsList().get(0), resources.get(0));
159 
160     List<String> actualRequests = mockService.getRequestPaths();
161     Assert.assertEquals(1, actualRequests.size());
162 
163     String apiClientHeaderKey =
164         mockService
165             .getRequestHeaders()
166             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
167             .iterator()
168             .next();
169     Assert.assertTrue(
170         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
171             .matcher(apiClientHeaderKey)
172             .matches());
173   }
174 
175   @Test
listTransitionRouteGroupsExceptionTest2()176   public void listTransitionRouteGroupsExceptionTest2() throws Exception {
177     ApiException exception =
178         ApiExceptionFactory.createException(
179             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
180     mockService.addException(exception);
181 
182     try {
183       String parent =
184           "projects/project-7760/locations/location-7760/agents/agent-7760/flows/flow-7760";
185       client.listTransitionRouteGroups(parent);
186       Assert.fail("No exception raised");
187     } catch (InvalidArgumentException e) {
188       // Expected exception.
189     }
190   }
191 
192   @Test
getTransitionRouteGroupTest()193   public void getTransitionRouteGroupTest() throws Exception {
194     TransitionRouteGroup expectedResponse =
195         TransitionRouteGroup.newBuilder()
196             .setName(
197                 TransitionRouteGroupName.of(
198                         "[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[TRANSITION_ROUTE_GROUP]")
199                     .toString())
200             .setDisplayName("displayName1714148973")
201             .addAllTransitionRoutes(new ArrayList<TransitionRoute>())
202             .build();
203     mockService.addResponse(expectedResponse);
204 
205     TransitionRouteGroupName name =
206         TransitionRouteGroupName.of(
207             "[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[TRANSITION_ROUTE_GROUP]");
208 
209     TransitionRouteGroup actualResponse = client.getTransitionRouteGroup(name);
210     Assert.assertEquals(expectedResponse, actualResponse);
211 
212     List<String> actualRequests = mockService.getRequestPaths();
213     Assert.assertEquals(1, actualRequests.size());
214 
215     String apiClientHeaderKey =
216         mockService
217             .getRequestHeaders()
218             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
219             .iterator()
220             .next();
221     Assert.assertTrue(
222         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
223             .matcher(apiClientHeaderKey)
224             .matches());
225   }
226 
227   @Test
getTransitionRouteGroupExceptionTest()228   public void getTransitionRouteGroupExceptionTest() throws Exception {
229     ApiException exception =
230         ApiExceptionFactory.createException(
231             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
232     mockService.addException(exception);
233 
234     try {
235       TransitionRouteGroupName name =
236           TransitionRouteGroupName.of(
237               "[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[TRANSITION_ROUTE_GROUP]");
238       client.getTransitionRouteGroup(name);
239       Assert.fail("No exception raised");
240     } catch (InvalidArgumentException e) {
241       // Expected exception.
242     }
243   }
244 
245   @Test
getTransitionRouteGroupTest2()246   public void getTransitionRouteGroupTest2() throws Exception {
247     TransitionRouteGroup expectedResponse =
248         TransitionRouteGroup.newBuilder()
249             .setName(
250                 TransitionRouteGroupName.of(
251                         "[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[TRANSITION_ROUTE_GROUP]")
252                     .toString())
253             .setDisplayName("displayName1714148973")
254             .addAllTransitionRoutes(new ArrayList<TransitionRoute>())
255             .build();
256     mockService.addResponse(expectedResponse);
257 
258     String name =
259         "projects/project-8637/locations/location-8637/agents/agent-8637/flows/flow-8637/transitionRouteGroups/transitionRouteGroup-8637";
260 
261     TransitionRouteGroup actualResponse = client.getTransitionRouteGroup(name);
262     Assert.assertEquals(expectedResponse, actualResponse);
263 
264     List<String> actualRequests = mockService.getRequestPaths();
265     Assert.assertEquals(1, actualRequests.size());
266 
267     String apiClientHeaderKey =
268         mockService
269             .getRequestHeaders()
270             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
271             .iterator()
272             .next();
273     Assert.assertTrue(
274         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
275             .matcher(apiClientHeaderKey)
276             .matches());
277   }
278 
279   @Test
getTransitionRouteGroupExceptionTest2()280   public void getTransitionRouteGroupExceptionTest2() throws Exception {
281     ApiException exception =
282         ApiExceptionFactory.createException(
283             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
284     mockService.addException(exception);
285 
286     try {
287       String name =
288           "projects/project-8637/locations/location-8637/agents/agent-8637/flows/flow-8637/transitionRouteGroups/transitionRouteGroup-8637";
289       client.getTransitionRouteGroup(name);
290       Assert.fail("No exception raised");
291     } catch (InvalidArgumentException e) {
292       // Expected exception.
293     }
294   }
295 
296   @Test
createTransitionRouteGroupTest()297   public void createTransitionRouteGroupTest() throws Exception {
298     TransitionRouteGroup expectedResponse =
299         TransitionRouteGroup.newBuilder()
300             .setName(
301                 TransitionRouteGroupName.of(
302                         "[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[TRANSITION_ROUTE_GROUP]")
303                     .toString())
304             .setDisplayName("displayName1714148973")
305             .addAllTransitionRoutes(new ArrayList<TransitionRoute>())
306             .build();
307     mockService.addResponse(expectedResponse);
308 
309     FlowName parent = FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]");
310     TransitionRouteGroup transitionRouteGroup = TransitionRouteGroup.newBuilder().build();
311 
312     TransitionRouteGroup actualResponse =
313         client.createTransitionRouteGroup(parent, transitionRouteGroup);
314     Assert.assertEquals(expectedResponse, actualResponse);
315 
316     List<String> actualRequests = mockService.getRequestPaths();
317     Assert.assertEquals(1, actualRequests.size());
318 
319     String apiClientHeaderKey =
320         mockService
321             .getRequestHeaders()
322             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
323             .iterator()
324             .next();
325     Assert.assertTrue(
326         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
327             .matcher(apiClientHeaderKey)
328             .matches());
329   }
330 
331   @Test
createTransitionRouteGroupExceptionTest()332   public void createTransitionRouteGroupExceptionTest() throws Exception {
333     ApiException exception =
334         ApiExceptionFactory.createException(
335             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
336     mockService.addException(exception);
337 
338     try {
339       FlowName parent = FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]");
340       TransitionRouteGroup transitionRouteGroup = TransitionRouteGroup.newBuilder().build();
341       client.createTransitionRouteGroup(parent, transitionRouteGroup);
342       Assert.fail("No exception raised");
343     } catch (InvalidArgumentException e) {
344       // Expected exception.
345     }
346   }
347 
348   @Test
createTransitionRouteGroupTest2()349   public void createTransitionRouteGroupTest2() throws Exception {
350     TransitionRouteGroup expectedResponse =
351         TransitionRouteGroup.newBuilder()
352             .setName(
353                 TransitionRouteGroupName.of(
354                         "[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[TRANSITION_ROUTE_GROUP]")
355                     .toString())
356             .setDisplayName("displayName1714148973")
357             .addAllTransitionRoutes(new ArrayList<TransitionRoute>())
358             .build();
359     mockService.addResponse(expectedResponse);
360 
361     String parent =
362         "projects/project-7760/locations/location-7760/agents/agent-7760/flows/flow-7760";
363     TransitionRouteGroup transitionRouteGroup = TransitionRouteGroup.newBuilder().build();
364 
365     TransitionRouteGroup actualResponse =
366         client.createTransitionRouteGroup(parent, transitionRouteGroup);
367     Assert.assertEquals(expectedResponse, actualResponse);
368 
369     List<String> actualRequests = mockService.getRequestPaths();
370     Assert.assertEquals(1, actualRequests.size());
371 
372     String apiClientHeaderKey =
373         mockService
374             .getRequestHeaders()
375             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
376             .iterator()
377             .next();
378     Assert.assertTrue(
379         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
380             .matcher(apiClientHeaderKey)
381             .matches());
382   }
383 
384   @Test
createTransitionRouteGroupExceptionTest2()385   public void createTransitionRouteGroupExceptionTest2() throws Exception {
386     ApiException exception =
387         ApiExceptionFactory.createException(
388             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
389     mockService.addException(exception);
390 
391     try {
392       String parent =
393           "projects/project-7760/locations/location-7760/agents/agent-7760/flows/flow-7760";
394       TransitionRouteGroup transitionRouteGroup = TransitionRouteGroup.newBuilder().build();
395       client.createTransitionRouteGroup(parent, transitionRouteGroup);
396       Assert.fail("No exception raised");
397     } catch (InvalidArgumentException e) {
398       // Expected exception.
399     }
400   }
401 
402   @Test
updateTransitionRouteGroupTest()403   public void updateTransitionRouteGroupTest() throws Exception {
404     TransitionRouteGroup expectedResponse =
405         TransitionRouteGroup.newBuilder()
406             .setName(
407                 TransitionRouteGroupName.of(
408                         "[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[TRANSITION_ROUTE_GROUP]")
409                     .toString())
410             .setDisplayName("displayName1714148973")
411             .addAllTransitionRoutes(new ArrayList<TransitionRoute>())
412             .build();
413     mockService.addResponse(expectedResponse);
414 
415     TransitionRouteGroup transitionRouteGroup =
416         TransitionRouteGroup.newBuilder()
417             .setName(
418                 TransitionRouteGroupName.of(
419                         "[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[TRANSITION_ROUTE_GROUP]")
420                     .toString())
421             .setDisplayName("displayName1714148973")
422             .addAllTransitionRoutes(new ArrayList<TransitionRoute>())
423             .build();
424     FieldMask updateMask = FieldMask.newBuilder().build();
425 
426     TransitionRouteGroup actualResponse =
427         client.updateTransitionRouteGroup(transitionRouteGroup, updateMask);
428     Assert.assertEquals(expectedResponse, actualResponse);
429 
430     List<String> actualRequests = mockService.getRequestPaths();
431     Assert.assertEquals(1, actualRequests.size());
432 
433     String apiClientHeaderKey =
434         mockService
435             .getRequestHeaders()
436             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
437             .iterator()
438             .next();
439     Assert.assertTrue(
440         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
441             .matcher(apiClientHeaderKey)
442             .matches());
443   }
444 
445   @Test
updateTransitionRouteGroupExceptionTest()446   public void updateTransitionRouteGroupExceptionTest() throws Exception {
447     ApiException exception =
448         ApiExceptionFactory.createException(
449             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
450     mockService.addException(exception);
451 
452     try {
453       TransitionRouteGroup transitionRouteGroup =
454           TransitionRouteGroup.newBuilder()
455               .setName(
456                   TransitionRouteGroupName.of(
457                           "[PROJECT]",
458                           "[LOCATION]",
459                           "[AGENT]",
460                           "[FLOW]",
461                           "[TRANSITION_ROUTE_GROUP]")
462                       .toString())
463               .setDisplayName("displayName1714148973")
464               .addAllTransitionRoutes(new ArrayList<TransitionRoute>())
465               .build();
466       FieldMask updateMask = FieldMask.newBuilder().build();
467       client.updateTransitionRouteGroup(transitionRouteGroup, updateMask);
468       Assert.fail("No exception raised");
469     } catch (InvalidArgumentException e) {
470       // Expected exception.
471     }
472   }
473 
474   @Test
deleteTransitionRouteGroupTest()475   public void deleteTransitionRouteGroupTest() throws Exception {
476     Empty expectedResponse = Empty.newBuilder().build();
477     mockService.addResponse(expectedResponse);
478 
479     TransitionRouteGroupName name =
480         TransitionRouteGroupName.of(
481             "[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[TRANSITION_ROUTE_GROUP]");
482 
483     client.deleteTransitionRouteGroup(name);
484 
485     List<String> actualRequests = mockService.getRequestPaths();
486     Assert.assertEquals(1, actualRequests.size());
487 
488     String apiClientHeaderKey =
489         mockService
490             .getRequestHeaders()
491             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
492             .iterator()
493             .next();
494     Assert.assertTrue(
495         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
496             .matcher(apiClientHeaderKey)
497             .matches());
498   }
499 
500   @Test
deleteTransitionRouteGroupExceptionTest()501   public void deleteTransitionRouteGroupExceptionTest() throws Exception {
502     ApiException exception =
503         ApiExceptionFactory.createException(
504             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
505     mockService.addException(exception);
506 
507     try {
508       TransitionRouteGroupName name =
509           TransitionRouteGroupName.of(
510               "[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]", "[TRANSITION_ROUTE_GROUP]");
511       client.deleteTransitionRouteGroup(name);
512       Assert.fail("No exception raised");
513     } catch (InvalidArgumentException e) {
514       // Expected exception.
515     }
516   }
517 
518   @Test
deleteTransitionRouteGroupTest2()519   public void deleteTransitionRouteGroupTest2() throws Exception {
520     Empty expectedResponse = Empty.newBuilder().build();
521     mockService.addResponse(expectedResponse);
522 
523     String name =
524         "projects/project-8637/locations/location-8637/agents/agent-8637/flows/flow-8637/transitionRouteGroups/transitionRouteGroup-8637";
525 
526     client.deleteTransitionRouteGroup(name);
527 
528     List<String> actualRequests = mockService.getRequestPaths();
529     Assert.assertEquals(1, actualRequests.size());
530 
531     String apiClientHeaderKey =
532         mockService
533             .getRequestHeaders()
534             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
535             .iterator()
536             .next();
537     Assert.assertTrue(
538         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
539             .matcher(apiClientHeaderKey)
540             .matches());
541   }
542 
543   @Test
deleteTransitionRouteGroupExceptionTest2()544   public void deleteTransitionRouteGroupExceptionTest2() throws Exception {
545     ApiException exception =
546         ApiExceptionFactory.createException(
547             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
548     mockService.addException(exception);
549 
550     try {
551       String name =
552           "projects/project-8637/locations/location-8637/agents/agent-8637/flows/flow-8637/transitionRouteGroups/transitionRouteGroup-8637";
553       client.deleteTransitionRouteGroup(name);
554       Assert.fail("No exception raised");
555     } catch (InvalidArgumentException e) {
556       // Expected exception.
557     }
558   }
559 
560   @Test
listLocationsTest()561   public void listLocationsTest() throws Exception {
562     Location responsesElement = Location.newBuilder().build();
563     ListLocationsResponse expectedResponse =
564         ListLocationsResponse.newBuilder()
565             .setNextPageToken("")
566             .addAllLocations(Arrays.asList(responsesElement))
567             .build();
568     mockService.addResponse(expectedResponse);
569 
570     ListLocationsRequest request =
571         ListLocationsRequest.newBuilder()
572             .setName("projects/project-3664")
573             .setFilter("filter-1274492040")
574             .setPageSize(883849137)
575             .setPageToken("pageToken873572522")
576             .build();
577 
578     ListLocationsPagedResponse pagedListResponse = client.listLocations(request);
579 
580     List<Location> resources = Lists.newArrayList(pagedListResponse.iterateAll());
581 
582     Assert.assertEquals(1, resources.size());
583     Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0));
584 
585     List<String> actualRequests = mockService.getRequestPaths();
586     Assert.assertEquals(1, actualRequests.size());
587 
588     String apiClientHeaderKey =
589         mockService
590             .getRequestHeaders()
591             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
592             .iterator()
593             .next();
594     Assert.assertTrue(
595         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
596             .matcher(apiClientHeaderKey)
597             .matches());
598   }
599 
600   @Test
listLocationsExceptionTest()601   public void listLocationsExceptionTest() throws Exception {
602     ApiException exception =
603         ApiExceptionFactory.createException(
604             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
605     mockService.addException(exception);
606 
607     try {
608       ListLocationsRequest request =
609           ListLocationsRequest.newBuilder()
610               .setName("projects/project-3664")
611               .setFilter("filter-1274492040")
612               .setPageSize(883849137)
613               .setPageToken("pageToken873572522")
614               .build();
615       client.listLocations(request);
616       Assert.fail("No exception raised");
617     } catch (InvalidArgumentException e) {
618       // Expected exception.
619     }
620   }
621 
622   @Test
getLocationTest()623   public void getLocationTest() throws Exception {
624     Location expectedResponse =
625         Location.newBuilder()
626             .setName("name3373707")
627             .setLocationId("locationId1541836720")
628             .setDisplayName("displayName1714148973")
629             .putAllLabels(new HashMap<String, String>())
630             .setMetadata(Any.newBuilder().build())
631             .build();
632     mockService.addResponse(expectedResponse);
633 
634     GetLocationRequest request =
635         GetLocationRequest.newBuilder()
636             .setName("projects/project-9062/locations/location-9062")
637             .build();
638 
639     Location actualResponse = client.getLocation(request);
640     Assert.assertEquals(expectedResponse, actualResponse);
641 
642     List<String> actualRequests = mockService.getRequestPaths();
643     Assert.assertEquals(1, actualRequests.size());
644 
645     String apiClientHeaderKey =
646         mockService
647             .getRequestHeaders()
648             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
649             .iterator()
650             .next();
651     Assert.assertTrue(
652         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
653             .matcher(apiClientHeaderKey)
654             .matches());
655   }
656 
657   @Test
getLocationExceptionTest()658   public void getLocationExceptionTest() throws Exception {
659     ApiException exception =
660         ApiExceptionFactory.createException(
661             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
662     mockService.addException(exception);
663 
664     try {
665       GetLocationRequest request =
666           GetLocationRequest.newBuilder()
667               .setName("projects/project-9062/locations/location-9062")
668               .build();
669       client.getLocation(request);
670       Assert.fail("No exception raised");
671     } catch (InvalidArgumentException e) {
672       // Expected exception.
673     }
674   }
675 }
676