1 /* 2 * Copyright 2022 Google LLC 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * https://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.cloud.dialogflow.cx.v3; 18 19 import static com.google.cloud.dialogflow.cx.v3.FlowsClient.ListFlowsPagedResponse; 20 import static com.google.cloud.dialogflow.cx.v3.FlowsClient.ListLocationsPagedResponse; 21 22 import com.google.api.gax.core.NoCredentialsProvider; 23 import com.google.api.gax.grpc.GaxGrpcProperties; 24 import com.google.api.gax.grpc.testing.LocalChannelProvider; 25 import com.google.api.gax.grpc.testing.MockGrpcService; 26 import com.google.api.gax.grpc.testing.MockServiceHelper; 27 import com.google.api.gax.rpc.ApiClientHeaderProvider; 28 import com.google.api.gax.rpc.InvalidArgumentException; 29 import com.google.api.gax.rpc.StatusCode; 30 import com.google.cloud.location.GetLocationRequest; 31 import com.google.cloud.location.ListLocationsRequest; 32 import com.google.cloud.location.ListLocationsResponse; 33 import com.google.cloud.location.Location; 34 import com.google.common.collect.Lists; 35 import com.google.longrunning.Operation; 36 import com.google.protobuf.AbstractMessage; 37 import com.google.protobuf.Any; 38 import com.google.protobuf.Empty; 39 import com.google.protobuf.FieldMask; 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 FlowsClientTest { 59 private static MockFlows mockFlows; 60 private static MockLocations mockLocations; 61 private static MockServiceHelper mockServiceHelper; 62 private LocalChannelProvider channelProvider; 63 private FlowsClient client; 64 65 @BeforeClass startStaticServer()66 public static void startStaticServer() { 67 mockFlows = new MockFlows(); 68 mockLocations = new MockLocations(); 69 mockServiceHelper = 70 new MockServiceHelper( 71 UUID.randomUUID().toString(), Arrays.<MockGrpcService>asList(mockFlows, mockLocations)); 72 mockServiceHelper.start(); 73 } 74 75 @AfterClass stopServer()76 public static void stopServer() { 77 mockServiceHelper.stop(); 78 } 79 80 @Before setUp()81 public void setUp() throws IOException { 82 mockServiceHelper.reset(); 83 channelProvider = mockServiceHelper.createChannelProvider(); 84 FlowsSettings settings = 85 FlowsSettings.newBuilder() 86 .setTransportChannelProvider(channelProvider) 87 .setCredentialsProvider(NoCredentialsProvider.create()) 88 .build(); 89 client = FlowsClient.create(settings); 90 } 91 92 @After tearDown()93 public void tearDown() throws Exception { 94 client.close(); 95 } 96 97 @Test createFlowTest()98 public void createFlowTest() throws Exception { 99 Flow expectedResponse = 100 Flow.newBuilder() 101 .setName(FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]").toString()) 102 .setDisplayName("displayName1714148973") 103 .setDescription("description-1724546052") 104 .addAllTransitionRoutes(new ArrayList<TransitionRoute>()) 105 .addAllEventHandlers(new ArrayList<EventHandler>()) 106 .addAllTransitionRouteGroups(new ArrayList<String>()) 107 .setNluSettings(NluSettings.newBuilder().build()) 108 .build(); 109 mockFlows.addResponse(expectedResponse); 110 111 AgentName parent = AgentName.of("[PROJECT]", "[LOCATION]", "[AGENT]"); 112 Flow flow = Flow.newBuilder().build(); 113 114 Flow actualResponse = client.createFlow(parent, flow); 115 Assert.assertEquals(expectedResponse, actualResponse); 116 117 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 118 Assert.assertEquals(1, actualRequests.size()); 119 CreateFlowRequest actualRequest = ((CreateFlowRequest) actualRequests.get(0)); 120 121 Assert.assertEquals(parent.toString(), actualRequest.getParent()); 122 Assert.assertEquals(flow, actualRequest.getFlow()); 123 Assert.assertTrue( 124 channelProvider.isHeaderSent( 125 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 126 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 127 } 128 129 @Test createFlowExceptionTest()130 public void createFlowExceptionTest() throws Exception { 131 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 132 mockFlows.addException(exception); 133 134 try { 135 AgentName parent = AgentName.of("[PROJECT]", "[LOCATION]", "[AGENT]"); 136 Flow flow = Flow.newBuilder().build(); 137 client.createFlow(parent, flow); 138 Assert.fail("No exception raised"); 139 } catch (InvalidArgumentException e) { 140 // Expected exception. 141 } 142 } 143 144 @Test createFlowTest2()145 public void createFlowTest2() throws Exception { 146 Flow expectedResponse = 147 Flow.newBuilder() 148 .setName(FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]").toString()) 149 .setDisplayName("displayName1714148973") 150 .setDescription("description-1724546052") 151 .addAllTransitionRoutes(new ArrayList<TransitionRoute>()) 152 .addAllEventHandlers(new ArrayList<EventHandler>()) 153 .addAllTransitionRouteGroups(new ArrayList<String>()) 154 .setNluSettings(NluSettings.newBuilder().build()) 155 .build(); 156 mockFlows.addResponse(expectedResponse); 157 158 String parent = "parent-995424086"; 159 Flow flow = Flow.newBuilder().build(); 160 161 Flow actualResponse = client.createFlow(parent, flow); 162 Assert.assertEquals(expectedResponse, actualResponse); 163 164 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 165 Assert.assertEquals(1, actualRequests.size()); 166 CreateFlowRequest actualRequest = ((CreateFlowRequest) actualRequests.get(0)); 167 168 Assert.assertEquals(parent, actualRequest.getParent()); 169 Assert.assertEquals(flow, actualRequest.getFlow()); 170 Assert.assertTrue( 171 channelProvider.isHeaderSent( 172 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 173 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 174 } 175 176 @Test createFlowExceptionTest2()177 public void createFlowExceptionTest2() throws Exception { 178 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 179 mockFlows.addException(exception); 180 181 try { 182 String parent = "parent-995424086"; 183 Flow flow = Flow.newBuilder().build(); 184 client.createFlow(parent, flow); 185 Assert.fail("No exception raised"); 186 } catch (InvalidArgumentException e) { 187 // Expected exception. 188 } 189 } 190 191 @Test deleteFlowTest()192 public void deleteFlowTest() throws Exception { 193 Empty expectedResponse = Empty.newBuilder().build(); 194 mockFlows.addResponse(expectedResponse); 195 196 FlowName name = FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"); 197 198 client.deleteFlow(name); 199 200 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 201 Assert.assertEquals(1, actualRequests.size()); 202 DeleteFlowRequest actualRequest = ((DeleteFlowRequest) actualRequests.get(0)); 203 204 Assert.assertEquals(name.toString(), actualRequest.getName()); 205 Assert.assertTrue( 206 channelProvider.isHeaderSent( 207 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 208 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 209 } 210 211 @Test deleteFlowExceptionTest()212 public void deleteFlowExceptionTest() throws Exception { 213 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 214 mockFlows.addException(exception); 215 216 try { 217 FlowName name = FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"); 218 client.deleteFlow(name); 219 Assert.fail("No exception raised"); 220 } catch (InvalidArgumentException e) { 221 // Expected exception. 222 } 223 } 224 225 @Test deleteFlowTest2()226 public void deleteFlowTest2() throws Exception { 227 Empty expectedResponse = Empty.newBuilder().build(); 228 mockFlows.addResponse(expectedResponse); 229 230 String name = "name3373707"; 231 232 client.deleteFlow(name); 233 234 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 235 Assert.assertEquals(1, actualRequests.size()); 236 DeleteFlowRequest actualRequest = ((DeleteFlowRequest) actualRequests.get(0)); 237 238 Assert.assertEquals(name, actualRequest.getName()); 239 Assert.assertTrue( 240 channelProvider.isHeaderSent( 241 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 242 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 243 } 244 245 @Test deleteFlowExceptionTest2()246 public void deleteFlowExceptionTest2() throws Exception { 247 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 248 mockFlows.addException(exception); 249 250 try { 251 String name = "name3373707"; 252 client.deleteFlow(name); 253 Assert.fail("No exception raised"); 254 } catch (InvalidArgumentException e) { 255 // Expected exception. 256 } 257 } 258 259 @Test listFlowsTest()260 public void listFlowsTest() throws Exception { 261 Flow responsesElement = Flow.newBuilder().build(); 262 ListFlowsResponse expectedResponse = 263 ListFlowsResponse.newBuilder() 264 .setNextPageToken("") 265 .addAllFlows(Arrays.asList(responsesElement)) 266 .build(); 267 mockFlows.addResponse(expectedResponse); 268 269 AgentName parent = AgentName.of("[PROJECT]", "[LOCATION]", "[AGENT]"); 270 271 ListFlowsPagedResponse pagedListResponse = client.listFlows(parent); 272 273 List<Flow> resources = Lists.newArrayList(pagedListResponse.iterateAll()); 274 275 Assert.assertEquals(1, resources.size()); 276 Assert.assertEquals(expectedResponse.getFlowsList().get(0), resources.get(0)); 277 278 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 279 Assert.assertEquals(1, actualRequests.size()); 280 ListFlowsRequest actualRequest = ((ListFlowsRequest) actualRequests.get(0)); 281 282 Assert.assertEquals(parent.toString(), actualRequest.getParent()); 283 Assert.assertTrue( 284 channelProvider.isHeaderSent( 285 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 286 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 287 } 288 289 @Test listFlowsExceptionTest()290 public void listFlowsExceptionTest() throws Exception { 291 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 292 mockFlows.addException(exception); 293 294 try { 295 AgentName parent = AgentName.of("[PROJECT]", "[LOCATION]", "[AGENT]"); 296 client.listFlows(parent); 297 Assert.fail("No exception raised"); 298 } catch (InvalidArgumentException e) { 299 // Expected exception. 300 } 301 } 302 303 @Test listFlowsTest2()304 public void listFlowsTest2() throws Exception { 305 Flow responsesElement = Flow.newBuilder().build(); 306 ListFlowsResponse expectedResponse = 307 ListFlowsResponse.newBuilder() 308 .setNextPageToken("") 309 .addAllFlows(Arrays.asList(responsesElement)) 310 .build(); 311 mockFlows.addResponse(expectedResponse); 312 313 String parent = "parent-995424086"; 314 315 ListFlowsPagedResponse pagedListResponse = client.listFlows(parent); 316 317 List<Flow> resources = Lists.newArrayList(pagedListResponse.iterateAll()); 318 319 Assert.assertEquals(1, resources.size()); 320 Assert.assertEquals(expectedResponse.getFlowsList().get(0), resources.get(0)); 321 322 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 323 Assert.assertEquals(1, actualRequests.size()); 324 ListFlowsRequest actualRequest = ((ListFlowsRequest) actualRequests.get(0)); 325 326 Assert.assertEquals(parent, actualRequest.getParent()); 327 Assert.assertTrue( 328 channelProvider.isHeaderSent( 329 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 330 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 331 } 332 333 @Test listFlowsExceptionTest2()334 public void listFlowsExceptionTest2() throws Exception { 335 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 336 mockFlows.addException(exception); 337 338 try { 339 String parent = "parent-995424086"; 340 client.listFlows(parent); 341 Assert.fail("No exception raised"); 342 } catch (InvalidArgumentException e) { 343 // Expected exception. 344 } 345 } 346 347 @Test getFlowTest()348 public void getFlowTest() throws Exception { 349 Flow expectedResponse = 350 Flow.newBuilder() 351 .setName(FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]").toString()) 352 .setDisplayName("displayName1714148973") 353 .setDescription("description-1724546052") 354 .addAllTransitionRoutes(new ArrayList<TransitionRoute>()) 355 .addAllEventHandlers(new ArrayList<EventHandler>()) 356 .addAllTransitionRouteGroups(new ArrayList<String>()) 357 .setNluSettings(NluSettings.newBuilder().build()) 358 .build(); 359 mockFlows.addResponse(expectedResponse); 360 361 FlowName name = FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"); 362 363 Flow actualResponse = client.getFlow(name); 364 Assert.assertEquals(expectedResponse, actualResponse); 365 366 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 367 Assert.assertEquals(1, actualRequests.size()); 368 GetFlowRequest actualRequest = ((GetFlowRequest) actualRequests.get(0)); 369 370 Assert.assertEquals(name.toString(), actualRequest.getName()); 371 Assert.assertTrue( 372 channelProvider.isHeaderSent( 373 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 374 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 375 } 376 377 @Test getFlowExceptionTest()378 public void getFlowExceptionTest() throws Exception { 379 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 380 mockFlows.addException(exception); 381 382 try { 383 FlowName name = FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"); 384 client.getFlow(name); 385 Assert.fail("No exception raised"); 386 } catch (InvalidArgumentException e) { 387 // Expected exception. 388 } 389 } 390 391 @Test getFlowTest2()392 public void getFlowTest2() throws Exception { 393 Flow expectedResponse = 394 Flow.newBuilder() 395 .setName(FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]").toString()) 396 .setDisplayName("displayName1714148973") 397 .setDescription("description-1724546052") 398 .addAllTransitionRoutes(new ArrayList<TransitionRoute>()) 399 .addAllEventHandlers(new ArrayList<EventHandler>()) 400 .addAllTransitionRouteGroups(new ArrayList<String>()) 401 .setNluSettings(NluSettings.newBuilder().build()) 402 .build(); 403 mockFlows.addResponse(expectedResponse); 404 405 String name = "name3373707"; 406 407 Flow actualResponse = client.getFlow(name); 408 Assert.assertEquals(expectedResponse, actualResponse); 409 410 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 411 Assert.assertEquals(1, actualRequests.size()); 412 GetFlowRequest actualRequest = ((GetFlowRequest) actualRequests.get(0)); 413 414 Assert.assertEquals(name, actualRequest.getName()); 415 Assert.assertTrue( 416 channelProvider.isHeaderSent( 417 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 418 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 419 } 420 421 @Test getFlowExceptionTest2()422 public void getFlowExceptionTest2() throws Exception { 423 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 424 mockFlows.addException(exception); 425 426 try { 427 String name = "name3373707"; 428 client.getFlow(name); 429 Assert.fail("No exception raised"); 430 } catch (InvalidArgumentException e) { 431 // Expected exception. 432 } 433 } 434 435 @Test updateFlowTest()436 public void updateFlowTest() throws Exception { 437 Flow expectedResponse = 438 Flow.newBuilder() 439 .setName(FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]").toString()) 440 .setDisplayName("displayName1714148973") 441 .setDescription("description-1724546052") 442 .addAllTransitionRoutes(new ArrayList<TransitionRoute>()) 443 .addAllEventHandlers(new ArrayList<EventHandler>()) 444 .addAllTransitionRouteGroups(new ArrayList<String>()) 445 .setNluSettings(NluSettings.newBuilder().build()) 446 .build(); 447 mockFlows.addResponse(expectedResponse); 448 449 Flow flow = Flow.newBuilder().build(); 450 FieldMask updateMask = FieldMask.newBuilder().build(); 451 452 Flow actualResponse = client.updateFlow(flow, updateMask); 453 Assert.assertEquals(expectedResponse, actualResponse); 454 455 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 456 Assert.assertEquals(1, actualRequests.size()); 457 UpdateFlowRequest actualRequest = ((UpdateFlowRequest) actualRequests.get(0)); 458 459 Assert.assertEquals(flow, actualRequest.getFlow()); 460 Assert.assertEquals(updateMask, actualRequest.getUpdateMask()); 461 Assert.assertTrue( 462 channelProvider.isHeaderSent( 463 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 464 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 465 } 466 467 @Test updateFlowExceptionTest()468 public void updateFlowExceptionTest() throws Exception { 469 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 470 mockFlows.addException(exception); 471 472 try { 473 Flow flow = Flow.newBuilder().build(); 474 FieldMask updateMask = FieldMask.newBuilder().build(); 475 client.updateFlow(flow, updateMask); 476 Assert.fail("No exception raised"); 477 } catch (InvalidArgumentException e) { 478 // Expected exception. 479 } 480 } 481 482 @Test trainFlowTest()483 public void trainFlowTest() throws Exception { 484 Empty expectedResponse = Empty.newBuilder().build(); 485 Operation resultOperation = 486 Operation.newBuilder() 487 .setName("trainFlowTest") 488 .setDone(true) 489 .setResponse(Any.pack(expectedResponse)) 490 .build(); 491 mockFlows.addResponse(resultOperation); 492 493 FlowName name = FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"); 494 495 client.trainFlowAsync(name).get(); 496 497 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 498 Assert.assertEquals(1, actualRequests.size()); 499 TrainFlowRequest actualRequest = ((TrainFlowRequest) actualRequests.get(0)); 500 501 Assert.assertEquals(name.toString(), actualRequest.getName()); 502 Assert.assertTrue( 503 channelProvider.isHeaderSent( 504 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 505 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 506 } 507 508 @Test trainFlowExceptionTest()509 public void trainFlowExceptionTest() throws Exception { 510 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 511 mockFlows.addException(exception); 512 513 try { 514 FlowName name = FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"); 515 client.trainFlowAsync(name).get(); 516 Assert.fail("No exception raised"); 517 } catch (ExecutionException e) { 518 Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); 519 InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); 520 Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); 521 } 522 } 523 524 @Test trainFlowTest2()525 public void trainFlowTest2() throws Exception { 526 Empty expectedResponse = Empty.newBuilder().build(); 527 Operation resultOperation = 528 Operation.newBuilder() 529 .setName("trainFlowTest") 530 .setDone(true) 531 .setResponse(Any.pack(expectedResponse)) 532 .build(); 533 mockFlows.addResponse(resultOperation); 534 535 String name = "name3373707"; 536 537 client.trainFlowAsync(name).get(); 538 539 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 540 Assert.assertEquals(1, actualRequests.size()); 541 TrainFlowRequest actualRequest = ((TrainFlowRequest) actualRequests.get(0)); 542 543 Assert.assertEquals(name, actualRequest.getName()); 544 Assert.assertTrue( 545 channelProvider.isHeaderSent( 546 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 547 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 548 } 549 550 @Test trainFlowExceptionTest2()551 public void trainFlowExceptionTest2() throws Exception { 552 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 553 mockFlows.addException(exception); 554 555 try { 556 String name = "name3373707"; 557 client.trainFlowAsync(name).get(); 558 Assert.fail("No exception raised"); 559 } catch (ExecutionException e) { 560 Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); 561 InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); 562 Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); 563 } 564 } 565 566 @Test validateFlowTest()567 public void validateFlowTest() throws Exception { 568 FlowValidationResult expectedResponse = 569 FlowValidationResult.newBuilder() 570 .setName( 571 FlowValidationResultName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]") 572 .toString()) 573 .addAllValidationMessages(new ArrayList<ValidationMessage>()) 574 .setUpdateTime(Timestamp.newBuilder().build()) 575 .build(); 576 mockFlows.addResponse(expectedResponse); 577 578 ValidateFlowRequest request = 579 ValidateFlowRequest.newBuilder() 580 .setName(FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]").toString()) 581 .setLanguageCode("languageCode-2092349083") 582 .build(); 583 584 FlowValidationResult actualResponse = client.validateFlow(request); 585 Assert.assertEquals(expectedResponse, actualResponse); 586 587 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 588 Assert.assertEquals(1, actualRequests.size()); 589 ValidateFlowRequest actualRequest = ((ValidateFlowRequest) actualRequests.get(0)); 590 591 Assert.assertEquals(request.getName(), actualRequest.getName()); 592 Assert.assertEquals(request.getLanguageCode(), actualRequest.getLanguageCode()); 593 Assert.assertTrue( 594 channelProvider.isHeaderSent( 595 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 596 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 597 } 598 599 @Test validateFlowExceptionTest()600 public void validateFlowExceptionTest() throws Exception { 601 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 602 mockFlows.addException(exception); 603 604 try { 605 ValidateFlowRequest request = 606 ValidateFlowRequest.newBuilder() 607 .setName(FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]").toString()) 608 .setLanguageCode("languageCode-2092349083") 609 .build(); 610 client.validateFlow(request); 611 Assert.fail("No exception raised"); 612 } catch (InvalidArgumentException e) { 613 // Expected exception. 614 } 615 } 616 617 @Test getFlowValidationResultTest()618 public void getFlowValidationResultTest() throws Exception { 619 FlowValidationResult expectedResponse = 620 FlowValidationResult.newBuilder() 621 .setName( 622 FlowValidationResultName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]") 623 .toString()) 624 .addAllValidationMessages(new ArrayList<ValidationMessage>()) 625 .setUpdateTime(Timestamp.newBuilder().build()) 626 .build(); 627 mockFlows.addResponse(expectedResponse); 628 629 FlowValidationResultName name = 630 FlowValidationResultName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"); 631 632 FlowValidationResult actualResponse = client.getFlowValidationResult(name); 633 Assert.assertEquals(expectedResponse, actualResponse); 634 635 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 636 Assert.assertEquals(1, actualRequests.size()); 637 GetFlowValidationResultRequest actualRequest = 638 ((GetFlowValidationResultRequest) actualRequests.get(0)); 639 640 Assert.assertEquals(name.toString(), actualRequest.getName()); 641 Assert.assertTrue( 642 channelProvider.isHeaderSent( 643 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 644 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 645 } 646 647 @Test getFlowValidationResultExceptionTest()648 public void getFlowValidationResultExceptionTest() throws Exception { 649 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 650 mockFlows.addException(exception); 651 652 try { 653 FlowValidationResultName name = 654 FlowValidationResultName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]"); 655 client.getFlowValidationResult(name); 656 Assert.fail("No exception raised"); 657 } catch (InvalidArgumentException e) { 658 // Expected exception. 659 } 660 } 661 662 @Test getFlowValidationResultTest2()663 public void getFlowValidationResultTest2() throws Exception { 664 FlowValidationResult expectedResponse = 665 FlowValidationResult.newBuilder() 666 .setName( 667 FlowValidationResultName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]") 668 .toString()) 669 .addAllValidationMessages(new ArrayList<ValidationMessage>()) 670 .setUpdateTime(Timestamp.newBuilder().build()) 671 .build(); 672 mockFlows.addResponse(expectedResponse); 673 674 String name = "name3373707"; 675 676 FlowValidationResult actualResponse = client.getFlowValidationResult(name); 677 Assert.assertEquals(expectedResponse, actualResponse); 678 679 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 680 Assert.assertEquals(1, actualRequests.size()); 681 GetFlowValidationResultRequest actualRequest = 682 ((GetFlowValidationResultRequest) actualRequests.get(0)); 683 684 Assert.assertEquals(name, actualRequest.getName()); 685 Assert.assertTrue( 686 channelProvider.isHeaderSent( 687 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 688 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 689 } 690 691 @Test getFlowValidationResultExceptionTest2()692 public void getFlowValidationResultExceptionTest2() throws Exception { 693 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 694 mockFlows.addException(exception); 695 696 try { 697 String name = "name3373707"; 698 client.getFlowValidationResult(name); 699 Assert.fail("No exception raised"); 700 } catch (InvalidArgumentException e) { 701 // Expected exception. 702 } 703 } 704 705 @Test importFlowTest()706 public void importFlowTest() throws Exception { 707 ImportFlowResponse expectedResponse = 708 ImportFlowResponse.newBuilder() 709 .setFlow(FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]").toString()) 710 .build(); 711 Operation resultOperation = 712 Operation.newBuilder() 713 .setName("importFlowTest") 714 .setDone(true) 715 .setResponse(Any.pack(expectedResponse)) 716 .build(); 717 mockFlows.addResponse(resultOperation); 718 719 ImportFlowRequest request = 720 ImportFlowRequest.newBuilder() 721 .setParent(AgentName.of("[PROJECT]", "[LOCATION]", "[AGENT]").toString()) 722 .build(); 723 724 ImportFlowResponse actualResponse = client.importFlowAsync(request).get(); 725 Assert.assertEquals(expectedResponse, actualResponse); 726 727 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 728 Assert.assertEquals(1, actualRequests.size()); 729 ImportFlowRequest actualRequest = ((ImportFlowRequest) actualRequests.get(0)); 730 731 Assert.assertEquals(request.getParent(), actualRequest.getParent()); 732 Assert.assertEquals(request.getFlowUri(), actualRequest.getFlowUri()); 733 Assert.assertEquals(request.getFlowContent(), actualRequest.getFlowContent()); 734 Assert.assertEquals(request.getImportOption(), actualRequest.getImportOption()); 735 Assert.assertTrue( 736 channelProvider.isHeaderSent( 737 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 738 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 739 } 740 741 @Test importFlowExceptionTest()742 public void importFlowExceptionTest() throws Exception { 743 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 744 mockFlows.addException(exception); 745 746 try { 747 ImportFlowRequest request = 748 ImportFlowRequest.newBuilder() 749 .setParent(AgentName.of("[PROJECT]", "[LOCATION]", "[AGENT]").toString()) 750 .build(); 751 client.importFlowAsync(request).get(); 752 Assert.fail("No exception raised"); 753 } catch (ExecutionException e) { 754 Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); 755 InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); 756 Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); 757 } 758 } 759 760 @Test exportFlowTest()761 public void exportFlowTest() throws Exception { 762 ExportFlowResponse expectedResponse = ExportFlowResponse.newBuilder().build(); 763 Operation resultOperation = 764 Operation.newBuilder() 765 .setName("exportFlowTest") 766 .setDone(true) 767 .setResponse(Any.pack(expectedResponse)) 768 .build(); 769 mockFlows.addResponse(resultOperation); 770 771 ExportFlowRequest request = 772 ExportFlowRequest.newBuilder() 773 .setName(FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]").toString()) 774 .setFlowUri("flowUri-765815458") 775 .setIncludeReferencedFlows(true) 776 .build(); 777 778 ExportFlowResponse actualResponse = client.exportFlowAsync(request).get(); 779 Assert.assertEquals(expectedResponse, actualResponse); 780 781 List<AbstractMessage> actualRequests = mockFlows.getRequests(); 782 Assert.assertEquals(1, actualRequests.size()); 783 ExportFlowRequest actualRequest = ((ExportFlowRequest) actualRequests.get(0)); 784 785 Assert.assertEquals(request.getName(), actualRequest.getName()); 786 Assert.assertEquals(request.getFlowUri(), actualRequest.getFlowUri()); 787 Assert.assertEquals( 788 request.getIncludeReferencedFlows(), actualRequest.getIncludeReferencedFlows()); 789 Assert.assertTrue( 790 channelProvider.isHeaderSent( 791 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 792 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 793 } 794 795 @Test exportFlowExceptionTest()796 public void exportFlowExceptionTest() throws Exception { 797 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 798 mockFlows.addException(exception); 799 800 try { 801 ExportFlowRequest request = 802 ExportFlowRequest.newBuilder() 803 .setName(FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]").toString()) 804 .setFlowUri("flowUri-765815458") 805 .setIncludeReferencedFlows(true) 806 .build(); 807 client.exportFlowAsync(request).get(); 808 Assert.fail("No exception raised"); 809 } catch (ExecutionException e) { 810 Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); 811 InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); 812 Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); 813 } 814 } 815 816 @Test listLocationsTest()817 public void listLocationsTest() throws Exception { 818 Location responsesElement = Location.newBuilder().build(); 819 ListLocationsResponse expectedResponse = 820 ListLocationsResponse.newBuilder() 821 .setNextPageToken("") 822 .addAllLocations(Arrays.asList(responsesElement)) 823 .build(); 824 mockLocations.addResponse(expectedResponse); 825 826 ListLocationsRequest request = 827 ListLocationsRequest.newBuilder() 828 .setName("name3373707") 829 .setFilter("filter-1274492040") 830 .setPageSize(883849137) 831 .setPageToken("pageToken873572522") 832 .build(); 833 834 ListLocationsPagedResponse pagedListResponse = client.listLocations(request); 835 836 List<Location> resources = Lists.newArrayList(pagedListResponse.iterateAll()); 837 838 Assert.assertEquals(1, resources.size()); 839 Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0)); 840 841 List<AbstractMessage> actualRequests = mockLocations.getRequests(); 842 Assert.assertEquals(1, actualRequests.size()); 843 ListLocationsRequest actualRequest = ((ListLocationsRequest) actualRequests.get(0)); 844 845 Assert.assertEquals(request.getName(), actualRequest.getName()); 846 Assert.assertEquals(request.getFilter(), actualRequest.getFilter()); 847 Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize()); 848 Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken()); 849 Assert.assertTrue( 850 channelProvider.isHeaderSent( 851 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 852 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 853 } 854 855 @Test listLocationsExceptionTest()856 public void listLocationsExceptionTest() throws Exception { 857 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 858 mockLocations.addException(exception); 859 860 try { 861 ListLocationsRequest request = 862 ListLocationsRequest.newBuilder() 863 .setName("name3373707") 864 .setFilter("filter-1274492040") 865 .setPageSize(883849137) 866 .setPageToken("pageToken873572522") 867 .build(); 868 client.listLocations(request); 869 Assert.fail("No exception raised"); 870 } catch (InvalidArgumentException e) { 871 // Expected exception. 872 } 873 } 874 875 @Test getLocationTest()876 public void getLocationTest() throws Exception { 877 Location expectedResponse = 878 Location.newBuilder() 879 .setName("name3373707") 880 .setLocationId("locationId1541836720") 881 .setDisplayName("displayName1714148973") 882 .putAllLabels(new HashMap<String, String>()) 883 .setMetadata(Any.newBuilder().build()) 884 .build(); 885 mockLocations.addResponse(expectedResponse); 886 887 GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build(); 888 889 Location actualResponse = client.getLocation(request); 890 Assert.assertEquals(expectedResponse, actualResponse); 891 892 List<AbstractMessage> actualRequests = mockLocations.getRequests(); 893 Assert.assertEquals(1, actualRequests.size()); 894 GetLocationRequest actualRequest = ((GetLocationRequest) actualRequests.get(0)); 895 896 Assert.assertEquals(request.getName(), actualRequest.getName()); 897 Assert.assertTrue( 898 channelProvider.isHeaderSent( 899 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 900 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 901 } 902 903 @Test getLocationExceptionTest()904 public void getLocationExceptionTest() throws Exception { 905 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 906 mockLocations.addException(exception); 907 908 try { 909 GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build(); 910 client.getLocation(request); 911 Assert.fail("No exception raised"); 912 } catch (InvalidArgumentException e) { 913 // Expected exception. 914 } 915 } 916 } 917