• 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.ServicesClient.ListServicesPagedResponse;
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.HttpJsonServicesStub;
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.FieldMask;
36 import java.io.IOException;
37 import java.util.Arrays;
38 import java.util.HashMap;
39 import java.util.List;
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 ServicesClientHttpJsonTest {
51   private static MockHttpService mockService;
52   private static ServicesClient client;
53 
54   @BeforeClass
startStaticServer()55   public static void startStaticServer() throws IOException {
56     mockService =
57         new MockHttpService(
58             HttpJsonServicesStub.getMethodDescriptors(), ServicesSettings.getDefaultEndpoint());
59     ServicesSettings settings =
60         ServicesSettings.newHttpJsonBuilder()
61             .setTransportChannelProvider(
62                 ServicesSettings.defaultHttpJsonTransportProviderBuilder()
63                     .setHttpTransport(mockService)
64                     .build())
65             .setCredentialsProvider(NoCredentialsProvider.create())
66             .build();
67     client = ServicesClient.create(settings);
68   }
69 
70   @AfterClass
stopServer()71   public static void stopServer() {
72     client.close();
73   }
74 
75   @Before
setUp()76   public void setUp() {}
77 
78   @After
tearDown()79   public void tearDown() throws Exception {
80     mockService.reset();
81   }
82 
83   @Test
listServicesTest()84   public void listServicesTest() throws Exception {
85     Service responsesElement = Service.newBuilder().build();
86     ListServicesResponse expectedResponse =
87         ListServicesResponse.newBuilder()
88             .setNextPageToken("")
89             .addAllServices(Arrays.asList(responsesElement))
90             .build();
91     mockService.addResponse(expectedResponse);
92 
93     ListServicesRequest request =
94         ListServicesRequest.newBuilder()
95             .setParent("apps/app-3559")
96             .setPageSize(883849137)
97             .setPageToken("pageToken873572522")
98             .build();
99 
100     ListServicesPagedResponse pagedListResponse = client.listServices(request);
101 
102     List<Service> resources = Lists.newArrayList(pagedListResponse.iterateAll());
103 
104     Assert.assertEquals(1, resources.size());
105     Assert.assertEquals(expectedResponse.getServicesList().get(0), resources.get(0));
106 
107     List<String> actualRequests = mockService.getRequestPaths();
108     Assert.assertEquals(1, actualRequests.size());
109 
110     String apiClientHeaderKey =
111         mockService
112             .getRequestHeaders()
113             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
114             .iterator()
115             .next();
116     Assert.assertTrue(
117         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
118             .matcher(apiClientHeaderKey)
119             .matches());
120   }
121 
122   @Test
listServicesExceptionTest()123   public void listServicesExceptionTest() throws Exception {
124     ApiException exception =
125         ApiExceptionFactory.createException(
126             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
127     mockService.addException(exception);
128 
129     try {
130       ListServicesRequest request =
131           ListServicesRequest.newBuilder()
132               .setParent("apps/app-3559")
133               .setPageSize(883849137)
134               .setPageToken("pageToken873572522")
135               .build();
136       client.listServices(request);
137       Assert.fail("No exception raised");
138     } catch (InvalidArgumentException e) {
139       // Expected exception.
140     }
141   }
142 
143   @Test
getServiceTest()144   public void getServiceTest() throws Exception {
145     Service expectedResponse =
146         Service.newBuilder()
147             .setName("name3373707")
148             .setId("id3355")
149             .setSplit(TrafficSplit.newBuilder().build())
150             .putAllLabels(new HashMap<String, String>())
151             .setNetworkSettings(NetworkSettings.newBuilder().build())
152             .build();
153     mockService.addResponse(expectedResponse);
154 
155     GetServiceRequest request =
156         GetServiceRequest.newBuilder().setName("apps/app-9760/services/service-9760").build();
157 
158     Service actualResponse = client.getService(request);
159     Assert.assertEquals(expectedResponse, actualResponse);
160 
161     List<String> actualRequests = mockService.getRequestPaths();
162     Assert.assertEquals(1, actualRequests.size());
163 
164     String apiClientHeaderKey =
165         mockService
166             .getRequestHeaders()
167             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
168             .iterator()
169             .next();
170     Assert.assertTrue(
171         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
172             .matcher(apiClientHeaderKey)
173             .matches());
174   }
175 
176   @Test
getServiceExceptionTest()177   public void getServiceExceptionTest() throws Exception {
178     ApiException exception =
179         ApiExceptionFactory.createException(
180             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
181     mockService.addException(exception);
182 
183     try {
184       GetServiceRequest request =
185           GetServiceRequest.newBuilder().setName("apps/app-9760/services/service-9760").build();
186       client.getService(request);
187       Assert.fail("No exception raised");
188     } catch (InvalidArgumentException e) {
189       // Expected exception.
190     }
191   }
192 
193   @Test
updateServiceTest()194   public void updateServiceTest() throws Exception {
195     Service expectedResponse =
196         Service.newBuilder()
197             .setName("name3373707")
198             .setId("id3355")
199             .setSplit(TrafficSplit.newBuilder().build())
200             .putAllLabels(new HashMap<String, String>())
201             .setNetworkSettings(NetworkSettings.newBuilder().build())
202             .build();
203     Operation resultOperation =
204         Operation.newBuilder()
205             .setName("updateServiceTest")
206             .setDone(true)
207             .setResponse(Any.pack(expectedResponse))
208             .build();
209     mockService.addResponse(resultOperation);
210 
211     UpdateServiceRequest request =
212         UpdateServiceRequest.newBuilder()
213             .setName("apps/app-9760/services/service-9760")
214             .setService(Service.newBuilder().build())
215             .setUpdateMask(FieldMask.newBuilder().build())
216             .setMigrateTraffic(true)
217             .build();
218 
219     Service actualResponse = client.updateServiceAsync(request).get();
220     Assert.assertEquals(expectedResponse, actualResponse);
221 
222     List<String> actualRequests = mockService.getRequestPaths();
223     Assert.assertEquals(1, actualRequests.size());
224 
225     String apiClientHeaderKey =
226         mockService
227             .getRequestHeaders()
228             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
229             .iterator()
230             .next();
231     Assert.assertTrue(
232         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
233             .matcher(apiClientHeaderKey)
234             .matches());
235   }
236 
237   @Test
updateServiceExceptionTest()238   public void updateServiceExceptionTest() throws Exception {
239     ApiException exception =
240         ApiExceptionFactory.createException(
241             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
242     mockService.addException(exception);
243 
244     try {
245       UpdateServiceRequest request =
246           UpdateServiceRequest.newBuilder()
247               .setName("apps/app-9760/services/service-9760")
248               .setService(Service.newBuilder().build())
249               .setUpdateMask(FieldMask.newBuilder().build())
250               .setMigrateTraffic(true)
251               .build();
252       client.updateServiceAsync(request).get();
253       Assert.fail("No exception raised");
254     } catch (ExecutionException e) {
255     }
256   }
257 
258   @Test
deleteServiceTest()259   public void deleteServiceTest() throws Exception {
260     Empty expectedResponse = Empty.newBuilder().build();
261     Operation resultOperation =
262         Operation.newBuilder()
263             .setName("deleteServiceTest")
264             .setDone(true)
265             .setResponse(Any.pack(expectedResponse))
266             .build();
267     mockService.addResponse(resultOperation);
268 
269     DeleteServiceRequest request =
270         DeleteServiceRequest.newBuilder().setName("apps/app-9760/services/service-9760").build();
271 
272     client.deleteServiceAsync(request).get();
273 
274     List<String> actualRequests = mockService.getRequestPaths();
275     Assert.assertEquals(1, actualRequests.size());
276 
277     String apiClientHeaderKey =
278         mockService
279             .getRequestHeaders()
280             .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
281             .iterator()
282             .next();
283     Assert.assertTrue(
284         GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
285             .matcher(apiClientHeaderKey)
286             .matches());
287   }
288 
289   @Test
deleteServiceExceptionTest()290   public void deleteServiceExceptionTest() throws Exception {
291     ApiException exception =
292         ApiExceptionFactory.createException(
293             new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
294     mockService.addException(exception);
295 
296     try {
297       DeleteServiceRequest request =
298           DeleteServiceRequest.newBuilder().setName("apps/app-9760/services/service-9760").build();
299       client.deleteServiceAsync(request).get();
300       Assert.fail("No exception raised");
301     } catch (ExecutionException e) {
302     }
303   }
304 }
305