• 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.appengine.v1;
18 
19 import static com.google.appengine.v1.InstancesClient.ListInstancesPagedResponse;
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.appengine.v1.stub.HttpJsonInstancesStub;
31 import com.google.common.collect.Lists;
32 import com.google.longrunning.Operation;
33 import com.google.protobuf.Any;
34 import com.google.protobuf.Empty;
35 import com.google.protobuf.Timestamp;
36 import java.io.IOException;
37 import java.util.Arrays;
38 import java.util.List;
39 import java.util.concurrent.ExecutionException;
40 import javax.annotation.Generated;
41 import org.junit.After;
42 import org.junit.AfterClass;
43 import org.junit.Assert;
44 import org.junit.Before;
45 import org.junit.BeforeClass;
46 import org.junit.Test;
47 
48 @Generated("by gapic-generator-java")
49 public class InstancesClientHttpJsonTest {
50   private static MockHttpService mockService;
51   private static InstancesClient client;
52 
53   @BeforeClass
startStaticServer()54   public static void startStaticServer() throws IOException {
55     mockService =
56         new MockHttpService(
57             HttpJsonInstancesStub.getMethodDescriptors(), InstancesSettings.getDefaultEndpoint());
58     InstancesSettings settings =
59         InstancesSettings.newHttpJsonBuilder()
60             .setTransportChannelProvider(
61                 InstancesSettings.defaultHttpJsonTransportProviderBuilder()
62                     .setHttpTransport(mockService)
63                     .build())
64             .setCredentialsProvider(NoCredentialsProvider.create())
65             .build();
66     client = InstancesClient.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
listInstancesTest()83   public void listInstancesTest() throws Exception {
84     Instance responsesElement = Instance.newBuilder().build();
85     ListInstancesResponse expectedResponse =
86         ListInstancesResponse.newBuilder()
87             .setNextPageToken("")
88             .addAllInstances(Arrays.asList(responsesElement))
89             .build();
90     mockService.addResponse(expectedResponse);
91 
92     ListInstancesRequest request =
93         ListInstancesRequest.newBuilder()
94             .setParent("apps/app-8780/services/service-8780/versions/version-8780")
95             .setPageSize(883849137)
96             .setPageToken("pageToken873572522")
97             .build();
98 
99     ListInstancesPagedResponse pagedListResponse = client.listInstances(request);
100 
101     List<Instance> resources = Lists.newArrayList(pagedListResponse.iterateAll());
102 
103     Assert.assertEquals(1, resources.size());
104     Assert.assertEquals(expectedResponse.getInstancesList().get(0), resources.get(0));
105 
106     List<String> actualRequests = mockService.getRequestPaths();
107     Assert.assertEquals(1, actualRequests.size());
108 
109     String apiClientHeaderKey =
110         mockService
111             .getRequestHeaders()
112             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
113             .iterator()
114             .next();
115     Assert.assertTrue(
116         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
117             .matcher(apiClientHeaderKey)
118             .matches());
119   }
120 
121   @Test
listInstancesExceptionTest()122   public void listInstancesExceptionTest() throws Exception {
123     ApiException exception =
124         ApiExceptionFactory.createException(
125             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
126     mockService.addException(exception);
127 
128     try {
129       ListInstancesRequest request =
130           ListInstancesRequest.newBuilder()
131               .setParent("apps/app-8780/services/service-8780/versions/version-8780")
132               .setPageSize(883849137)
133               .setPageToken("pageToken873572522")
134               .build();
135       client.listInstances(request);
136       Assert.fail("No exception raised");
137     } catch (InvalidArgumentException e) {
138       // Expected exception.
139     }
140   }
141 
142   @Test
getInstanceTest()143   public void getInstanceTest() throws Exception {
144     Instance expectedResponse =
145         Instance.newBuilder()
146             .setName("name3373707")
147             .setId("id3355")
148             .setAppEngineRelease("appEngineRelease-1601369404")
149             .setVmName("vmName-813643294")
150             .setVmZoneName("vmZoneName-245094354")
151             .setVmId("vmId3622450")
152             .setStartTime(Timestamp.newBuilder().build())
153             .setRequests(-393257020)
154             .setErrors(-1294635157)
155             .setQps(112180)
156             .setAverageLatency(1814586588)
157             .setMemoryUsage(1034557667)
158             .setVmStatus("vmStatus-66804343")
159             .setVmDebugEnabled(true)
160             .setVmIp("vmIp3622462")
161             .build();
162     mockService.addResponse(expectedResponse);
163 
164     GetInstanceRequest request =
165         GetInstanceRequest.newBuilder()
166             .setName(
167                 "apps/app-9649/services/service-9649/versions/version-9649/instances/instance-9649")
168             .build();
169 
170     Instance actualResponse = client.getInstance(request);
171     Assert.assertEquals(expectedResponse, actualResponse);
172 
173     List<String> actualRequests = mockService.getRequestPaths();
174     Assert.assertEquals(1, actualRequests.size());
175 
176     String apiClientHeaderKey =
177         mockService
178             .getRequestHeaders()
179             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
180             .iterator()
181             .next();
182     Assert.assertTrue(
183         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
184             .matcher(apiClientHeaderKey)
185             .matches());
186   }
187 
188   @Test
getInstanceExceptionTest()189   public void getInstanceExceptionTest() throws Exception {
190     ApiException exception =
191         ApiExceptionFactory.createException(
192             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
193     mockService.addException(exception);
194 
195     try {
196       GetInstanceRequest request =
197           GetInstanceRequest.newBuilder()
198               .setName(
199                   "apps/app-9649/services/service-9649/versions/version-9649/instances/instance-9649")
200               .build();
201       client.getInstance(request);
202       Assert.fail("No exception raised");
203     } catch (InvalidArgumentException e) {
204       // Expected exception.
205     }
206   }
207 
208   @Test
deleteInstanceTest()209   public void deleteInstanceTest() throws Exception {
210     Empty expectedResponse = Empty.newBuilder().build();
211     Operation resultOperation =
212         Operation.newBuilder()
213             .setName("deleteInstanceTest")
214             .setDone(true)
215             .setResponse(Any.pack(expectedResponse))
216             .build();
217     mockService.addResponse(resultOperation);
218 
219     DeleteInstanceRequest request =
220         DeleteInstanceRequest.newBuilder()
221             .setName(
222                 "apps/app-9649/services/service-9649/versions/version-9649/instances/instance-9649")
223             .build();
224 
225     client.deleteInstanceAsync(request).get();
226 
227     List<String> actualRequests = mockService.getRequestPaths();
228     Assert.assertEquals(1, actualRequests.size());
229 
230     String apiClientHeaderKey =
231         mockService
232             .getRequestHeaders()
233             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
234             .iterator()
235             .next();
236     Assert.assertTrue(
237         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
238             .matcher(apiClientHeaderKey)
239             .matches());
240   }
241 
242   @Test
deleteInstanceExceptionTest()243   public void deleteInstanceExceptionTest() throws Exception {
244     ApiException exception =
245         ApiExceptionFactory.createException(
246             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
247     mockService.addException(exception);
248 
249     try {
250       DeleteInstanceRequest request =
251           DeleteInstanceRequest.newBuilder()
252               .setName(
253                   "apps/app-9649/services/service-9649/versions/version-9649/instances/instance-9649")
254               .build();
255       client.deleteInstanceAsync(request).get();
256       Assert.fail("No exception raised");
257     } catch (ExecutionException e) {
258     }
259   }
260 
261   @Test
debugInstanceTest()262   public void debugInstanceTest() throws Exception {
263     Instance expectedResponse =
264         Instance.newBuilder()
265             .setName("name3373707")
266             .setId("id3355")
267             .setAppEngineRelease("appEngineRelease-1601369404")
268             .setVmName("vmName-813643294")
269             .setVmZoneName("vmZoneName-245094354")
270             .setVmId("vmId3622450")
271             .setStartTime(Timestamp.newBuilder().build())
272             .setRequests(-393257020)
273             .setErrors(-1294635157)
274             .setQps(112180)
275             .setAverageLatency(1814586588)
276             .setMemoryUsage(1034557667)
277             .setVmStatus("vmStatus-66804343")
278             .setVmDebugEnabled(true)
279             .setVmIp("vmIp3622462")
280             .build();
281     Operation resultOperation =
282         Operation.newBuilder()
283             .setName("debugInstanceTest")
284             .setDone(true)
285             .setResponse(Any.pack(expectedResponse))
286             .build();
287     mockService.addResponse(resultOperation);
288 
289     DebugInstanceRequest request =
290         DebugInstanceRequest.newBuilder()
291             .setName(
292                 "apps/app-9649/services/service-9649/versions/version-9649/instances/instance-9649")
293             .setSshKey("sshKey-893236425")
294             .build();
295 
296     Instance actualResponse = client.debugInstanceAsync(request).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
debugInstanceExceptionTest()315   public void debugInstanceExceptionTest() 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       DebugInstanceRequest request =
323           DebugInstanceRequest.newBuilder()
324               .setName(
325                   "apps/app-9649/services/service-9649/versions/version-9649/instances/instance-9649")
326               .setSshKey("sshKey-893236425")
327               .build();
328       client.debugInstanceAsync(request).get();
329       Assert.fail("No exception raised");
330     } catch (ExecutionException e) {
331     }
332   }
333 }
334