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