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.functions.v2beta; 18 19 import static com.google.cloud.functions.v2beta.FunctionServiceClient.ListFunctionsPagedResponse; 20 import static com.google.cloud.functions.v2beta.FunctionServiceClient.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.ListLocationsRequest; 31 import com.google.cloud.location.ListLocationsResponse; 32 import com.google.cloud.location.Location; 33 import com.google.common.collect.Lists; 34 import com.google.iam.v1.AuditConfig; 35 import com.google.iam.v1.Binding; 36 import com.google.iam.v1.GetIamPolicyRequest; 37 import com.google.iam.v1.GetPolicyOptions; 38 import com.google.iam.v1.Policy; 39 import com.google.iam.v1.SetIamPolicyRequest; 40 import com.google.iam.v1.TestIamPermissionsRequest; 41 import com.google.iam.v1.TestIamPermissionsResponse; 42 import com.google.longrunning.Operation; 43 import com.google.protobuf.AbstractMessage; 44 import com.google.protobuf.Any; 45 import com.google.protobuf.ByteString; 46 import com.google.protobuf.Empty; 47 import com.google.protobuf.FieldMask; 48 import com.google.protobuf.Timestamp; 49 import io.grpc.StatusRuntimeException; 50 import java.io.IOException; 51 import java.util.ArrayList; 52 import java.util.Arrays; 53 import java.util.HashMap; 54 import java.util.List; 55 import java.util.UUID; 56 import java.util.concurrent.ExecutionException; 57 import javax.annotation.Generated; 58 import org.junit.After; 59 import org.junit.AfterClass; 60 import org.junit.Assert; 61 import org.junit.Before; 62 import org.junit.BeforeClass; 63 import org.junit.Test; 64 65 @Generated("by gapic-generator-java") 66 public class FunctionServiceClientTest { 67 private static MockFunctionService mockFunctionService; 68 private static MockIAMPolicy mockIAMPolicy; 69 private static MockLocations mockLocations; 70 private static MockServiceHelper mockServiceHelper; 71 private LocalChannelProvider channelProvider; 72 private FunctionServiceClient client; 73 74 @BeforeClass startStaticServer()75 public static void startStaticServer() { 76 mockFunctionService = new MockFunctionService(); 77 mockLocations = new MockLocations(); 78 mockIAMPolicy = new MockIAMPolicy(); 79 mockServiceHelper = 80 new MockServiceHelper( 81 UUID.randomUUID().toString(), 82 Arrays.<MockGrpcService>asList(mockFunctionService, mockLocations, mockIAMPolicy)); 83 mockServiceHelper.start(); 84 } 85 86 @AfterClass stopServer()87 public static void stopServer() { 88 mockServiceHelper.stop(); 89 } 90 91 @Before setUp()92 public void setUp() throws IOException { 93 mockServiceHelper.reset(); 94 channelProvider = mockServiceHelper.createChannelProvider(); 95 FunctionServiceSettings settings = 96 FunctionServiceSettings.newBuilder() 97 .setTransportChannelProvider(channelProvider) 98 .setCredentialsProvider(NoCredentialsProvider.create()) 99 .build(); 100 client = FunctionServiceClient.create(settings); 101 } 102 103 @After tearDown()104 public void tearDown() throws Exception { 105 client.close(); 106 } 107 108 @Test getFunctionTest()109 public void getFunctionTest() throws Exception { 110 Function expectedResponse = 111 Function.newBuilder() 112 .setName(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 113 .setEnvironment(Environment.forNumber(0)) 114 .setDescription("description-1724546052") 115 .setBuildConfig(BuildConfig.newBuilder().build()) 116 .setServiceConfig(ServiceConfig.newBuilder().build()) 117 .setEventTrigger(EventTrigger.newBuilder().build()) 118 .setUpdateTime(Timestamp.newBuilder().build()) 119 .putAllLabels(new HashMap<String, String>()) 120 .addAllStateMessages(new ArrayList<StateMessage>()) 121 .build(); 122 mockFunctionService.addResponse(expectedResponse); 123 124 FunctionName name = FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]"); 125 126 Function actualResponse = client.getFunction(name); 127 Assert.assertEquals(expectedResponse, actualResponse); 128 129 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 130 Assert.assertEquals(1, actualRequests.size()); 131 GetFunctionRequest actualRequest = ((GetFunctionRequest) actualRequests.get(0)); 132 133 Assert.assertEquals(name.toString(), actualRequest.getName()); 134 Assert.assertTrue( 135 channelProvider.isHeaderSent( 136 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 137 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 138 } 139 140 @Test getFunctionExceptionTest()141 public void getFunctionExceptionTest() throws Exception { 142 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 143 mockFunctionService.addException(exception); 144 145 try { 146 FunctionName name = FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]"); 147 client.getFunction(name); 148 Assert.fail("No exception raised"); 149 } catch (InvalidArgumentException e) { 150 // Expected exception. 151 } 152 } 153 154 @Test getFunctionTest2()155 public void getFunctionTest2() throws Exception { 156 Function expectedResponse = 157 Function.newBuilder() 158 .setName(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 159 .setEnvironment(Environment.forNumber(0)) 160 .setDescription("description-1724546052") 161 .setBuildConfig(BuildConfig.newBuilder().build()) 162 .setServiceConfig(ServiceConfig.newBuilder().build()) 163 .setEventTrigger(EventTrigger.newBuilder().build()) 164 .setUpdateTime(Timestamp.newBuilder().build()) 165 .putAllLabels(new HashMap<String, String>()) 166 .addAllStateMessages(new ArrayList<StateMessage>()) 167 .build(); 168 mockFunctionService.addResponse(expectedResponse); 169 170 String name = "name3373707"; 171 172 Function actualResponse = client.getFunction(name); 173 Assert.assertEquals(expectedResponse, actualResponse); 174 175 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 176 Assert.assertEquals(1, actualRequests.size()); 177 GetFunctionRequest actualRequest = ((GetFunctionRequest) actualRequests.get(0)); 178 179 Assert.assertEquals(name, actualRequest.getName()); 180 Assert.assertTrue( 181 channelProvider.isHeaderSent( 182 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 183 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 184 } 185 186 @Test getFunctionExceptionTest2()187 public void getFunctionExceptionTest2() throws Exception { 188 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 189 mockFunctionService.addException(exception); 190 191 try { 192 String name = "name3373707"; 193 client.getFunction(name); 194 Assert.fail("No exception raised"); 195 } catch (InvalidArgumentException e) { 196 // Expected exception. 197 } 198 } 199 200 @Test listFunctionsTest()201 public void listFunctionsTest() throws Exception { 202 Function responsesElement = Function.newBuilder().build(); 203 ListFunctionsResponse expectedResponse = 204 ListFunctionsResponse.newBuilder() 205 .setNextPageToken("") 206 .addAllFunctions(Arrays.asList(responsesElement)) 207 .build(); 208 mockFunctionService.addResponse(expectedResponse); 209 210 LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]"); 211 212 ListFunctionsPagedResponse pagedListResponse = client.listFunctions(parent); 213 214 List<Function> resources = Lists.newArrayList(pagedListResponse.iterateAll()); 215 216 Assert.assertEquals(1, resources.size()); 217 Assert.assertEquals(expectedResponse.getFunctionsList().get(0), resources.get(0)); 218 219 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 220 Assert.assertEquals(1, actualRequests.size()); 221 ListFunctionsRequest actualRequest = ((ListFunctionsRequest) actualRequests.get(0)); 222 223 Assert.assertEquals(parent.toString(), actualRequest.getParent()); 224 Assert.assertTrue( 225 channelProvider.isHeaderSent( 226 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 227 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 228 } 229 230 @Test listFunctionsExceptionTest()231 public void listFunctionsExceptionTest() throws Exception { 232 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 233 mockFunctionService.addException(exception); 234 235 try { 236 LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]"); 237 client.listFunctions(parent); 238 Assert.fail("No exception raised"); 239 } catch (InvalidArgumentException e) { 240 // Expected exception. 241 } 242 } 243 244 @Test listFunctionsTest2()245 public void listFunctionsTest2() throws Exception { 246 Function responsesElement = Function.newBuilder().build(); 247 ListFunctionsResponse expectedResponse = 248 ListFunctionsResponse.newBuilder() 249 .setNextPageToken("") 250 .addAllFunctions(Arrays.asList(responsesElement)) 251 .build(); 252 mockFunctionService.addResponse(expectedResponse); 253 254 String parent = "parent-995424086"; 255 256 ListFunctionsPagedResponse pagedListResponse = client.listFunctions(parent); 257 258 List<Function> resources = Lists.newArrayList(pagedListResponse.iterateAll()); 259 260 Assert.assertEquals(1, resources.size()); 261 Assert.assertEquals(expectedResponse.getFunctionsList().get(0), resources.get(0)); 262 263 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 264 Assert.assertEquals(1, actualRequests.size()); 265 ListFunctionsRequest actualRequest = ((ListFunctionsRequest) actualRequests.get(0)); 266 267 Assert.assertEquals(parent, actualRequest.getParent()); 268 Assert.assertTrue( 269 channelProvider.isHeaderSent( 270 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 271 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 272 } 273 274 @Test listFunctionsExceptionTest2()275 public void listFunctionsExceptionTest2() throws Exception { 276 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 277 mockFunctionService.addException(exception); 278 279 try { 280 String parent = "parent-995424086"; 281 client.listFunctions(parent); 282 Assert.fail("No exception raised"); 283 } catch (InvalidArgumentException e) { 284 // Expected exception. 285 } 286 } 287 288 @Test createFunctionTest()289 public void createFunctionTest() throws Exception { 290 Function expectedResponse = 291 Function.newBuilder() 292 .setName(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 293 .setEnvironment(Environment.forNumber(0)) 294 .setDescription("description-1724546052") 295 .setBuildConfig(BuildConfig.newBuilder().build()) 296 .setServiceConfig(ServiceConfig.newBuilder().build()) 297 .setEventTrigger(EventTrigger.newBuilder().build()) 298 .setUpdateTime(Timestamp.newBuilder().build()) 299 .putAllLabels(new HashMap<String, String>()) 300 .addAllStateMessages(new ArrayList<StateMessage>()) 301 .build(); 302 Operation resultOperation = 303 Operation.newBuilder() 304 .setName("createFunctionTest") 305 .setDone(true) 306 .setResponse(Any.pack(expectedResponse)) 307 .build(); 308 mockFunctionService.addResponse(resultOperation); 309 310 LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]"); 311 Function function = Function.newBuilder().build(); 312 String functionId = "functionId-62789869"; 313 314 Function actualResponse = client.createFunctionAsync(parent, function, functionId).get(); 315 Assert.assertEquals(expectedResponse, actualResponse); 316 317 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 318 Assert.assertEquals(1, actualRequests.size()); 319 CreateFunctionRequest actualRequest = ((CreateFunctionRequest) actualRequests.get(0)); 320 321 Assert.assertEquals(parent.toString(), actualRequest.getParent()); 322 Assert.assertEquals(function, actualRequest.getFunction()); 323 Assert.assertEquals(functionId, actualRequest.getFunctionId()); 324 Assert.assertTrue( 325 channelProvider.isHeaderSent( 326 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 327 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 328 } 329 330 @Test createFunctionExceptionTest()331 public void createFunctionExceptionTest() throws Exception { 332 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 333 mockFunctionService.addException(exception); 334 335 try { 336 LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]"); 337 Function function = Function.newBuilder().build(); 338 String functionId = "functionId-62789869"; 339 client.createFunctionAsync(parent, function, functionId).get(); 340 Assert.fail("No exception raised"); 341 } catch (ExecutionException e) { 342 Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); 343 InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); 344 Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); 345 } 346 } 347 348 @Test createFunctionTest2()349 public void createFunctionTest2() throws Exception { 350 Function expectedResponse = 351 Function.newBuilder() 352 .setName(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 353 .setEnvironment(Environment.forNumber(0)) 354 .setDescription("description-1724546052") 355 .setBuildConfig(BuildConfig.newBuilder().build()) 356 .setServiceConfig(ServiceConfig.newBuilder().build()) 357 .setEventTrigger(EventTrigger.newBuilder().build()) 358 .setUpdateTime(Timestamp.newBuilder().build()) 359 .putAllLabels(new HashMap<String, String>()) 360 .addAllStateMessages(new ArrayList<StateMessage>()) 361 .build(); 362 Operation resultOperation = 363 Operation.newBuilder() 364 .setName("createFunctionTest") 365 .setDone(true) 366 .setResponse(Any.pack(expectedResponse)) 367 .build(); 368 mockFunctionService.addResponse(resultOperation); 369 370 String parent = "parent-995424086"; 371 Function function = Function.newBuilder().build(); 372 String functionId = "functionId-62789869"; 373 374 Function actualResponse = client.createFunctionAsync(parent, function, functionId).get(); 375 Assert.assertEquals(expectedResponse, actualResponse); 376 377 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 378 Assert.assertEquals(1, actualRequests.size()); 379 CreateFunctionRequest actualRequest = ((CreateFunctionRequest) actualRequests.get(0)); 380 381 Assert.assertEquals(parent, actualRequest.getParent()); 382 Assert.assertEquals(function, actualRequest.getFunction()); 383 Assert.assertEquals(functionId, actualRequest.getFunctionId()); 384 Assert.assertTrue( 385 channelProvider.isHeaderSent( 386 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 387 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 388 } 389 390 @Test createFunctionExceptionTest2()391 public void createFunctionExceptionTest2() throws Exception { 392 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 393 mockFunctionService.addException(exception); 394 395 try { 396 String parent = "parent-995424086"; 397 Function function = Function.newBuilder().build(); 398 String functionId = "functionId-62789869"; 399 client.createFunctionAsync(parent, function, functionId).get(); 400 Assert.fail("No exception raised"); 401 } catch (ExecutionException e) { 402 Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); 403 InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); 404 Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); 405 } 406 } 407 408 @Test updateFunctionTest()409 public void updateFunctionTest() throws Exception { 410 Function expectedResponse = 411 Function.newBuilder() 412 .setName(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 413 .setEnvironment(Environment.forNumber(0)) 414 .setDescription("description-1724546052") 415 .setBuildConfig(BuildConfig.newBuilder().build()) 416 .setServiceConfig(ServiceConfig.newBuilder().build()) 417 .setEventTrigger(EventTrigger.newBuilder().build()) 418 .setUpdateTime(Timestamp.newBuilder().build()) 419 .putAllLabels(new HashMap<String, String>()) 420 .addAllStateMessages(new ArrayList<StateMessage>()) 421 .build(); 422 Operation resultOperation = 423 Operation.newBuilder() 424 .setName("updateFunctionTest") 425 .setDone(true) 426 .setResponse(Any.pack(expectedResponse)) 427 .build(); 428 mockFunctionService.addResponse(resultOperation); 429 430 Function function = Function.newBuilder().build(); 431 FieldMask updateMask = FieldMask.newBuilder().build(); 432 433 Function actualResponse = client.updateFunctionAsync(function, updateMask).get(); 434 Assert.assertEquals(expectedResponse, actualResponse); 435 436 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 437 Assert.assertEquals(1, actualRequests.size()); 438 UpdateFunctionRequest actualRequest = ((UpdateFunctionRequest) actualRequests.get(0)); 439 440 Assert.assertEquals(function, actualRequest.getFunction()); 441 Assert.assertEquals(updateMask, actualRequest.getUpdateMask()); 442 Assert.assertTrue( 443 channelProvider.isHeaderSent( 444 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 445 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 446 } 447 448 @Test updateFunctionExceptionTest()449 public void updateFunctionExceptionTest() throws Exception { 450 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 451 mockFunctionService.addException(exception); 452 453 try { 454 Function function = Function.newBuilder().build(); 455 FieldMask updateMask = FieldMask.newBuilder().build(); 456 client.updateFunctionAsync(function, updateMask).get(); 457 Assert.fail("No exception raised"); 458 } catch (ExecutionException e) { 459 Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); 460 InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); 461 Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); 462 } 463 } 464 465 @Test deleteFunctionTest()466 public void deleteFunctionTest() throws Exception { 467 Empty expectedResponse = Empty.newBuilder().build(); 468 Operation resultOperation = 469 Operation.newBuilder() 470 .setName("deleteFunctionTest") 471 .setDone(true) 472 .setResponse(Any.pack(expectedResponse)) 473 .build(); 474 mockFunctionService.addResponse(resultOperation); 475 476 FunctionName name = FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]"); 477 478 client.deleteFunctionAsync(name).get(); 479 480 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 481 Assert.assertEquals(1, actualRequests.size()); 482 DeleteFunctionRequest actualRequest = ((DeleteFunctionRequest) actualRequests.get(0)); 483 484 Assert.assertEquals(name.toString(), actualRequest.getName()); 485 Assert.assertTrue( 486 channelProvider.isHeaderSent( 487 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 488 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 489 } 490 491 @Test deleteFunctionExceptionTest()492 public void deleteFunctionExceptionTest() throws Exception { 493 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 494 mockFunctionService.addException(exception); 495 496 try { 497 FunctionName name = FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]"); 498 client.deleteFunctionAsync(name).get(); 499 Assert.fail("No exception raised"); 500 } catch (ExecutionException e) { 501 Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); 502 InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); 503 Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); 504 } 505 } 506 507 @Test deleteFunctionTest2()508 public void deleteFunctionTest2() throws Exception { 509 Empty expectedResponse = Empty.newBuilder().build(); 510 Operation resultOperation = 511 Operation.newBuilder() 512 .setName("deleteFunctionTest") 513 .setDone(true) 514 .setResponse(Any.pack(expectedResponse)) 515 .build(); 516 mockFunctionService.addResponse(resultOperation); 517 518 String name = "name3373707"; 519 520 client.deleteFunctionAsync(name).get(); 521 522 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 523 Assert.assertEquals(1, actualRequests.size()); 524 DeleteFunctionRequest actualRequest = ((DeleteFunctionRequest) actualRequests.get(0)); 525 526 Assert.assertEquals(name, actualRequest.getName()); 527 Assert.assertTrue( 528 channelProvider.isHeaderSent( 529 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 530 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 531 } 532 533 @Test deleteFunctionExceptionTest2()534 public void deleteFunctionExceptionTest2() throws Exception { 535 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 536 mockFunctionService.addException(exception); 537 538 try { 539 String name = "name3373707"; 540 client.deleteFunctionAsync(name).get(); 541 Assert.fail("No exception raised"); 542 } catch (ExecutionException e) { 543 Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass()); 544 InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); 545 Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); 546 } 547 } 548 549 @Test generateUploadUrlTest()550 public void generateUploadUrlTest() throws Exception { 551 GenerateUploadUrlResponse expectedResponse = 552 GenerateUploadUrlResponse.newBuilder() 553 .setUploadUrl("uploadUrl1239085998") 554 .setStorageSource(StorageSource.newBuilder().build()) 555 .build(); 556 mockFunctionService.addResponse(expectedResponse); 557 558 GenerateUploadUrlRequest request = 559 GenerateUploadUrlRequest.newBuilder() 560 .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString()) 561 .build(); 562 563 GenerateUploadUrlResponse actualResponse = client.generateUploadUrl(request); 564 Assert.assertEquals(expectedResponse, actualResponse); 565 566 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 567 Assert.assertEquals(1, actualRequests.size()); 568 GenerateUploadUrlRequest actualRequest = ((GenerateUploadUrlRequest) actualRequests.get(0)); 569 570 Assert.assertEquals(request.getParent(), actualRequest.getParent()); 571 Assert.assertTrue( 572 channelProvider.isHeaderSent( 573 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 574 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 575 } 576 577 @Test generateUploadUrlExceptionTest()578 public void generateUploadUrlExceptionTest() throws Exception { 579 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 580 mockFunctionService.addException(exception); 581 582 try { 583 GenerateUploadUrlRequest request = 584 GenerateUploadUrlRequest.newBuilder() 585 .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString()) 586 .build(); 587 client.generateUploadUrl(request); 588 Assert.fail("No exception raised"); 589 } catch (InvalidArgumentException e) { 590 // Expected exception. 591 } 592 } 593 594 @Test generateDownloadUrlTest()595 public void generateDownloadUrlTest() throws Exception { 596 GenerateDownloadUrlResponse expectedResponse = 597 GenerateDownloadUrlResponse.newBuilder().setDownloadUrl("downloadUrl-1211148345").build(); 598 mockFunctionService.addResponse(expectedResponse); 599 600 GenerateDownloadUrlRequest request = 601 GenerateDownloadUrlRequest.newBuilder() 602 .setName(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 603 .build(); 604 605 GenerateDownloadUrlResponse actualResponse = client.generateDownloadUrl(request); 606 Assert.assertEquals(expectedResponse, actualResponse); 607 608 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 609 Assert.assertEquals(1, actualRequests.size()); 610 GenerateDownloadUrlRequest actualRequest = ((GenerateDownloadUrlRequest) actualRequests.get(0)); 611 612 Assert.assertEquals(request.getName(), actualRequest.getName()); 613 Assert.assertTrue( 614 channelProvider.isHeaderSent( 615 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 616 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 617 } 618 619 @Test generateDownloadUrlExceptionTest()620 public void generateDownloadUrlExceptionTest() throws Exception { 621 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 622 mockFunctionService.addException(exception); 623 624 try { 625 GenerateDownloadUrlRequest request = 626 GenerateDownloadUrlRequest.newBuilder() 627 .setName(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 628 .build(); 629 client.generateDownloadUrl(request); 630 Assert.fail("No exception raised"); 631 } catch (InvalidArgumentException e) { 632 // Expected exception. 633 } 634 } 635 636 @Test listRuntimesTest()637 public void listRuntimesTest() throws Exception { 638 ListRuntimesResponse expectedResponse = 639 ListRuntimesResponse.newBuilder() 640 .addAllRuntimes(new ArrayList<ListRuntimesResponse.Runtime>()) 641 .build(); 642 mockFunctionService.addResponse(expectedResponse); 643 644 LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]"); 645 646 ListRuntimesResponse actualResponse = client.listRuntimes(parent); 647 Assert.assertEquals(expectedResponse, actualResponse); 648 649 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 650 Assert.assertEquals(1, actualRequests.size()); 651 ListRuntimesRequest actualRequest = ((ListRuntimesRequest) actualRequests.get(0)); 652 653 Assert.assertEquals(parent.toString(), actualRequest.getParent()); 654 Assert.assertTrue( 655 channelProvider.isHeaderSent( 656 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 657 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 658 } 659 660 @Test listRuntimesExceptionTest()661 public void listRuntimesExceptionTest() throws Exception { 662 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 663 mockFunctionService.addException(exception); 664 665 try { 666 LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]"); 667 client.listRuntimes(parent); 668 Assert.fail("No exception raised"); 669 } catch (InvalidArgumentException e) { 670 // Expected exception. 671 } 672 } 673 674 @Test listRuntimesTest2()675 public void listRuntimesTest2() throws Exception { 676 ListRuntimesResponse expectedResponse = 677 ListRuntimesResponse.newBuilder() 678 .addAllRuntimes(new ArrayList<ListRuntimesResponse.Runtime>()) 679 .build(); 680 mockFunctionService.addResponse(expectedResponse); 681 682 String parent = "parent-995424086"; 683 684 ListRuntimesResponse actualResponse = client.listRuntimes(parent); 685 Assert.assertEquals(expectedResponse, actualResponse); 686 687 List<AbstractMessage> actualRequests = mockFunctionService.getRequests(); 688 Assert.assertEquals(1, actualRequests.size()); 689 ListRuntimesRequest actualRequest = ((ListRuntimesRequest) actualRequests.get(0)); 690 691 Assert.assertEquals(parent, actualRequest.getParent()); 692 Assert.assertTrue( 693 channelProvider.isHeaderSent( 694 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 695 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 696 } 697 698 @Test listRuntimesExceptionTest2()699 public void listRuntimesExceptionTest2() throws Exception { 700 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 701 mockFunctionService.addException(exception); 702 703 try { 704 String parent = "parent-995424086"; 705 client.listRuntimes(parent); 706 Assert.fail("No exception raised"); 707 } catch (InvalidArgumentException e) { 708 // Expected exception. 709 } 710 } 711 712 @Test listLocationsTest()713 public void listLocationsTest() throws Exception { 714 Location responsesElement = Location.newBuilder().build(); 715 ListLocationsResponse expectedResponse = 716 ListLocationsResponse.newBuilder() 717 .setNextPageToken("") 718 .addAllLocations(Arrays.asList(responsesElement)) 719 .build(); 720 mockLocations.addResponse(expectedResponse); 721 722 ListLocationsRequest request = 723 ListLocationsRequest.newBuilder() 724 .setName("name3373707") 725 .setFilter("filter-1274492040") 726 .setPageSize(883849137) 727 .setPageToken("pageToken873572522") 728 .build(); 729 730 ListLocationsPagedResponse pagedListResponse = client.listLocations(request); 731 732 List<Location> resources = Lists.newArrayList(pagedListResponse.iterateAll()); 733 734 Assert.assertEquals(1, resources.size()); 735 Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0)); 736 737 List<AbstractMessage> actualRequests = mockLocations.getRequests(); 738 Assert.assertEquals(1, actualRequests.size()); 739 ListLocationsRequest actualRequest = ((ListLocationsRequest) actualRequests.get(0)); 740 741 Assert.assertEquals(request.getName(), actualRequest.getName()); 742 Assert.assertEquals(request.getFilter(), actualRequest.getFilter()); 743 Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize()); 744 Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken()); 745 Assert.assertTrue( 746 channelProvider.isHeaderSent( 747 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 748 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 749 } 750 751 @Test listLocationsExceptionTest()752 public void listLocationsExceptionTest() throws Exception { 753 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 754 mockLocations.addException(exception); 755 756 try { 757 ListLocationsRequest request = 758 ListLocationsRequest.newBuilder() 759 .setName("name3373707") 760 .setFilter("filter-1274492040") 761 .setPageSize(883849137) 762 .setPageToken("pageToken873572522") 763 .build(); 764 client.listLocations(request); 765 Assert.fail("No exception raised"); 766 } catch (InvalidArgumentException e) { 767 // Expected exception. 768 } 769 } 770 771 @Test setIamPolicyTest()772 public void setIamPolicyTest() throws Exception { 773 Policy expectedResponse = 774 Policy.newBuilder() 775 .setVersion(351608024) 776 .addAllBindings(new ArrayList<Binding>()) 777 .addAllAuditConfigs(new ArrayList<AuditConfig>()) 778 .setEtag(ByteString.EMPTY) 779 .build(); 780 mockIAMPolicy.addResponse(expectedResponse); 781 782 SetIamPolicyRequest request = 783 SetIamPolicyRequest.newBuilder() 784 .setResource(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 785 .setPolicy(Policy.newBuilder().build()) 786 .setUpdateMask(FieldMask.newBuilder().build()) 787 .build(); 788 789 Policy actualResponse = client.setIamPolicy(request); 790 Assert.assertEquals(expectedResponse, actualResponse); 791 792 List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests(); 793 Assert.assertEquals(1, actualRequests.size()); 794 SetIamPolicyRequest actualRequest = ((SetIamPolicyRequest) actualRequests.get(0)); 795 796 Assert.assertEquals(request.getResource(), actualRequest.getResource()); 797 Assert.assertEquals(request.getPolicy(), actualRequest.getPolicy()); 798 Assert.assertEquals(request.getUpdateMask(), actualRequest.getUpdateMask()); 799 Assert.assertTrue( 800 channelProvider.isHeaderSent( 801 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 802 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 803 } 804 805 @Test setIamPolicyExceptionTest()806 public void setIamPolicyExceptionTest() throws Exception { 807 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 808 mockIAMPolicy.addException(exception); 809 810 try { 811 SetIamPolicyRequest request = 812 SetIamPolicyRequest.newBuilder() 813 .setResource(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 814 .setPolicy(Policy.newBuilder().build()) 815 .setUpdateMask(FieldMask.newBuilder().build()) 816 .build(); 817 client.setIamPolicy(request); 818 Assert.fail("No exception raised"); 819 } catch (InvalidArgumentException e) { 820 // Expected exception. 821 } 822 } 823 824 @Test getIamPolicyTest()825 public void getIamPolicyTest() throws Exception { 826 Policy expectedResponse = 827 Policy.newBuilder() 828 .setVersion(351608024) 829 .addAllBindings(new ArrayList<Binding>()) 830 .addAllAuditConfigs(new ArrayList<AuditConfig>()) 831 .setEtag(ByteString.EMPTY) 832 .build(); 833 mockIAMPolicy.addResponse(expectedResponse); 834 835 GetIamPolicyRequest request = 836 GetIamPolicyRequest.newBuilder() 837 .setResource(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 838 .setOptions(GetPolicyOptions.newBuilder().build()) 839 .build(); 840 841 Policy actualResponse = client.getIamPolicy(request); 842 Assert.assertEquals(expectedResponse, actualResponse); 843 844 List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests(); 845 Assert.assertEquals(1, actualRequests.size()); 846 GetIamPolicyRequest actualRequest = ((GetIamPolicyRequest) actualRequests.get(0)); 847 848 Assert.assertEquals(request.getResource(), actualRequest.getResource()); 849 Assert.assertEquals(request.getOptions(), actualRequest.getOptions()); 850 Assert.assertTrue( 851 channelProvider.isHeaderSent( 852 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 853 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 854 } 855 856 @Test getIamPolicyExceptionTest()857 public void getIamPolicyExceptionTest() throws Exception { 858 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 859 mockIAMPolicy.addException(exception); 860 861 try { 862 GetIamPolicyRequest request = 863 GetIamPolicyRequest.newBuilder() 864 .setResource(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 865 .setOptions(GetPolicyOptions.newBuilder().build()) 866 .build(); 867 client.getIamPolicy(request); 868 Assert.fail("No exception raised"); 869 } catch (InvalidArgumentException e) { 870 // Expected exception. 871 } 872 } 873 874 @Test testIamPermissionsTest()875 public void testIamPermissionsTest() throws Exception { 876 TestIamPermissionsResponse expectedResponse = 877 TestIamPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build(); 878 mockIAMPolicy.addResponse(expectedResponse); 879 880 TestIamPermissionsRequest request = 881 TestIamPermissionsRequest.newBuilder() 882 .setResource(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 883 .addAllPermissions(new ArrayList<String>()) 884 .build(); 885 886 TestIamPermissionsResponse actualResponse = client.testIamPermissions(request); 887 Assert.assertEquals(expectedResponse, actualResponse); 888 889 List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests(); 890 Assert.assertEquals(1, actualRequests.size()); 891 TestIamPermissionsRequest actualRequest = ((TestIamPermissionsRequest) actualRequests.get(0)); 892 893 Assert.assertEquals(request.getResource(), actualRequest.getResource()); 894 Assert.assertEquals(request.getPermissionsList(), actualRequest.getPermissionsList()); 895 Assert.assertTrue( 896 channelProvider.isHeaderSent( 897 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 898 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 899 } 900 901 @Test testIamPermissionsExceptionTest()902 public void testIamPermissionsExceptionTest() throws Exception { 903 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 904 mockIAMPolicy.addException(exception); 905 906 try { 907 TestIamPermissionsRequest request = 908 TestIamPermissionsRequest.newBuilder() 909 .setResource(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString()) 910 .addAllPermissions(new ArrayList<String>()) 911 .build(); 912 client.testIamPermissions(request); 913 Assert.fail("No exception raised"); 914 } catch (InvalidArgumentException e) { 915 // Expected exception. 916 } 917 } 918 } 919