• 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.ConversationsClient.ListConversationsPagedResponse;
20 import static com.google.cloud.dialogflow.v2.ConversationsClient.ListLocationsPagedResponse;
21 import static com.google.cloud.dialogflow.v2.ConversationsClient.ListMessagesPagedResponse;
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.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.protobuf.AbstractMessage;
36 import com.google.protobuf.Any;
37 import com.google.protobuf.Timestamp;
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 ConversationsClientTest {
54   private static MockConversations mockConversations;
55   private static MockLocations mockLocations;
56   private static MockServiceHelper mockServiceHelper;
57   private LocalChannelProvider channelProvider;
58   private ConversationsClient client;
59 
60   @BeforeClass
startStaticServer()61   public static void startStaticServer() {
62     mockConversations = new MockConversations();
63     mockLocations = new MockLocations();
64     mockServiceHelper =
65         new MockServiceHelper(
66             UUID.randomUUID().toString(),
67             Arrays.<MockGrpcService>asList(mockConversations, 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     ConversationsSettings settings =
81         ConversationsSettings.newBuilder()
82             .setTransportChannelProvider(channelProvider)
83             .setCredentialsProvider(NoCredentialsProvider.create())
84             .build();
85     client = ConversationsClient.create(settings);
86   }
87 
88   @After
tearDown()89   public void tearDown() throws Exception {
90     client.close();
91   }
92 
93   @Test
createConversationTest()94   public void createConversationTest() throws Exception {
95     Conversation expectedResponse =
96         Conversation.newBuilder()
97             .setName(
98                 ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]")
99                     .toString())
100             .setConversationProfile(
101                 ConversationProfileName.ofProjectConversationProfileName(
102                         "[PROJECT]", "[CONVERSATION_PROFILE]")
103                     .toString())
104             .setPhoneNumber(ConversationPhoneNumber.newBuilder().build())
105             .setStartTime(Timestamp.newBuilder().build())
106             .setEndTime(Timestamp.newBuilder().build())
107             .build();
108     mockConversations.addResponse(expectedResponse);
109 
110     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
111     Conversation conversation = Conversation.newBuilder().build();
112 
113     Conversation actualResponse = client.createConversation(parent, conversation);
114     Assert.assertEquals(expectedResponse, actualResponse);
115 
116     List<AbstractMessage> actualRequests = mockConversations.getRequests();
117     Assert.assertEquals(1, actualRequests.size());
118     CreateConversationRequest actualRequest = ((CreateConversationRequest) actualRequests.get(0));
119 
120     Assert.assertEquals(parent.toString(), actualRequest.getParent());
121     Assert.assertEquals(conversation, actualRequest.getConversation());
122     Assert.assertTrue(
123         channelProvider.isHeaderSent(
124             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
125             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
126   }
127 
128   @Test
createConversationExceptionTest()129   public void createConversationExceptionTest() throws Exception {
130     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
131     mockConversations.addException(exception);
132 
133     try {
134       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
135       Conversation conversation = Conversation.newBuilder().build();
136       client.createConversation(parent, conversation);
137       Assert.fail("No exception raised");
138     } catch (InvalidArgumentException e) {
139       // Expected exception.
140     }
141   }
142 
143   @Test
createConversationTest2()144   public void createConversationTest2() throws Exception {
145     Conversation expectedResponse =
146         Conversation.newBuilder()
147             .setName(
148                 ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]")
149                     .toString())
150             .setConversationProfile(
151                 ConversationProfileName.ofProjectConversationProfileName(
152                         "[PROJECT]", "[CONVERSATION_PROFILE]")
153                     .toString())
154             .setPhoneNumber(ConversationPhoneNumber.newBuilder().build())
155             .setStartTime(Timestamp.newBuilder().build())
156             .setEndTime(Timestamp.newBuilder().build())
157             .build();
158     mockConversations.addResponse(expectedResponse);
159 
160     ProjectName parent = ProjectName.of("[PROJECT]");
161     Conversation conversation = Conversation.newBuilder().build();
162 
163     Conversation actualResponse = client.createConversation(parent, conversation);
164     Assert.assertEquals(expectedResponse, actualResponse);
165 
166     List<AbstractMessage> actualRequests = mockConversations.getRequests();
167     Assert.assertEquals(1, actualRequests.size());
168     CreateConversationRequest actualRequest = ((CreateConversationRequest) actualRequests.get(0));
169 
170     Assert.assertEquals(parent.toString(), actualRequest.getParent());
171     Assert.assertEquals(conversation, actualRequest.getConversation());
172     Assert.assertTrue(
173         channelProvider.isHeaderSent(
174             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
175             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
176   }
177 
178   @Test
createConversationExceptionTest2()179   public void createConversationExceptionTest2() throws Exception {
180     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
181     mockConversations.addException(exception);
182 
183     try {
184       ProjectName parent = ProjectName.of("[PROJECT]");
185       Conversation conversation = Conversation.newBuilder().build();
186       client.createConversation(parent, conversation);
187       Assert.fail("No exception raised");
188     } catch (InvalidArgumentException e) {
189       // Expected exception.
190     }
191   }
192 
193   @Test
createConversationTest3()194   public void createConversationTest3() throws Exception {
195     Conversation expectedResponse =
196         Conversation.newBuilder()
197             .setName(
198                 ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]")
199                     .toString())
200             .setConversationProfile(
201                 ConversationProfileName.ofProjectConversationProfileName(
202                         "[PROJECT]", "[CONVERSATION_PROFILE]")
203                     .toString())
204             .setPhoneNumber(ConversationPhoneNumber.newBuilder().build())
205             .setStartTime(Timestamp.newBuilder().build())
206             .setEndTime(Timestamp.newBuilder().build())
207             .build();
208     mockConversations.addResponse(expectedResponse);
209 
210     String parent = "parent-995424086";
211     Conversation conversation = Conversation.newBuilder().build();
212 
213     Conversation actualResponse = client.createConversation(parent, conversation);
214     Assert.assertEquals(expectedResponse, actualResponse);
215 
216     List<AbstractMessage> actualRequests = mockConversations.getRequests();
217     Assert.assertEquals(1, actualRequests.size());
218     CreateConversationRequest actualRequest = ((CreateConversationRequest) actualRequests.get(0));
219 
220     Assert.assertEquals(parent, actualRequest.getParent());
221     Assert.assertEquals(conversation, actualRequest.getConversation());
222     Assert.assertTrue(
223         channelProvider.isHeaderSent(
224             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
225             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
226   }
227 
228   @Test
createConversationExceptionTest3()229   public void createConversationExceptionTest3() throws Exception {
230     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
231     mockConversations.addException(exception);
232 
233     try {
234       String parent = "parent-995424086";
235       Conversation conversation = Conversation.newBuilder().build();
236       client.createConversation(parent, conversation);
237       Assert.fail("No exception raised");
238     } catch (InvalidArgumentException e) {
239       // Expected exception.
240     }
241   }
242 
243   @Test
listConversationsTest()244   public void listConversationsTest() throws Exception {
245     Conversation responsesElement = Conversation.newBuilder().build();
246     ListConversationsResponse expectedResponse =
247         ListConversationsResponse.newBuilder()
248             .setNextPageToken("")
249             .addAllConversations(Arrays.asList(responsesElement))
250             .build();
251     mockConversations.addResponse(expectedResponse);
252 
253     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
254 
255     ListConversationsPagedResponse pagedListResponse = client.listConversations(parent);
256 
257     List<Conversation> resources = Lists.newArrayList(pagedListResponse.iterateAll());
258 
259     Assert.assertEquals(1, resources.size());
260     Assert.assertEquals(expectedResponse.getConversationsList().get(0), resources.get(0));
261 
262     List<AbstractMessage> actualRequests = mockConversations.getRequests();
263     Assert.assertEquals(1, actualRequests.size());
264     ListConversationsRequest actualRequest = ((ListConversationsRequest) actualRequests.get(0));
265 
266     Assert.assertEquals(parent.toString(), actualRequest.getParent());
267     Assert.assertTrue(
268         channelProvider.isHeaderSent(
269             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
270             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
271   }
272 
273   @Test
listConversationsExceptionTest()274   public void listConversationsExceptionTest() throws Exception {
275     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
276     mockConversations.addException(exception);
277 
278     try {
279       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
280       client.listConversations(parent);
281       Assert.fail("No exception raised");
282     } catch (InvalidArgumentException e) {
283       // Expected exception.
284     }
285   }
286 
287   @Test
listConversationsTest2()288   public void listConversationsTest2() throws Exception {
289     Conversation responsesElement = Conversation.newBuilder().build();
290     ListConversationsResponse expectedResponse =
291         ListConversationsResponse.newBuilder()
292             .setNextPageToken("")
293             .addAllConversations(Arrays.asList(responsesElement))
294             .build();
295     mockConversations.addResponse(expectedResponse);
296 
297     ProjectName parent = ProjectName.of("[PROJECT]");
298 
299     ListConversationsPagedResponse pagedListResponse = client.listConversations(parent);
300 
301     List<Conversation> resources = Lists.newArrayList(pagedListResponse.iterateAll());
302 
303     Assert.assertEquals(1, resources.size());
304     Assert.assertEquals(expectedResponse.getConversationsList().get(0), resources.get(0));
305 
306     List<AbstractMessage> actualRequests = mockConversations.getRequests();
307     Assert.assertEquals(1, actualRequests.size());
308     ListConversationsRequest actualRequest = ((ListConversationsRequest) actualRequests.get(0));
309 
310     Assert.assertEquals(parent.toString(), actualRequest.getParent());
311     Assert.assertTrue(
312         channelProvider.isHeaderSent(
313             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
314             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
315   }
316 
317   @Test
listConversationsExceptionTest2()318   public void listConversationsExceptionTest2() throws Exception {
319     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
320     mockConversations.addException(exception);
321 
322     try {
323       ProjectName parent = ProjectName.of("[PROJECT]");
324       client.listConversations(parent);
325       Assert.fail("No exception raised");
326     } catch (InvalidArgumentException e) {
327       // Expected exception.
328     }
329   }
330 
331   @Test
listConversationsTest3()332   public void listConversationsTest3() throws Exception {
333     Conversation responsesElement = Conversation.newBuilder().build();
334     ListConversationsResponse expectedResponse =
335         ListConversationsResponse.newBuilder()
336             .setNextPageToken("")
337             .addAllConversations(Arrays.asList(responsesElement))
338             .build();
339     mockConversations.addResponse(expectedResponse);
340 
341     String parent = "parent-995424086";
342 
343     ListConversationsPagedResponse pagedListResponse = client.listConversations(parent);
344 
345     List<Conversation> resources = Lists.newArrayList(pagedListResponse.iterateAll());
346 
347     Assert.assertEquals(1, resources.size());
348     Assert.assertEquals(expectedResponse.getConversationsList().get(0), resources.get(0));
349 
350     List<AbstractMessage> actualRequests = mockConversations.getRequests();
351     Assert.assertEquals(1, actualRequests.size());
352     ListConversationsRequest actualRequest = ((ListConversationsRequest) actualRequests.get(0));
353 
354     Assert.assertEquals(parent, actualRequest.getParent());
355     Assert.assertTrue(
356         channelProvider.isHeaderSent(
357             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
358             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
359   }
360 
361   @Test
listConversationsExceptionTest3()362   public void listConversationsExceptionTest3() throws Exception {
363     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
364     mockConversations.addException(exception);
365 
366     try {
367       String parent = "parent-995424086";
368       client.listConversations(parent);
369       Assert.fail("No exception raised");
370     } catch (InvalidArgumentException e) {
371       // Expected exception.
372     }
373   }
374 
375   @Test
getConversationTest()376   public void getConversationTest() throws Exception {
377     Conversation expectedResponse =
378         Conversation.newBuilder()
379             .setName(
380                 ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]")
381                     .toString())
382             .setConversationProfile(
383                 ConversationProfileName.ofProjectConversationProfileName(
384                         "[PROJECT]", "[CONVERSATION_PROFILE]")
385                     .toString())
386             .setPhoneNumber(ConversationPhoneNumber.newBuilder().build())
387             .setStartTime(Timestamp.newBuilder().build())
388             .setEndTime(Timestamp.newBuilder().build())
389             .build();
390     mockConversations.addResponse(expectedResponse);
391 
392     ConversationName name =
393         ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]");
394 
395     Conversation actualResponse = client.getConversation(name);
396     Assert.assertEquals(expectedResponse, actualResponse);
397 
398     List<AbstractMessage> actualRequests = mockConversations.getRequests();
399     Assert.assertEquals(1, actualRequests.size());
400     GetConversationRequest actualRequest = ((GetConversationRequest) actualRequests.get(0));
401 
402     Assert.assertEquals(name.toString(), actualRequest.getName());
403     Assert.assertTrue(
404         channelProvider.isHeaderSent(
405             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
406             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
407   }
408 
409   @Test
getConversationExceptionTest()410   public void getConversationExceptionTest() throws Exception {
411     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
412     mockConversations.addException(exception);
413 
414     try {
415       ConversationName name =
416           ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]");
417       client.getConversation(name);
418       Assert.fail("No exception raised");
419     } catch (InvalidArgumentException e) {
420       // Expected exception.
421     }
422   }
423 
424   @Test
getConversationTest2()425   public void getConversationTest2() throws Exception {
426     Conversation expectedResponse =
427         Conversation.newBuilder()
428             .setName(
429                 ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]")
430                     .toString())
431             .setConversationProfile(
432                 ConversationProfileName.ofProjectConversationProfileName(
433                         "[PROJECT]", "[CONVERSATION_PROFILE]")
434                     .toString())
435             .setPhoneNumber(ConversationPhoneNumber.newBuilder().build())
436             .setStartTime(Timestamp.newBuilder().build())
437             .setEndTime(Timestamp.newBuilder().build())
438             .build();
439     mockConversations.addResponse(expectedResponse);
440 
441     String name = "name3373707";
442 
443     Conversation actualResponse = client.getConversation(name);
444     Assert.assertEquals(expectedResponse, actualResponse);
445 
446     List<AbstractMessage> actualRequests = mockConversations.getRequests();
447     Assert.assertEquals(1, actualRequests.size());
448     GetConversationRequest actualRequest = ((GetConversationRequest) actualRequests.get(0));
449 
450     Assert.assertEquals(name, actualRequest.getName());
451     Assert.assertTrue(
452         channelProvider.isHeaderSent(
453             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
454             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
455   }
456 
457   @Test
getConversationExceptionTest2()458   public void getConversationExceptionTest2() throws Exception {
459     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
460     mockConversations.addException(exception);
461 
462     try {
463       String name = "name3373707";
464       client.getConversation(name);
465       Assert.fail("No exception raised");
466     } catch (InvalidArgumentException e) {
467       // Expected exception.
468     }
469   }
470 
471   @Test
completeConversationTest()472   public void completeConversationTest() throws Exception {
473     Conversation expectedResponse =
474         Conversation.newBuilder()
475             .setName(
476                 ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]")
477                     .toString())
478             .setConversationProfile(
479                 ConversationProfileName.ofProjectConversationProfileName(
480                         "[PROJECT]", "[CONVERSATION_PROFILE]")
481                     .toString())
482             .setPhoneNumber(ConversationPhoneNumber.newBuilder().build())
483             .setStartTime(Timestamp.newBuilder().build())
484             .setEndTime(Timestamp.newBuilder().build())
485             .build();
486     mockConversations.addResponse(expectedResponse);
487 
488     ConversationName name =
489         ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]");
490 
491     Conversation actualResponse = client.completeConversation(name);
492     Assert.assertEquals(expectedResponse, actualResponse);
493 
494     List<AbstractMessage> actualRequests = mockConversations.getRequests();
495     Assert.assertEquals(1, actualRequests.size());
496     CompleteConversationRequest actualRequest =
497         ((CompleteConversationRequest) actualRequests.get(0));
498 
499     Assert.assertEquals(name.toString(), actualRequest.getName());
500     Assert.assertTrue(
501         channelProvider.isHeaderSent(
502             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
503             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
504   }
505 
506   @Test
completeConversationExceptionTest()507   public void completeConversationExceptionTest() throws Exception {
508     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
509     mockConversations.addException(exception);
510 
511     try {
512       ConversationName name =
513           ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]");
514       client.completeConversation(name);
515       Assert.fail("No exception raised");
516     } catch (InvalidArgumentException e) {
517       // Expected exception.
518     }
519   }
520 
521   @Test
completeConversationTest2()522   public void completeConversationTest2() throws Exception {
523     Conversation expectedResponse =
524         Conversation.newBuilder()
525             .setName(
526                 ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]")
527                     .toString())
528             .setConversationProfile(
529                 ConversationProfileName.ofProjectConversationProfileName(
530                         "[PROJECT]", "[CONVERSATION_PROFILE]")
531                     .toString())
532             .setPhoneNumber(ConversationPhoneNumber.newBuilder().build())
533             .setStartTime(Timestamp.newBuilder().build())
534             .setEndTime(Timestamp.newBuilder().build())
535             .build();
536     mockConversations.addResponse(expectedResponse);
537 
538     String name = "name3373707";
539 
540     Conversation actualResponse = client.completeConversation(name);
541     Assert.assertEquals(expectedResponse, actualResponse);
542 
543     List<AbstractMessage> actualRequests = mockConversations.getRequests();
544     Assert.assertEquals(1, actualRequests.size());
545     CompleteConversationRequest actualRequest =
546         ((CompleteConversationRequest) actualRequests.get(0));
547 
548     Assert.assertEquals(name, actualRequest.getName());
549     Assert.assertTrue(
550         channelProvider.isHeaderSent(
551             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
552             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
553   }
554 
555   @Test
completeConversationExceptionTest2()556   public void completeConversationExceptionTest2() throws Exception {
557     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
558     mockConversations.addException(exception);
559 
560     try {
561       String name = "name3373707";
562       client.completeConversation(name);
563       Assert.fail("No exception raised");
564     } catch (InvalidArgumentException e) {
565       // Expected exception.
566     }
567   }
568 
569   @Test
listMessagesTest()570   public void listMessagesTest() throws Exception {
571     Message responsesElement = Message.newBuilder().build();
572     ListMessagesResponse expectedResponse =
573         ListMessagesResponse.newBuilder()
574             .setNextPageToken("")
575             .addAllMessages(Arrays.asList(responsesElement))
576             .build();
577     mockConversations.addResponse(expectedResponse);
578 
579     ConversationName parent =
580         ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]");
581 
582     ListMessagesPagedResponse pagedListResponse = client.listMessages(parent);
583 
584     List<Message> resources = Lists.newArrayList(pagedListResponse.iterateAll());
585 
586     Assert.assertEquals(1, resources.size());
587     Assert.assertEquals(expectedResponse.getMessagesList().get(0), resources.get(0));
588 
589     List<AbstractMessage> actualRequests = mockConversations.getRequests();
590     Assert.assertEquals(1, actualRequests.size());
591     ListMessagesRequest actualRequest = ((ListMessagesRequest) actualRequests.get(0));
592 
593     Assert.assertEquals(parent.toString(), actualRequest.getParent());
594     Assert.assertTrue(
595         channelProvider.isHeaderSent(
596             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
597             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
598   }
599 
600   @Test
listMessagesExceptionTest()601   public void listMessagesExceptionTest() throws Exception {
602     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
603     mockConversations.addException(exception);
604 
605     try {
606       ConversationName parent =
607           ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]");
608       client.listMessages(parent);
609       Assert.fail("No exception raised");
610     } catch (InvalidArgumentException e) {
611       // Expected exception.
612     }
613   }
614 
615   @Test
listMessagesTest2()616   public void listMessagesTest2() throws Exception {
617     Message responsesElement = Message.newBuilder().build();
618     ListMessagesResponse expectedResponse =
619         ListMessagesResponse.newBuilder()
620             .setNextPageToken("")
621             .addAllMessages(Arrays.asList(responsesElement))
622             .build();
623     mockConversations.addResponse(expectedResponse);
624 
625     String parent = "parent-995424086";
626 
627     ListMessagesPagedResponse pagedListResponse = client.listMessages(parent);
628 
629     List<Message> resources = Lists.newArrayList(pagedListResponse.iterateAll());
630 
631     Assert.assertEquals(1, resources.size());
632     Assert.assertEquals(expectedResponse.getMessagesList().get(0), resources.get(0));
633 
634     List<AbstractMessage> actualRequests = mockConversations.getRequests();
635     Assert.assertEquals(1, actualRequests.size());
636     ListMessagesRequest actualRequest = ((ListMessagesRequest) actualRequests.get(0));
637 
638     Assert.assertEquals(parent, actualRequest.getParent());
639     Assert.assertTrue(
640         channelProvider.isHeaderSent(
641             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
642             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
643   }
644 
645   @Test
listMessagesExceptionTest2()646   public void listMessagesExceptionTest2() throws Exception {
647     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
648     mockConversations.addException(exception);
649 
650     try {
651       String parent = "parent-995424086";
652       client.listMessages(parent);
653       Assert.fail("No exception raised");
654     } catch (InvalidArgumentException e) {
655       // Expected exception.
656     }
657   }
658 
659   @Test
suggestConversationSummaryTest()660   public void suggestConversationSummaryTest() throws Exception {
661     SuggestConversationSummaryResponse expectedResponse =
662         SuggestConversationSummaryResponse.newBuilder()
663             .setSummary(SuggestConversationSummaryResponse.Summary.newBuilder().build())
664             .setLatestMessage(
665                 MessageName.ofProjectConversationMessageName(
666                         "[PROJECT]", "[CONVERSATION]", "[MESSAGE]")
667                     .toString())
668             .setContextSize(1116903569)
669             .build();
670     mockConversations.addResponse(expectedResponse);
671 
672     ConversationName conversation =
673         ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]");
674 
675     SuggestConversationSummaryResponse actualResponse =
676         client.suggestConversationSummary(conversation);
677     Assert.assertEquals(expectedResponse, actualResponse);
678 
679     List<AbstractMessage> actualRequests = mockConversations.getRequests();
680     Assert.assertEquals(1, actualRequests.size());
681     SuggestConversationSummaryRequest actualRequest =
682         ((SuggestConversationSummaryRequest) actualRequests.get(0));
683 
684     Assert.assertEquals(conversation.toString(), actualRequest.getConversation());
685     Assert.assertTrue(
686         channelProvider.isHeaderSent(
687             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
688             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
689   }
690 
691   @Test
suggestConversationSummaryExceptionTest()692   public void suggestConversationSummaryExceptionTest() throws Exception {
693     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
694     mockConversations.addException(exception);
695 
696     try {
697       ConversationName conversation =
698           ConversationName.ofProjectConversationName("[PROJECT]", "[CONVERSATION]");
699       client.suggestConversationSummary(conversation);
700       Assert.fail("No exception raised");
701     } catch (InvalidArgumentException e) {
702       // Expected exception.
703     }
704   }
705 
706   @Test
suggestConversationSummaryTest2()707   public void suggestConversationSummaryTest2() throws Exception {
708     SuggestConversationSummaryResponse expectedResponse =
709         SuggestConversationSummaryResponse.newBuilder()
710             .setSummary(SuggestConversationSummaryResponse.Summary.newBuilder().build())
711             .setLatestMessage(
712                 MessageName.ofProjectConversationMessageName(
713                         "[PROJECT]", "[CONVERSATION]", "[MESSAGE]")
714                     .toString())
715             .setContextSize(1116903569)
716             .build();
717     mockConversations.addResponse(expectedResponse);
718 
719     String conversation = "conversation740154499";
720 
721     SuggestConversationSummaryResponse actualResponse =
722         client.suggestConversationSummary(conversation);
723     Assert.assertEquals(expectedResponse, actualResponse);
724 
725     List<AbstractMessage> actualRequests = mockConversations.getRequests();
726     Assert.assertEquals(1, actualRequests.size());
727     SuggestConversationSummaryRequest actualRequest =
728         ((SuggestConversationSummaryRequest) actualRequests.get(0));
729 
730     Assert.assertEquals(conversation, actualRequest.getConversation());
731     Assert.assertTrue(
732         channelProvider.isHeaderSent(
733             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
734             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
735   }
736 
737   @Test
suggestConversationSummaryExceptionTest2()738   public void suggestConversationSummaryExceptionTest2() throws Exception {
739     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
740     mockConversations.addException(exception);
741 
742     try {
743       String conversation = "conversation740154499";
744       client.suggestConversationSummary(conversation);
745       Assert.fail("No exception raised");
746     } catch (InvalidArgumentException e) {
747       // Expected exception.
748     }
749   }
750 
751   @Test
generateStatelessSummaryTest()752   public void generateStatelessSummaryTest() throws Exception {
753     GenerateStatelessSummaryResponse expectedResponse =
754         GenerateStatelessSummaryResponse.newBuilder()
755             .setSummary(GenerateStatelessSummaryResponse.Summary.newBuilder().build())
756             .setLatestMessage(
757                 MessageName.ofProjectConversationMessageName(
758                         "[PROJECT]", "[CONVERSATION]", "[MESSAGE]")
759                     .toString())
760             .setContextSize(1116903569)
761             .build();
762     mockConversations.addResponse(expectedResponse);
763 
764     GenerateStatelessSummaryRequest request =
765         GenerateStatelessSummaryRequest.newBuilder()
766             .setStatelessConversation(
767                 GenerateStatelessSummaryRequest.MinimalConversation.newBuilder().build())
768             .setConversationProfile(ConversationProfile.newBuilder().build())
769             .setLatestMessage(
770                 MessageName.ofProjectConversationMessageName(
771                         "[PROJECT]", "[CONVERSATION]", "[MESSAGE]")
772                     .toString())
773             .setMaxContextSize(-1134084212)
774             .build();
775 
776     GenerateStatelessSummaryResponse actualResponse = client.generateStatelessSummary(request);
777     Assert.assertEquals(expectedResponse, actualResponse);
778 
779     List<AbstractMessage> actualRequests = mockConversations.getRequests();
780     Assert.assertEquals(1, actualRequests.size());
781     GenerateStatelessSummaryRequest actualRequest =
782         ((GenerateStatelessSummaryRequest) actualRequests.get(0));
783 
784     Assert.assertEquals(
785         request.getStatelessConversation(), actualRequest.getStatelessConversation());
786     Assert.assertEquals(request.getConversationProfile(), actualRequest.getConversationProfile());
787     Assert.assertEquals(request.getLatestMessage(), actualRequest.getLatestMessage());
788     Assert.assertEquals(request.getMaxContextSize(), actualRequest.getMaxContextSize());
789     Assert.assertTrue(
790         channelProvider.isHeaderSent(
791             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
792             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
793   }
794 
795   @Test
generateStatelessSummaryExceptionTest()796   public void generateStatelessSummaryExceptionTest() throws Exception {
797     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
798     mockConversations.addException(exception);
799 
800     try {
801       GenerateStatelessSummaryRequest request =
802           GenerateStatelessSummaryRequest.newBuilder()
803               .setStatelessConversation(
804                   GenerateStatelessSummaryRequest.MinimalConversation.newBuilder().build())
805               .setConversationProfile(ConversationProfile.newBuilder().build())
806               .setLatestMessage(
807                   MessageName.ofProjectConversationMessageName(
808                           "[PROJECT]", "[CONVERSATION]", "[MESSAGE]")
809                       .toString())
810               .setMaxContextSize(-1134084212)
811               .build();
812       client.generateStatelessSummary(request);
813       Assert.fail("No exception raised");
814     } catch (InvalidArgumentException e) {
815       // Expected exception.
816     }
817   }
818 
819   @Test
listLocationsTest()820   public void listLocationsTest() throws Exception {
821     Location responsesElement = Location.newBuilder().build();
822     ListLocationsResponse expectedResponse =
823         ListLocationsResponse.newBuilder()
824             .setNextPageToken("")
825             .addAllLocations(Arrays.asList(responsesElement))
826             .build();
827     mockLocations.addResponse(expectedResponse);
828 
829     ListLocationsRequest request =
830         ListLocationsRequest.newBuilder()
831             .setName("name3373707")
832             .setFilter("filter-1274492040")
833             .setPageSize(883849137)
834             .setPageToken("pageToken873572522")
835             .build();
836 
837     ListLocationsPagedResponse pagedListResponse = client.listLocations(request);
838 
839     List<Location> resources = Lists.newArrayList(pagedListResponse.iterateAll());
840 
841     Assert.assertEquals(1, resources.size());
842     Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0));
843 
844     List<AbstractMessage> actualRequests = mockLocations.getRequests();
845     Assert.assertEquals(1, actualRequests.size());
846     ListLocationsRequest actualRequest = ((ListLocationsRequest) actualRequests.get(0));
847 
848     Assert.assertEquals(request.getName(), actualRequest.getName());
849     Assert.assertEquals(request.getFilter(), actualRequest.getFilter());
850     Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize());
851     Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken());
852     Assert.assertTrue(
853         channelProvider.isHeaderSent(
854             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
855             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
856   }
857 
858   @Test
listLocationsExceptionTest()859   public void listLocationsExceptionTest() throws Exception {
860     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
861     mockLocations.addException(exception);
862 
863     try {
864       ListLocationsRequest request =
865           ListLocationsRequest.newBuilder()
866               .setName("name3373707")
867               .setFilter("filter-1274492040")
868               .setPageSize(883849137)
869               .setPageToken("pageToken873572522")
870               .build();
871       client.listLocations(request);
872       Assert.fail("No exception raised");
873     } catch (InvalidArgumentException e) {
874       // Expected exception.
875     }
876   }
877 
878   @Test
getLocationTest()879   public void getLocationTest() throws Exception {
880     Location expectedResponse =
881         Location.newBuilder()
882             .setName("name3373707")
883             .setLocationId("locationId1541836720")
884             .setDisplayName("displayName1714148973")
885             .putAllLabels(new HashMap<String, String>())
886             .setMetadata(Any.newBuilder().build())
887             .build();
888     mockLocations.addResponse(expectedResponse);
889 
890     GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
891 
892     Location actualResponse = client.getLocation(request);
893     Assert.assertEquals(expectedResponse, actualResponse);
894 
895     List<AbstractMessage> actualRequests = mockLocations.getRequests();
896     Assert.assertEquals(1, actualRequests.size());
897     GetLocationRequest actualRequest = ((GetLocationRequest) actualRequests.get(0));
898 
899     Assert.assertEquals(request.getName(), actualRequest.getName());
900     Assert.assertTrue(
901         channelProvider.isHeaderSent(
902             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
903             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
904   }
905 
906   @Test
getLocationExceptionTest()907   public void getLocationExceptionTest() throws Exception {
908     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
909     mockLocations.addException(exception);
910 
911     try {
912       GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
913       client.getLocation(request);
914       Assert.fail("No exception raised");
915     } catch (InvalidArgumentException e) {
916       // Expected exception.
917     }
918   }
919 }
920