• 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.RegionOperationsClient.ListPagedResponse;
20 
21 import com.google.api.gax.core.NoCredentialsProvider;
22 import com.google.api.gax.httpjson.GaxHttpJsonProperties;
23 import com.google.api.gax.httpjson.testing.MockHttpService;
24 import com.google.api.gax.rpc.ApiClientHeaderProvider;
25 import com.google.api.gax.rpc.ApiException;
26 import com.google.api.gax.rpc.ApiExceptionFactory;
27 import com.google.api.gax.rpc.InvalidArgumentException;
28 import com.google.api.gax.rpc.StatusCode;
29 import com.google.api.gax.rpc.testing.FakeStatusCode;
30 import com.google.cloud.compute.v1.Operation.Status;
31 import com.google.cloud.compute.v1.stub.HttpJsonRegionOperationsStub;
32 import com.google.common.collect.Lists;
33 import java.io.IOException;
34 import java.util.ArrayList;
35 import java.util.Arrays;
36 import java.util.List;
37 import javax.annotation.Generated;
38 import org.junit.After;
39 import org.junit.AfterClass;
40 import org.junit.Assert;
41 import org.junit.Before;
42 import org.junit.BeforeClass;
43 import org.junit.Test;
44 
45 @Generated("by gapic-generator-java")
46 public class RegionOperationsClientTest {
47   private static MockHttpService mockService;
48   private static RegionOperationsClient client;
49 
50   @BeforeClass
startStaticServer()51   public static void startStaticServer() throws IOException {
52     mockService =
53         new MockHttpService(
54             HttpJsonRegionOperationsStub.getMethodDescriptors(),
55             RegionOperationsSettings.getDefaultEndpoint());
56     RegionOperationsSettings settings =
57         RegionOperationsSettings.newBuilder()
58             .setTransportChannelProvider(
59                 RegionOperationsSettings.defaultHttpJsonTransportProviderBuilder()
60                     .setHttpTransport(mockService)
61                     .build())
62             .setCredentialsProvider(NoCredentialsProvider.create())
63             .build();
64     client = RegionOperationsClient.create(settings);
65   }
66 
67   @AfterClass
stopServer()68   public static void stopServer() {
69     client.close();
70   }
71 
72   @Before
setUp()73   public void setUp() {}
74 
75   @After
tearDown()76   public void tearDown() throws Exception {
77     mockService.reset();
78   }
79 
80   @Test
deleteTest()81   public void deleteTest() throws Exception {
82     DeleteRegionOperationResponse expectedResponse =
83         DeleteRegionOperationResponse.newBuilder().build();
84     mockService.addResponse(expectedResponse);
85 
86     String project = "project-6911";
87     String region = "region-9622";
88     String operation = "operation-3971";
89 
90     DeleteRegionOperationResponse actualResponse = client.delete(project, region, operation);
91     Assert.assertEquals(expectedResponse, actualResponse);
92 
93     List<String> actualRequests = mockService.getRequestPaths();
94     Assert.assertEquals(1, actualRequests.size());
95 
96     String apiClientHeaderKey =
97         mockService
98             .getRequestHeaders()
99             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
100             .iterator()
101             .next();
102     Assert.assertTrue(
103         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
104             .matcher(apiClientHeaderKey)
105             .matches());
106   }
107 
108   @Test
deleteExceptionTest()109   public void deleteExceptionTest() throws Exception {
110     ApiException exception =
111         ApiExceptionFactory.createException(
112             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
113     mockService.addException(exception);
114 
115     try {
116       String project = "project-6911";
117       String region = "region-9622";
118       String operation = "operation-3971";
119       client.delete(project, region, operation);
120       Assert.fail("No exception raised");
121     } catch (InvalidArgumentException e) {
122       // Expected exception.
123     }
124   }
125 
126   @Test
getTest()127   public void getTest() throws Exception {
128     Operation expectedResponse =
129         Operation.newBuilder()
130             .setClientOperationId("clientOperationId-1230366697")
131             .setCreationTimestamp("creationTimestamp-370203401")
132             .setDescription("description-1724546052")
133             .setEndTime("endTime-1607243192")
134             .setError(Error.newBuilder().build())
135             .setHttpErrorMessage("httpErrorMessage1577303431")
136             .setHttpErrorStatusCode(0)
137             .setId(3355)
138             .setInsertTime("insertTime966165798")
139             .setKind("kind3292052")
140             .setName("name3373707")
141             .setOperationGroupId("operationGroupId1716161683")
142             .setOperationType("operationType91999553")
143             .setProgress(-1001078227)
144             .setRegion("region-934795532")
145             .setSelfLink("selfLink1191800166")
146             .setStartTime("startTime-2129294769")
147             .setStatus(Status.DONE)
148             .setStatusMessage("statusMessage-958704715")
149             .setTargetId(-815576439)
150             .setTargetLink("targetLink486368555")
151             .setUser("user3599307")
152             .addAllWarnings(new ArrayList<Warnings>())
153             .setZone("zone3744684")
154             .build();
155     mockService.addResponse(expectedResponse);
156 
157     String project = "project-6911";
158     String region = "region-9622";
159     String operation = "operation-3971";
160 
161     Operation actualResponse = client.get(project, region, operation);
162     Assert.assertEquals(expectedResponse, actualResponse);
163 
164     List<String> actualRequests = mockService.getRequestPaths();
165     Assert.assertEquals(1, actualRequests.size());
166 
167     String apiClientHeaderKey =
168         mockService
169             .getRequestHeaders()
170             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
171             .iterator()
172             .next();
173     Assert.assertTrue(
174         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
175             .matcher(apiClientHeaderKey)
176             .matches());
177   }
178 
179   @Test
getExceptionTest()180   public void getExceptionTest() throws Exception {
181     ApiException exception =
182         ApiExceptionFactory.createException(
183             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
184     mockService.addException(exception);
185 
186     try {
187       String project = "project-6911";
188       String region = "region-9622";
189       String operation = "operation-3971";
190       client.get(project, region, operation);
191       Assert.fail("No exception raised");
192     } catch (InvalidArgumentException e) {
193       // Expected exception.
194     }
195   }
196 
197   @Test
listTest()198   public void listTest() throws Exception {
199     Operation responsesElement = Operation.newBuilder().build();
200     OperationList expectedResponse =
201         OperationList.newBuilder()
202             .setNextPageToken("")
203             .addAllItems(Arrays.asList(responsesElement))
204             .build();
205     mockService.addResponse(expectedResponse);
206 
207     String project = "project-6911";
208     String region = "region-9622";
209 
210     ListPagedResponse pagedListResponse = client.list(project, region);
211 
212     List<Operation> resources = Lists.newArrayList(pagedListResponse.iterateAll());
213 
214     Assert.assertEquals(1, resources.size());
215     Assert.assertEquals(expectedResponse.getItemsList().get(0), resources.get(0));
216 
217     List<String> actualRequests = mockService.getRequestPaths();
218     Assert.assertEquals(1, actualRequests.size());
219 
220     String apiClientHeaderKey =
221         mockService
222             .getRequestHeaders()
223             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
224             .iterator()
225             .next();
226     Assert.assertTrue(
227         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
228             .matcher(apiClientHeaderKey)
229             .matches());
230   }
231 
232   @Test
listExceptionTest()233   public void listExceptionTest() throws Exception {
234     ApiException exception =
235         ApiExceptionFactory.createException(
236             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
237     mockService.addException(exception);
238 
239     try {
240       String project = "project-6911";
241       String region = "region-9622";
242       client.list(project, region);
243       Assert.fail("No exception raised");
244     } catch (InvalidArgumentException e) {
245       // Expected exception.
246     }
247   }
248 
249   @Test
waitTest()250   public void waitTest() throws Exception {
251     Operation expectedResponse =
252         Operation.newBuilder()
253             .setClientOperationId("clientOperationId-1230366697")
254             .setCreationTimestamp("creationTimestamp-370203401")
255             .setDescription("description-1724546052")
256             .setEndTime("endTime-1607243192")
257             .setError(Error.newBuilder().build())
258             .setHttpErrorMessage("httpErrorMessage1577303431")
259             .setHttpErrorStatusCode(0)
260             .setId(3355)
261             .setInsertTime("insertTime966165798")
262             .setKind("kind3292052")
263             .setName("name3373707")
264             .setOperationGroupId("operationGroupId1716161683")
265             .setOperationType("operationType91999553")
266             .setProgress(-1001078227)
267             .setRegion("region-934795532")
268             .setSelfLink("selfLink1191800166")
269             .setStartTime("startTime-2129294769")
270             .setStatus(Status.DONE)
271             .setStatusMessage("statusMessage-958704715")
272             .setTargetId(-815576439)
273             .setTargetLink("targetLink486368555")
274             .setUser("user3599307")
275             .addAllWarnings(new ArrayList<Warnings>())
276             .setZone("zone3744684")
277             .build();
278     mockService.addResponse(expectedResponse);
279 
280     String project = "project-6911";
281     String region = "region-9622";
282     String operation = "operation-3971";
283 
284     Operation actualResponse = client.wait(project, region, operation);
285     Assert.assertEquals(expectedResponse, actualResponse);
286 
287     List<String> actualRequests = mockService.getRequestPaths();
288     Assert.assertEquals(1, actualRequests.size());
289 
290     String apiClientHeaderKey =
291         mockService
292             .getRequestHeaders()
293             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
294             .iterator()
295             .next();
296     Assert.assertTrue(
297         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
298             .matcher(apiClientHeaderKey)
299             .matches());
300   }
301 
302   @Test
waitExceptionTest()303   public void waitExceptionTest() throws Exception {
304     ApiException exception =
305         ApiExceptionFactory.createException(
306             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
307     mockService.addException(exception);
308 
309     try {
310       String project = "project-6911";
311       String region = "region-9622";
312       String operation = "operation-3971";
313       client.wait(project, region, operation);
314       Assert.fail("No exception raised");
315     } catch (InvalidArgumentException e) {
316       // Expected exception.
317     }
318   }
319 }
320