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