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