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.discoveryengine.v1beta; 18 19 import static com.google.cloud.discoveryengine.v1beta.DocumentServiceClient.ListDocumentsPagedResponse; 20 21 import com.google.api.gax.core.NoCredentialsProvider; 22 import com.google.api.gax.grpc.GaxGrpcProperties; 23 import com.google.api.gax.grpc.testing.LocalChannelProvider; 24 import com.google.api.gax.grpc.testing.MockGrpcService; 25 import com.google.api.gax.grpc.testing.MockServiceHelper; 26 import com.google.api.gax.rpc.ApiClientHeaderProvider; 27 import com.google.api.gax.rpc.InvalidArgumentException; 28 import com.google.api.gax.rpc.StatusCode; 29 import com.google.common.collect.Lists; 30 import com.google.longrunning.Operation; 31 import com.google.protobuf.AbstractMessage; 32 import com.google.protobuf.Any; 33 import com.google.protobuf.Empty; 34 import com.google.protobuf.Struct; 35 import com.google.rpc.Status; 36 import io.grpc.StatusRuntimeException; 37 import java.io.IOException; 38 import java.util.ArrayList; 39 import java.util.Arrays; 40 import java.util.List; 41 import java.util.UUID; 42 import java.util.concurrent.ExecutionException; 43 import javax.annotation.Generated; 44 import org.junit.After; 45 import org.junit.AfterClass; 46 import org.junit.Assert; 47 import org.junit.Before; 48 import org.junit.BeforeClass; 49 import org.junit.Test; 50 51 @Generated("by gapic-generator-java") 52 public class DocumentServiceClientTest { 53 private static MockDocumentService mockDocumentService; 54 private static MockServiceHelper mockServiceHelper; 55 private LocalChannelProvider channelProvider; 56 private DocumentServiceClient client; 57 58 @BeforeClass startStaticServer()59 public static void startStaticServer() { 60 mockDocumentService = new MockDocumentService(); 61 mockServiceHelper = 62 new MockServiceHelper( 63 UUID.randomUUID().toString(), Arrays.<MockGrpcService>asList(mockDocumentService)); 64 mockServiceHelper.start(); 65 } 66 67 @AfterClass stopServer()68 public static void stopServer() { 69 mockServiceHelper.stop(); 70 } 71 72 @Before setUp()73 public void setUp() throws IOException { 74 mockServiceHelper.reset(); 75 channelProvider = mockServiceHelper.createChannelProvider(); 76 DocumentServiceSettings settings = 77 DocumentServiceSettings.newBuilder() 78 .setTransportChannelProvider(channelProvider) 79 .setCredentialsProvider(NoCredentialsProvider.create()) 80 .build(); 81 client = DocumentServiceClient.create(settings); 82 } 83 84 @After tearDown()85 public void tearDown() throws Exception { 86 client.close(); 87 } 88 89 @Test getDocumentTest()90 public void getDocumentTest() throws Exception { 91 Document expectedResponse = 92 Document.newBuilder() 93 .setName( 94 DocumentName.ofProjectLocationDataStoreBranchDocumentName( 95 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]", "[DOCUMENT]") 96 .toString()) 97 .setId("id3355") 98 .setSchemaId("schemaId-697673060") 99 .setContent(Document.Content.newBuilder().build()) 100 .setParentDocumentId("parentDocumentId1990105056") 101 .setDerivedStructData(Struct.newBuilder().build()) 102 .build(); 103 mockDocumentService.addResponse(expectedResponse); 104 105 DocumentName name = 106 DocumentName.ofProjectLocationDataStoreBranchDocumentName( 107 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]", "[DOCUMENT]"); 108 109 Document actualResponse = client.getDocument(name); 110 Assert.assertEquals(expectedResponse, actualResponse); 111 112 List<AbstractMessage> actualRequests = mockDocumentService.getRequests(); 113 Assert.assertEquals(1, actualRequests.size()); 114 GetDocumentRequest actualRequest = ((GetDocumentRequest) actualRequests.get(0)); 115 116 Assert.assertEquals(name.toString(), actualRequest.getName()); 117 Assert.assertTrue( 118 channelProvider.isHeaderSent( 119 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 120 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 121 } 122 123 @Test getDocumentExceptionTest()124 public void getDocumentExceptionTest() throws Exception { 125 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 126 mockDocumentService.addException(exception); 127 128 try { 129 DocumentName name = 130 DocumentName.ofProjectLocationDataStoreBranchDocumentName( 131 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]", "[DOCUMENT]"); 132 client.getDocument(name); 133 Assert.fail("No exception raised"); 134 } catch (InvalidArgumentException e) { 135 // Expected exception. 136 } 137 } 138 139 @Test getDocumentTest2()140 public void getDocumentTest2() throws Exception { 141 Document expectedResponse = 142 Document.newBuilder() 143 .setName( 144 DocumentName.ofProjectLocationDataStoreBranchDocumentName( 145 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]", "[DOCUMENT]") 146 .toString()) 147 .setId("id3355") 148 .setSchemaId("schemaId-697673060") 149 .setContent(Document.Content.newBuilder().build()) 150 .setParentDocumentId("parentDocumentId1990105056") 151 .setDerivedStructData(Struct.newBuilder().build()) 152 .build(); 153 mockDocumentService.addResponse(expectedResponse); 154 155 String name = "name3373707"; 156 157 Document actualResponse = client.getDocument(name); 158 Assert.assertEquals(expectedResponse, actualResponse); 159 160 List<AbstractMessage> actualRequests = mockDocumentService.getRequests(); 161 Assert.assertEquals(1, actualRequests.size()); 162 GetDocumentRequest actualRequest = ((GetDocumentRequest) actualRequests.get(0)); 163 164 Assert.assertEquals(name, actualRequest.getName()); 165 Assert.assertTrue( 166 channelProvider.isHeaderSent( 167 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 168 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 169 } 170 171 @Test getDocumentExceptionTest2()172 public void getDocumentExceptionTest2() throws Exception { 173 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 174 mockDocumentService.addException(exception); 175 176 try { 177 String name = "name3373707"; 178 client.getDocument(name); 179 Assert.fail("No exception raised"); 180 } catch (InvalidArgumentException e) { 181 // Expected exception. 182 } 183 } 184 185 @Test listDocumentsTest()186 public void listDocumentsTest() throws Exception { 187 Document responsesElement = Document.newBuilder().build(); 188 ListDocumentsResponse expectedResponse = 189 ListDocumentsResponse.newBuilder() 190 .setNextPageToken("") 191 .addAllDocuments(Arrays.asList(responsesElement)) 192 .build(); 193 mockDocumentService.addResponse(expectedResponse); 194 195 BranchName parent = 196 BranchName.ofProjectLocationDataStoreBranchName( 197 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]"); 198 199 ListDocumentsPagedResponse pagedListResponse = client.listDocuments(parent); 200 201 List<Document> resources = Lists.newArrayList(pagedListResponse.iterateAll()); 202 203 Assert.assertEquals(1, resources.size()); 204 Assert.assertEquals(expectedResponse.getDocumentsList().get(0), resources.get(0)); 205 206 List<AbstractMessage> actualRequests = mockDocumentService.getRequests(); 207 Assert.assertEquals(1, actualRequests.size()); 208 ListDocumentsRequest actualRequest = ((ListDocumentsRequest) actualRequests.get(0)); 209 210 Assert.assertEquals(parent.toString(), actualRequest.getParent()); 211 Assert.assertTrue( 212 channelProvider.isHeaderSent( 213 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 214 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 215 } 216 217 @Test listDocumentsExceptionTest()218 public void listDocumentsExceptionTest() throws Exception { 219 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 220 mockDocumentService.addException(exception); 221 222 try { 223 BranchName parent = 224 BranchName.ofProjectLocationDataStoreBranchName( 225 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]"); 226 client.listDocuments(parent); 227 Assert.fail("No exception raised"); 228 } catch (InvalidArgumentException e) { 229 // Expected exception. 230 } 231 } 232 233 @Test listDocumentsTest2()234 public void listDocumentsTest2() throws Exception { 235 Document responsesElement = Document.newBuilder().build(); 236 ListDocumentsResponse expectedResponse = 237 ListDocumentsResponse.newBuilder() 238 .setNextPageToken("") 239 .addAllDocuments(Arrays.asList(responsesElement)) 240 .build(); 241 mockDocumentService.addResponse(expectedResponse); 242 243 String parent = "parent-995424086"; 244 245 ListDocumentsPagedResponse pagedListResponse = client.listDocuments(parent); 246 247 List<Document> resources = Lists.newArrayList(pagedListResponse.iterateAll()); 248 249 Assert.assertEquals(1, resources.size()); 250 Assert.assertEquals(expectedResponse.getDocumentsList().get(0), resources.get(0)); 251 252 List<AbstractMessage> actualRequests = mockDocumentService.getRequests(); 253 Assert.assertEquals(1, actualRequests.size()); 254 ListDocumentsRequest actualRequest = ((ListDocumentsRequest) actualRequests.get(0)); 255 256 Assert.assertEquals(parent, actualRequest.getParent()); 257 Assert.assertTrue( 258 channelProvider.isHeaderSent( 259 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 260 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 261 } 262 263 @Test listDocumentsExceptionTest2()264 public void listDocumentsExceptionTest2() throws Exception { 265 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 266 mockDocumentService.addException(exception); 267 268 try { 269 String parent = "parent-995424086"; 270 client.listDocuments(parent); 271 Assert.fail("No exception raised"); 272 } catch (InvalidArgumentException e) { 273 // Expected exception. 274 } 275 } 276 277 @Test createDocumentTest()278 public void createDocumentTest() throws Exception { 279 Document expectedResponse = 280 Document.newBuilder() 281 .setName( 282 DocumentName.ofProjectLocationDataStoreBranchDocumentName( 283 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]", "[DOCUMENT]") 284 .toString()) 285 .setId("id3355") 286 .setSchemaId("schemaId-697673060") 287 .setContent(Document.Content.newBuilder().build()) 288 .setParentDocumentId("parentDocumentId1990105056") 289 .setDerivedStructData(Struct.newBuilder().build()) 290 .build(); 291 mockDocumentService.addResponse(expectedResponse); 292 293 BranchName parent = 294 BranchName.ofProjectLocationDataStoreBranchName( 295 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]"); 296 Document document = Document.newBuilder().build(); 297 String documentId = "documentId-814940266"; 298 299 Document actualResponse = client.createDocument(parent, document, documentId); 300 Assert.assertEquals(expectedResponse, actualResponse); 301 302 List<AbstractMessage> actualRequests = mockDocumentService.getRequests(); 303 Assert.assertEquals(1, actualRequests.size()); 304 CreateDocumentRequest actualRequest = ((CreateDocumentRequest) actualRequests.get(0)); 305 306 Assert.assertEquals(parent.toString(), actualRequest.getParent()); 307 Assert.assertEquals(document, actualRequest.getDocument()); 308 Assert.assertEquals(documentId, actualRequest.getDocumentId()); 309 Assert.assertTrue( 310 channelProvider.isHeaderSent( 311 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 312 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 313 } 314 315 @Test createDocumentExceptionTest()316 public void createDocumentExceptionTest() throws Exception { 317 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 318 mockDocumentService.addException(exception); 319 320 try { 321 BranchName parent = 322 BranchName.ofProjectLocationDataStoreBranchName( 323 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]"); 324 Document document = Document.newBuilder().build(); 325 String documentId = "documentId-814940266"; 326 client.createDocument(parent, document, documentId); 327 Assert.fail("No exception raised"); 328 } catch (InvalidArgumentException e) { 329 // Expected exception. 330 } 331 } 332 333 @Test createDocumentTest2()334 public void createDocumentTest2() throws Exception { 335 Document expectedResponse = 336 Document.newBuilder() 337 .setName( 338 DocumentName.ofProjectLocationDataStoreBranchDocumentName( 339 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]", "[DOCUMENT]") 340 .toString()) 341 .setId("id3355") 342 .setSchemaId("schemaId-697673060") 343 .setContent(Document.Content.newBuilder().build()) 344 .setParentDocumentId("parentDocumentId1990105056") 345 .setDerivedStructData(Struct.newBuilder().build()) 346 .build(); 347 mockDocumentService.addResponse(expectedResponse); 348 349 String parent = "parent-995424086"; 350 Document document = Document.newBuilder().build(); 351 String documentId = "documentId-814940266"; 352 353 Document actualResponse = client.createDocument(parent, document, documentId); 354 Assert.assertEquals(expectedResponse, actualResponse); 355 356 List<AbstractMessage> actualRequests = mockDocumentService.getRequests(); 357 Assert.assertEquals(1, actualRequests.size()); 358 CreateDocumentRequest actualRequest = ((CreateDocumentRequest) actualRequests.get(0)); 359 360 Assert.assertEquals(parent, actualRequest.getParent()); 361 Assert.assertEquals(document, actualRequest.getDocument()); 362 Assert.assertEquals(documentId, actualRequest.getDocumentId()); 363 Assert.assertTrue( 364 channelProvider.isHeaderSent( 365 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 366 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 367 } 368 369 @Test createDocumentExceptionTest2()370 public void createDocumentExceptionTest2() throws Exception { 371 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 372 mockDocumentService.addException(exception); 373 374 try { 375 String parent = "parent-995424086"; 376 Document document = Document.newBuilder().build(); 377 String documentId = "documentId-814940266"; 378 client.createDocument(parent, document, documentId); 379 Assert.fail("No exception raised"); 380 } catch (InvalidArgumentException e) { 381 // Expected exception. 382 } 383 } 384 385 @Test updateDocumentTest()386 public void updateDocumentTest() throws Exception { 387 Document expectedResponse = 388 Document.newBuilder() 389 .setName( 390 DocumentName.ofProjectLocationDataStoreBranchDocumentName( 391 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]", "[DOCUMENT]") 392 .toString()) 393 .setId("id3355") 394 .setSchemaId("schemaId-697673060") 395 .setContent(Document.Content.newBuilder().build()) 396 .setParentDocumentId("parentDocumentId1990105056") 397 .setDerivedStructData(Struct.newBuilder().build()) 398 .build(); 399 mockDocumentService.addResponse(expectedResponse); 400 401 UpdateDocumentRequest request = 402 UpdateDocumentRequest.newBuilder() 403 .setDocument(Document.newBuilder().build()) 404 .setAllowMissing(true) 405 .build(); 406 407 Document actualResponse = client.updateDocument(request); 408 Assert.assertEquals(expectedResponse, actualResponse); 409 410 List<AbstractMessage> actualRequests = mockDocumentService.getRequests(); 411 Assert.assertEquals(1, actualRequests.size()); 412 UpdateDocumentRequest actualRequest = ((UpdateDocumentRequest) actualRequests.get(0)); 413 414 Assert.assertEquals(request.getDocument(), actualRequest.getDocument()); 415 Assert.assertEquals(request.getAllowMissing(), actualRequest.getAllowMissing()); 416 Assert.assertTrue( 417 channelProvider.isHeaderSent( 418 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 419 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 420 } 421 422 @Test updateDocumentExceptionTest()423 public void updateDocumentExceptionTest() throws Exception { 424 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 425 mockDocumentService.addException(exception); 426 427 try { 428 UpdateDocumentRequest request = 429 UpdateDocumentRequest.newBuilder() 430 .setDocument(Document.newBuilder().build()) 431 .setAllowMissing(true) 432 .build(); 433 client.updateDocument(request); 434 Assert.fail("No exception raised"); 435 } catch (InvalidArgumentException e) { 436 // Expected exception. 437 } 438 } 439 440 @Test deleteDocumentTest()441 public void deleteDocumentTest() throws Exception { 442 Empty expectedResponse = Empty.newBuilder().build(); 443 mockDocumentService.addResponse(expectedResponse); 444 445 DocumentName name = 446 DocumentName.ofProjectLocationDataStoreBranchDocumentName( 447 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]", "[DOCUMENT]"); 448 449 client.deleteDocument(name); 450 451 List<AbstractMessage> actualRequests = mockDocumentService.getRequests(); 452 Assert.assertEquals(1, actualRequests.size()); 453 DeleteDocumentRequest actualRequest = ((DeleteDocumentRequest) actualRequests.get(0)); 454 455 Assert.assertEquals(name.toString(), actualRequest.getName()); 456 Assert.assertTrue( 457 channelProvider.isHeaderSent( 458 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 459 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 460 } 461 462 @Test deleteDocumentExceptionTest()463 public void deleteDocumentExceptionTest() throws Exception { 464 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 465 mockDocumentService.addException(exception); 466 467 try { 468 DocumentName name = 469 DocumentName.ofProjectLocationDataStoreBranchDocumentName( 470 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]", "[DOCUMENT]"); 471 client.deleteDocument(name); 472 Assert.fail("No exception raised"); 473 } catch (InvalidArgumentException e) { 474 // Expected exception. 475 } 476 } 477 478 @Test deleteDocumentTest2()479 public void deleteDocumentTest2() throws Exception { 480 Empty expectedResponse = Empty.newBuilder().build(); 481 mockDocumentService.addResponse(expectedResponse); 482 483 String name = "name3373707"; 484 485 client.deleteDocument(name); 486 487 List<AbstractMessage> actualRequests = mockDocumentService.getRequests(); 488 Assert.assertEquals(1, actualRequests.size()); 489 DeleteDocumentRequest actualRequest = ((DeleteDocumentRequest) actualRequests.get(0)); 490 491 Assert.assertEquals(name, actualRequest.getName()); 492 Assert.assertTrue( 493 channelProvider.isHeaderSent( 494 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 495 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 496 } 497 498 @Test deleteDocumentExceptionTest2()499 public void deleteDocumentExceptionTest2() throws Exception { 500 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 501 mockDocumentService.addException(exception); 502 503 try { 504 String name = "name3373707"; 505 client.deleteDocument(name); 506 Assert.fail("No exception raised"); 507 } catch (InvalidArgumentException e) { 508 // Expected exception. 509 } 510 } 511 512 @Test importDocumentsTest()513 public void importDocumentsTest() throws Exception { 514 ImportDocumentsResponse expectedResponse = 515 ImportDocumentsResponse.newBuilder() 516 .addAllErrorSamples(new ArrayList<Status>()) 517 .setErrorConfig(ImportErrorConfig.newBuilder().build()) 518 .build(); 519 Operation resultOperation = 520 Operation.newBuilder() 521 .setName("importDocumentsTest") 522 .setDone(true) 523 .setResponse(Any.pack(expectedResponse)) 524 .build(); 525 mockDocumentService.addResponse(resultOperation); 526 527 ImportDocumentsRequest request = 528 ImportDocumentsRequest.newBuilder() 529 .setParent( 530 BranchName.ofProjectLocationDataStoreBranchName( 531 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]") 532 .toString()) 533 .setErrorConfig(ImportErrorConfig.newBuilder().build()) 534 .build(); 535 536 ImportDocumentsResponse actualResponse = client.importDocumentsAsync(request).get(); 537 Assert.assertEquals(expectedResponse, actualResponse); 538 539 List<AbstractMessage> actualRequests = mockDocumentService.getRequests(); 540 Assert.assertEquals(1, actualRequests.size()); 541 ImportDocumentsRequest actualRequest = ((ImportDocumentsRequest) actualRequests.get(0)); 542 543 Assert.assertEquals(request.getInlineSource(), actualRequest.getInlineSource()); 544 Assert.assertEquals(request.getGcsSource(), actualRequest.getGcsSource()); 545 Assert.assertEquals(request.getBigquerySource(), actualRequest.getBigquerySource()); 546 Assert.assertEquals(request.getParent(), actualRequest.getParent()); 547 Assert.assertEquals(request.getErrorConfig(), actualRequest.getErrorConfig()); 548 Assert.assertEquals(request.getReconciliationMode(), actualRequest.getReconciliationMode()); 549 Assert.assertTrue( 550 channelProvider.isHeaderSent( 551 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 552 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 553 } 554 555 @Test importDocumentsExceptionTest()556 public void importDocumentsExceptionTest() throws Exception { 557 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 558 mockDocumentService.addException(exception); 559 560 try { 561 ImportDocumentsRequest request = 562 ImportDocumentsRequest.newBuilder() 563 .setParent( 564 BranchName.ofProjectLocationDataStoreBranchName( 565 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]") 566 .toString()) 567 .setErrorConfig(ImportErrorConfig.newBuilder().build()) 568 .build(); 569 client.importDocumentsAsync(request).get(); 570 Assert.fail("No exception raised"); 571 } catch (ExecutionException e) { 572 Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); 573 InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); 574 Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); 575 } 576 } 577 578 @Test purgeDocumentsTest()579 public void purgeDocumentsTest() throws Exception { 580 PurgeDocumentsResponse expectedResponse = 581 PurgeDocumentsResponse.newBuilder() 582 .setPurgeCount(575305851) 583 .addAllPurgeSample(new ArrayList<String>()) 584 .build(); 585 Operation resultOperation = 586 Operation.newBuilder() 587 .setName("purgeDocumentsTest") 588 .setDone(true) 589 .setResponse(Any.pack(expectedResponse)) 590 .build(); 591 mockDocumentService.addResponse(resultOperation); 592 593 PurgeDocumentsRequest request = 594 PurgeDocumentsRequest.newBuilder() 595 .setParent( 596 BranchName.ofProjectLocationDataStoreBranchName( 597 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]") 598 .toString()) 599 .setFilter("filter-1274492040") 600 .setForce(true) 601 .build(); 602 603 PurgeDocumentsResponse actualResponse = client.purgeDocumentsAsync(request).get(); 604 Assert.assertEquals(expectedResponse, actualResponse); 605 606 List<AbstractMessage> actualRequests = mockDocumentService.getRequests(); 607 Assert.assertEquals(1, actualRequests.size()); 608 PurgeDocumentsRequest actualRequest = ((PurgeDocumentsRequest) actualRequests.get(0)); 609 610 Assert.assertEquals(request.getParent(), actualRequest.getParent()); 611 Assert.assertEquals(request.getFilter(), actualRequest.getFilter()); 612 Assert.assertEquals(request.getForce(), actualRequest.getForce()); 613 Assert.assertTrue( 614 channelProvider.isHeaderSent( 615 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 616 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 617 } 618 619 @Test purgeDocumentsExceptionTest()620 public void purgeDocumentsExceptionTest() throws Exception { 621 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 622 mockDocumentService.addException(exception); 623 624 try { 625 PurgeDocumentsRequest request = 626 PurgeDocumentsRequest.newBuilder() 627 .setParent( 628 BranchName.ofProjectLocationDataStoreBranchName( 629 "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]") 630 .toString()) 631 .setFilter("filter-1274492040") 632 .setForce(true) 633 .build(); 634 client.purgeDocumentsAsync(request).get(); 635 Assert.fail("No exception raised"); 636 } catch (ExecutionException e) { 637 Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); 638 InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); 639 Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); 640 } 641 } 642 } 643