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.compute.v1; 18 19 import static com.google.cloud.compute.v1.ResourcePoliciesClient.AggregatedListPagedResponse; 20 import static com.google.cloud.compute.v1.ResourcePoliciesClient.ListPagedResponse; 21 22 import com.google.api.gax.core.NoCredentialsProvider; 23 import com.google.api.gax.httpjson.GaxHttpJsonProperties; 24 import com.google.api.gax.httpjson.testing.MockHttpService; 25 import com.google.api.gax.rpc.ApiClientHeaderProvider; 26 import com.google.api.gax.rpc.ApiException; 27 import com.google.api.gax.rpc.ApiExceptionFactory; 28 import com.google.api.gax.rpc.InvalidArgumentException; 29 import com.google.api.gax.rpc.StatusCode; 30 import com.google.api.gax.rpc.testing.FakeStatusCode; 31 import com.google.cloud.compute.v1.Operation.Status; 32 import com.google.cloud.compute.v1.stub.HttpJsonResourcePoliciesStub; 33 import com.google.common.collect.Lists; 34 import java.io.IOException; 35 import java.util.ArrayList; 36 import java.util.Arrays; 37 import java.util.Collections; 38 import java.util.List; 39 import java.util.Map; 40 import java.util.concurrent.ExecutionException; 41 import javax.annotation.Generated; 42 import org.junit.After; 43 import org.junit.AfterClass; 44 import org.junit.Assert; 45 import org.junit.Before; 46 import org.junit.BeforeClass; 47 import org.junit.Test; 48 49 @Generated("by gapic-generator-java") 50 public class ResourcePoliciesClientTest { 51 private static MockHttpService mockService; 52 private static ResourcePoliciesClient client; 53 54 @BeforeClass startStaticServer()55 public static void startStaticServer() throws IOException { 56 mockService = 57 new MockHttpService( 58 HttpJsonResourcePoliciesStub.getMethodDescriptors(), 59 ResourcePoliciesSettings.getDefaultEndpoint()); 60 ResourcePoliciesSettings settings = 61 ResourcePoliciesSettings.newBuilder() 62 .setTransportChannelProvider( 63 ResourcePoliciesSettings.defaultHttpJsonTransportProviderBuilder() 64 .setHttpTransport(mockService) 65 .build()) 66 .setCredentialsProvider(NoCredentialsProvider.create()) 67 .build(); 68 client = ResourcePoliciesClient.create(settings); 69 } 70 71 @AfterClass stopServer()72 public static void stopServer() { 73 client.close(); 74 } 75 76 @Before setUp()77 public void setUp() {} 78 79 @After tearDown()80 public void tearDown() throws Exception { 81 mockService.reset(); 82 } 83 84 @Test aggregatedListTest()85 public void aggregatedListTest() throws Exception { 86 ResourcePoliciesScopedList responsesElement = ResourcePoliciesScopedList.newBuilder().build(); 87 ResourcePolicyAggregatedList expectedResponse = 88 ResourcePolicyAggregatedList.newBuilder() 89 .setNextPageToken("") 90 .putAllItems(Collections.singletonMap("items", responsesElement)) 91 .build(); 92 mockService.addResponse(expectedResponse); 93 94 String project = "project-6911"; 95 96 AggregatedListPagedResponse pagedListResponse = client.aggregatedList(project); 97 98 List<Map.Entry<String, ResourcePoliciesScopedList>> resources = 99 Lists.newArrayList(pagedListResponse.iterateAll()); 100 101 Assert.assertEquals(1, resources.size()); 102 Assert.assertEquals( 103 expectedResponse.getItemsMap().entrySet().iterator().next(), resources.get(0)); 104 105 List<String> actualRequests = mockService.getRequestPaths(); 106 Assert.assertEquals(1, actualRequests.size()); 107 108 String apiClientHeaderKey = 109 mockService 110 .getRequestHeaders() 111 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 112 .iterator() 113 .next(); 114 Assert.assertTrue( 115 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 116 .matcher(apiClientHeaderKey) 117 .matches()); 118 } 119 120 @Test aggregatedListExceptionTest()121 public void aggregatedListExceptionTest() throws Exception { 122 ApiException exception = 123 ApiExceptionFactory.createException( 124 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 125 mockService.addException(exception); 126 127 try { 128 String project = "project-6911"; 129 client.aggregatedList(project); 130 Assert.fail("No exception raised"); 131 } catch (InvalidArgumentException e) { 132 // Expected exception. 133 } 134 } 135 136 @Test deleteTest()137 public void deleteTest() throws Exception { 138 Operation expectedResponse = 139 Operation.newBuilder() 140 .setClientOperationId("clientOperationId-1230366697") 141 .setCreationTimestamp("creationTimestamp-370203401") 142 .setDescription("description-1724546052") 143 .setEndTime("endTime-1607243192") 144 .setError(Error.newBuilder().build()) 145 .setHttpErrorMessage("httpErrorMessage1577303431") 146 .setHttpErrorStatusCode(0) 147 .setId(3355) 148 .setInsertTime("insertTime966165798") 149 .setKind("kind3292052") 150 .setName("name3373707") 151 .setOperationGroupId("operationGroupId1716161683") 152 .setOperationType("operationType91999553") 153 .setProgress(-1001078227) 154 .setRegion("region-934795532") 155 .setSelfLink("selfLink1191800166") 156 .setStartTime("startTime-2129294769") 157 .setStatus(Status.DONE) 158 .setStatusMessage("statusMessage-958704715") 159 .setTargetId(-815576439) 160 .setTargetLink("targetLink486368555") 161 .setUser("user3599307") 162 .addAllWarnings(new ArrayList<Warnings>()) 163 .setZone("zone3744684") 164 .build(); 165 mockService.addResponse(expectedResponse); 166 167 String project = "project-6911"; 168 String region = "region-9622"; 169 String resourcePolicy = "resourcePolicy-4170"; 170 171 Operation actualResponse = client.deleteAsync(project, region, resourcePolicy).get(); 172 Assert.assertEquals(expectedResponse, actualResponse); 173 174 List<String> actualRequests = mockService.getRequestPaths(); 175 Assert.assertEquals(1, actualRequests.size()); 176 177 String apiClientHeaderKey = 178 mockService 179 .getRequestHeaders() 180 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 181 .iterator() 182 .next(); 183 Assert.assertTrue( 184 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 185 .matcher(apiClientHeaderKey) 186 .matches()); 187 } 188 189 @Test deleteExceptionTest()190 public void deleteExceptionTest() throws Exception { 191 ApiException exception = 192 ApiExceptionFactory.createException( 193 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 194 mockService.addException(exception); 195 196 try { 197 String project = "project-6911"; 198 String region = "region-9622"; 199 String resourcePolicy = "resourcePolicy-4170"; 200 client.deleteAsync(project, region, resourcePolicy).get(); 201 Assert.fail("No exception raised"); 202 } catch (ExecutionException e) { 203 } 204 } 205 206 @Test getTest()207 public void getTest() throws Exception { 208 ResourcePolicy expectedResponse = 209 ResourcePolicy.newBuilder() 210 .setCreationTimestamp("creationTimestamp-370203401") 211 .setDescription("description-1724546052") 212 .setGroupPlacementPolicy(ResourcePolicyGroupPlacementPolicy.newBuilder().build()) 213 .setId(3355) 214 .setInstanceSchedulePolicy(ResourcePolicyInstanceSchedulePolicy.newBuilder().build()) 215 .setKind("kind3292052") 216 .setName("name3373707") 217 .setRegion("region-934795532") 218 .setResourceStatus(ResourcePolicyResourceStatus.newBuilder().build()) 219 .setSelfLink("selfLink1191800166") 220 .setSnapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicy.newBuilder().build()) 221 .setStatus("status-892481550") 222 .build(); 223 mockService.addResponse(expectedResponse); 224 225 String project = "project-6911"; 226 String region = "region-9622"; 227 String resourcePolicy = "resourcePolicy-4170"; 228 229 ResourcePolicy actualResponse = client.get(project, region, resourcePolicy); 230 Assert.assertEquals(expectedResponse, actualResponse); 231 232 List<String> actualRequests = mockService.getRequestPaths(); 233 Assert.assertEquals(1, actualRequests.size()); 234 235 String apiClientHeaderKey = 236 mockService 237 .getRequestHeaders() 238 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 239 .iterator() 240 .next(); 241 Assert.assertTrue( 242 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 243 .matcher(apiClientHeaderKey) 244 .matches()); 245 } 246 247 @Test getExceptionTest()248 public void getExceptionTest() throws Exception { 249 ApiException exception = 250 ApiExceptionFactory.createException( 251 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 252 mockService.addException(exception); 253 254 try { 255 String project = "project-6911"; 256 String region = "region-9622"; 257 String resourcePolicy = "resourcePolicy-4170"; 258 client.get(project, region, resourcePolicy); 259 Assert.fail("No exception raised"); 260 } catch (InvalidArgumentException e) { 261 // Expected exception. 262 } 263 } 264 265 @Test getIamPolicyTest()266 public void getIamPolicyTest() throws Exception { 267 Policy expectedResponse = 268 Policy.newBuilder() 269 .addAllAuditConfigs(new ArrayList<AuditConfig>()) 270 .addAllBindings(new ArrayList<Binding>()) 271 .setEtag("etag3123477") 272 .setIamOwned(true) 273 .addAllRules(new ArrayList<Rule>()) 274 .setVersion(351608024) 275 .build(); 276 mockService.addResponse(expectedResponse); 277 278 String project = "project-6911"; 279 String region = "region-9622"; 280 String resource = "resource-756"; 281 282 Policy actualResponse = client.getIamPolicy(project, region, resource); 283 Assert.assertEquals(expectedResponse, actualResponse); 284 285 List<String> actualRequests = mockService.getRequestPaths(); 286 Assert.assertEquals(1, actualRequests.size()); 287 288 String apiClientHeaderKey = 289 mockService 290 .getRequestHeaders() 291 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 292 .iterator() 293 .next(); 294 Assert.assertTrue( 295 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 296 .matcher(apiClientHeaderKey) 297 .matches()); 298 } 299 300 @Test getIamPolicyExceptionTest()301 public void getIamPolicyExceptionTest() throws Exception { 302 ApiException exception = 303 ApiExceptionFactory.createException( 304 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 305 mockService.addException(exception); 306 307 try { 308 String project = "project-6911"; 309 String region = "region-9622"; 310 String resource = "resource-756"; 311 client.getIamPolicy(project, region, resource); 312 Assert.fail("No exception raised"); 313 } catch (InvalidArgumentException e) { 314 // Expected exception. 315 } 316 } 317 318 @Test insertTest()319 public void insertTest() throws Exception { 320 Operation expectedResponse = 321 Operation.newBuilder() 322 .setClientOperationId("clientOperationId-1230366697") 323 .setCreationTimestamp("creationTimestamp-370203401") 324 .setDescription("description-1724546052") 325 .setEndTime("endTime-1607243192") 326 .setError(Error.newBuilder().build()) 327 .setHttpErrorMessage("httpErrorMessage1577303431") 328 .setHttpErrorStatusCode(0) 329 .setId(3355) 330 .setInsertTime("insertTime966165798") 331 .setKind("kind3292052") 332 .setName("name3373707") 333 .setOperationGroupId("operationGroupId1716161683") 334 .setOperationType("operationType91999553") 335 .setProgress(-1001078227) 336 .setRegion("region-934795532") 337 .setSelfLink("selfLink1191800166") 338 .setStartTime("startTime-2129294769") 339 .setStatus(Status.DONE) 340 .setStatusMessage("statusMessage-958704715") 341 .setTargetId(-815576439) 342 .setTargetLink("targetLink486368555") 343 .setUser("user3599307") 344 .addAllWarnings(new ArrayList<Warnings>()) 345 .setZone("zone3744684") 346 .build(); 347 mockService.addResponse(expectedResponse); 348 349 String project = "project-6911"; 350 String region = "region-9622"; 351 ResourcePolicy resourcePolicyResource = ResourcePolicy.newBuilder().build(); 352 353 Operation actualResponse = client.insertAsync(project, region, resourcePolicyResource).get(); 354 Assert.assertEquals(expectedResponse, actualResponse); 355 356 List<String> actualRequests = mockService.getRequestPaths(); 357 Assert.assertEquals(1, actualRequests.size()); 358 359 String apiClientHeaderKey = 360 mockService 361 .getRequestHeaders() 362 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 363 .iterator() 364 .next(); 365 Assert.assertTrue( 366 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 367 .matcher(apiClientHeaderKey) 368 .matches()); 369 } 370 371 @Test insertExceptionTest()372 public void insertExceptionTest() throws Exception { 373 ApiException exception = 374 ApiExceptionFactory.createException( 375 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 376 mockService.addException(exception); 377 378 try { 379 String project = "project-6911"; 380 String region = "region-9622"; 381 ResourcePolicy resourcePolicyResource = ResourcePolicy.newBuilder().build(); 382 client.insertAsync(project, region, resourcePolicyResource).get(); 383 Assert.fail("No exception raised"); 384 } catch (ExecutionException e) { 385 } 386 } 387 388 @Test listTest()389 public void listTest() throws Exception { 390 ResourcePolicy responsesElement = ResourcePolicy.newBuilder().build(); 391 ResourcePolicyList expectedResponse = 392 ResourcePolicyList.newBuilder() 393 .setNextPageToken("") 394 .addAllItems(Arrays.asList(responsesElement)) 395 .build(); 396 mockService.addResponse(expectedResponse); 397 398 String project = "project-6911"; 399 String region = "region-9622"; 400 401 ListPagedResponse pagedListResponse = client.list(project, region); 402 403 List<ResourcePolicy> resources = Lists.newArrayList(pagedListResponse.iterateAll()); 404 405 Assert.assertEquals(1, resources.size()); 406 Assert.assertEquals(expectedResponse.getItemsList().get(0), resources.get(0)); 407 408 List<String> actualRequests = mockService.getRequestPaths(); 409 Assert.assertEquals(1, actualRequests.size()); 410 411 String apiClientHeaderKey = 412 mockService 413 .getRequestHeaders() 414 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 415 .iterator() 416 .next(); 417 Assert.assertTrue( 418 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 419 .matcher(apiClientHeaderKey) 420 .matches()); 421 } 422 423 @Test listExceptionTest()424 public void listExceptionTest() throws Exception { 425 ApiException exception = 426 ApiExceptionFactory.createException( 427 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 428 mockService.addException(exception); 429 430 try { 431 String project = "project-6911"; 432 String region = "region-9622"; 433 client.list(project, region); 434 Assert.fail("No exception raised"); 435 } catch (InvalidArgumentException e) { 436 // Expected exception. 437 } 438 } 439 440 @Test setIamPolicyTest()441 public void setIamPolicyTest() throws Exception { 442 Policy expectedResponse = 443 Policy.newBuilder() 444 .addAllAuditConfigs(new ArrayList<AuditConfig>()) 445 .addAllBindings(new ArrayList<Binding>()) 446 .setEtag("etag3123477") 447 .setIamOwned(true) 448 .addAllRules(new ArrayList<Rule>()) 449 .setVersion(351608024) 450 .build(); 451 mockService.addResponse(expectedResponse); 452 453 String project = "project-6911"; 454 String region = "region-9622"; 455 String resource = "resource-756"; 456 RegionSetPolicyRequest regionSetPolicyRequestResource = 457 RegionSetPolicyRequest.newBuilder().build(); 458 459 Policy actualResponse = 460 client.setIamPolicy(project, region, resource, regionSetPolicyRequestResource); 461 Assert.assertEquals(expectedResponse, actualResponse); 462 463 List<String> actualRequests = mockService.getRequestPaths(); 464 Assert.assertEquals(1, actualRequests.size()); 465 466 String apiClientHeaderKey = 467 mockService 468 .getRequestHeaders() 469 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 470 .iterator() 471 .next(); 472 Assert.assertTrue( 473 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 474 .matcher(apiClientHeaderKey) 475 .matches()); 476 } 477 478 @Test setIamPolicyExceptionTest()479 public void setIamPolicyExceptionTest() throws Exception { 480 ApiException exception = 481 ApiExceptionFactory.createException( 482 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 483 mockService.addException(exception); 484 485 try { 486 String project = "project-6911"; 487 String region = "region-9622"; 488 String resource = "resource-756"; 489 RegionSetPolicyRequest regionSetPolicyRequestResource = 490 RegionSetPolicyRequest.newBuilder().build(); 491 client.setIamPolicy(project, region, resource, regionSetPolicyRequestResource); 492 Assert.fail("No exception raised"); 493 } catch (InvalidArgumentException e) { 494 // Expected exception. 495 } 496 } 497 498 @Test testIamPermissionsTest()499 public void testIamPermissionsTest() throws Exception { 500 TestPermissionsResponse expectedResponse = 501 TestPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build(); 502 mockService.addResponse(expectedResponse); 503 504 String project = "project-6911"; 505 String region = "region-9622"; 506 String resource = "resource-756"; 507 TestPermissionsRequest testPermissionsRequestResource = 508 TestPermissionsRequest.newBuilder().build(); 509 510 TestPermissionsResponse actualResponse = 511 client.testIamPermissions(project, region, resource, testPermissionsRequestResource); 512 Assert.assertEquals(expectedResponse, actualResponse); 513 514 List<String> actualRequests = mockService.getRequestPaths(); 515 Assert.assertEquals(1, actualRequests.size()); 516 517 String apiClientHeaderKey = 518 mockService 519 .getRequestHeaders() 520 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 521 .iterator() 522 .next(); 523 Assert.assertTrue( 524 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 525 .matcher(apiClientHeaderKey) 526 .matches()); 527 } 528 529 @Test testIamPermissionsExceptionTest()530 public void testIamPermissionsExceptionTest() throws Exception { 531 ApiException exception = 532 ApiExceptionFactory.createException( 533 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 534 mockService.addException(exception); 535 536 try { 537 String project = "project-6911"; 538 String region = "region-9622"; 539 String resource = "resource-756"; 540 TestPermissionsRequest testPermissionsRequestResource = 541 TestPermissionsRequest.newBuilder().build(); 542 client.testIamPermissions(project, region, resource, testPermissionsRequestResource); 543 Assert.fail("No exception raised"); 544 } catch (InvalidArgumentException e) { 545 // Expected exception. 546 } 547 } 548 } 549