• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.cloud.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