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