• 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.aiplatform.v1beta1;
18 
19 import static com.google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient.ListEntityTypesPagedResponse;
20 import static com.google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient.ListFeaturesPagedResponse;
21 import static com.google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient.ListFeaturestoresPagedResponse;
22 import static com.google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient.ListLocationsPagedResponse;
23 import static com.google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient.SearchFeaturesPagedResponse;
24 
25 import com.google.api.gax.core.NoCredentialsProvider;
26 import com.google.api.gax.grpc.GaxGrpcProperties;
27 import com.google.api.gax.grpc.testing.LocalChannelProvider;
28 import com.google.api.gax.grpc.testing.MockGrpcService;
29 import com.google.api.gax.grpc.testing.MockServiceHelper;
30 import com.google.api.gax.rpc.ApiClientHeaderProvider;
31 import com.google.api.gax.rpc.InvalidArgumentException;
32 import com.google.api.gax.rpc.StatusCode;
33 import com.google.cloud.location.GetLocationRequest;
34 import com.google.cloud.location.ListLocationsRequest;
35 import com.google.cloud.location.ListLocationsResponse;
36 import com.google.cloud.location.Location;
37 import com.google.common.collect.Lists;
38 import com.google.iam.v1.AuditConfig;
39 import com.google.iam.v1.Binding;
40 import com.google.iam.v1.GetIamPolicyRequest;
41 import com.google.iam.v1.GetPolicyOptions;
42 import com.google.iam.v1.Policy;
43 import com.google.iam.v1.SetIamPolicyRequest;
44 import com.google.iam.v1.TestIamPermissionsRequest;
45 import com.google.iam.v1.TestIamPermissionsResponse;
46 import com.google.longrunning.Operation;
47 import com.google.protobuf.AbstractMessage;
48 import com.google.protobuf.Any;
49 import com.google.protobuf.ByteString;
50 import com.google.protobuf.Empty;
51 import com.google.protobuf.FieldMask;
52 import com.google.protobuf.Timestamp;
53 import io.grpc.StatusRuntimeException;
54 import java.io.IOException;
55 import java.util.ArrayList;
56 import java.util.Arrays;
57 import java.util.HashMap;
58 import java.util.List;
59 import java.util.UUID;
60 import java.util.concurrent.ExecutionException;
61 import javax.annotation.Generated;
62 import org.junit.After;
63 import org.junit.AfterClass;
64 import org.junit.Assert;
65 import org.junit.Before;
66 import org.junit.BeforeClass;
67 import org.junit.Test;
68 
69 @Generated("by gapic-generator-java")
70 public class FeaturestoreServiceClientTest {
71   private static MockFeaturestoreService mockFeaturestoreService;
72   private static MockIAMPolicy mockIAMPolicy;
73   private static MockLocations mockLocations;
74   private static MockServiceHelper mockServiceHelper;
75   private LocalChannelProvider channelProvider;
76   private FeaturestoreServiceClient client;
77 
78   @BeforeClass
startStaticServer()79   public static void startStaticServer() {
80     mockFeaturestoreService = new MockFeaturestoreService();
81     mockLocations = new MockLocations();
82     mockIAMPolicy = new MockIAMPolicy();
83     mockServiceHelper =
84         new MockServiceHelper(
85             UUID.randomUUID().toString(),
86             Arrays.<MockGrpcService>asList(mockFeaturestoreService, mockLocations, mockIAMPolicy));
87     mockServiceHelper.start();
88   }
89 
90   @AfterClass
stopServer()91   public static void stopServer() {
92     mockServiceHelper.stop();
93   }
94 
95   @Before
setUp()96   public void setUp() throws IOException {
97     mockServiceHelper.reset();
98     channelProvider = mockServiceHelper.createChannelProvider();
99     FeaturestoreServiceSettings settings =
100         FeaturestoreServiceSettings.newBuilder()
101             .setTransportChannelProvider(channelProvider)
102             .setCredentialsProvider(NoCredentialsProvider.create())
103             .build();
104     client = FeaturestoreServiceClient.create(settings);
105   }
106 
107   @After
tearDown()108   public void tearDown() throws Exception {
109     client.close();
110   }
111 
112   @Test
createFeaturestoreTest()113   public void createFeaturestoreTest() throws Exception {
114     Featurestore expectedResponse =
115         Featurestore.newBuilder()
116             .setName(FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]").toString())
117             .setCreateTime(Timestamp.newBuilder().build())
118             .setUpdateTime(Timestamp.newBuilder().build())
119             .setEtag("etag3123477")
120             .putAllLabels(new HashMap<String, String>())
121             .setOnlineServingConfig(Featurestore.OnlineServingConfig.newBuilder().build())
122             .setOnlineStorageTtlDays(1491501178)
123             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
124             .build();
125     Operation resultOperation =
126         Operation.newBuilder()
127             .setName("createFeaturestoreTest")
128             .setDone(true)
129             .setResponse(Any.pack(expectedResponse))
130             .build();
131     mockFeaturestoreService.addResponse(resultOperation);
132 
133     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
134     Featurestore featurestore = Featurestore.newBuilder().build();
135 
136     Featurestore actualResponse = client.createFeaturestoreAsync(parent, featurestore).get();
137     Assert.assertEquals(expectedResponse, actualResponse);
138 
139     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
140     Assert.assertEquals(1, actualRequests.size());
141     CreateFeaturestoreRequest actualRequest = ((CreateFeaturestoreRequest) actualRequests.get(0));
142 
143     Assert.assertEquals(parent.toString(), actualRequest.getParent());
144     Assert.assertEquals(featurestore, actualRequest.getFeaturestore());
145     Assert.assertTrue(
146         channelProvider.isHeaderSent(
147             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
148             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
149   }
150 
151   @Test
createFeaturestoreExceptionTest()152   public void createFeaturestoreExceptionTest() throws Exception {
153     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
154     mockFeaturestoreService.addException(exception);
155 
156     try {
157       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
158       Featurestore featurestore = Featurestore.newBuilder().build();
159       client.createFeaturestoreAsync(parent, featurestore).get();
160       Assert.fail("No exception raised");
161     } catch (ExecutionException e) {
162       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
163       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
164       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
165     }
166   }
167 
168   @Test
createFeaturestoreTest2()169   public void createFeaturestoreTest2() throws Exception {
170     Featurestore expectedResponse =
171         Featurestore.newBuilder()
172             .setName(FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]").toString())
173             .setCreateTime(Timestamp.newBuilder().build())
174             .setUpdateTime(Timestamp.newBuilder().build())
175             .setEtag("etag3123477")
176             .putAllLabels(new HashMap<String, String>())
177             .setOnlineServingConfig(Featurestore.OnlineServingConfig.newBuilder().build())
178             .setOnlineStorageTtlDays(1491501178)
179             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
180             .build();
181     Operation resultOperation =
182         Operation.newBuilder()
183             .setName("createFeaturestoreTest")
184             .setDone(true)
185             .setResponse(Any.pack(expectedResponse))
186             .build();
187     mockFeaturestoreService.addResponse(resultOperation);
188 
189     String parent = "parent-995424086";
190     Featurestore featurestore = Featurestore.newBuilder().build();
191 
192     Featurestore actualResponse = client.createFeaturestoreAsync(parent, featurestore).get();
193     Assert.assertEquals(expectedResponse, actualResponse);
194 
195     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
196     Assert.assertEquals(1, actualRequests.size());
197     CreateFeaturestoreRequest actualRequest = ((CreateFeaturestoreRequest) actualRequests.get(0));
198 
199     Assert.assertEquals(parent, actualRequest.getParent());
200     Assert.assertEquals(featurestore, actualRequest.getFeaturestore());
201     Assert.assertTrue(
202         channelProvider.isHeaderSent(
203             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
204             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
205   }
206 
207   @Test
createFeaturestoreExceptionTest2()208   public void createFeaturestoreExceptionTest2() throws Exception {
209     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
210     mockFeaturestoreService.addException(exception);
211 
212     try {
213       String parent = "parent-995424086";
214       Featurestore featurestore = Featurestore.newBuilder().build();
215       client.createFeaturestoreAsync(parent, featurestore).get();
216       Assert.fail("No exception raised");
217     } catch (ExecutionException e) {
218       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
219       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
220       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
221     }
222   }
223 
224   @Test
createFeaturestoreTest3()225   public void createFeaturestoreTest3() throws Exception {
226     Featurestore expectedResponse =
227         Featurestore.newBuilder()
228             .setName(FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]").toString())
229             .setCreateTime(Timestamp.newBuilder().build())
230             .setUpdateTime(Timestamp.newBuilder().build())
231             .setEtag("etag3123477")
232             .putAllLabels(new HashMap<String, String>())
233             .setOnlineServingConfig(Featurestore.OnlineServingConfig.newBuilder().build())
234             .setOnlineStorageTtlDays(1491501178)
235             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
236             .build();
237     Operation resultOperation =
238         Operation.newBuilder()
239             .setName("createFeaturestoreTest")
240             .setDone(true)
241             .setResponse(Any.pack(expectedResponse))
242             .build();
243     mockFeaturestoreService.addResponse(resultOperation);
244 
245     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
246     Featurestore featurestore = Featurestore.newBuilder().build();
247     String featurestoreId = "featurestoreId-1315851738";
248 
249     Featurestore actualResponse =
250         client.createFeaturestoreAsync(parent, featurestore, featurestoreId).get();
251     Assert.assertEquals(expectedResponse, actualResponse);
252 
253     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
254     Assert.assertEquals(1, actualRequests.size());
255     CreateFeaturestoreRequest actualRequest = ((CreateFeaturestoreRequest) actualRequests.get(0));
256 
257     Assert.assertEquals(parent.toString(), actualRequest.getParent());
258     Assert.assertEquals(featurestore, actualRequest.getFeaturestore());
259     Assert.assertEquals(featurestoreId, actualRequest.getFeaturestoreId());
260     Assert.assertTrue(
261         channelProvider.isHeaderSent(
262             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
263             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
264   }
265 
266   @Test
createFeaturestoreExceptionTest3()267   public void createFeaturestoreExceptionTest3() throws Exception {
268     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
269     mockFeaturestoreService.addException(exception);
270 
271     try {
272       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
273       Featurestore featurestore = Featurestore.newBuilder().build();
274       String featurestoreId = "featurestoreId-1315851738";
275       client.createFeaturestoreAsync(parent, featurestore, featurestoreId).get();
276       Assert.fail("No exception raised");
277     } catch (ExecutionException e) {
278       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
279       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
280       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
281     }
282   }
283 
284   @Test
createFeaturestoreTest4()285   public void createFeaturestoreTest4() throws Exception {
286     Featurestore expectedResponse =
287         Featurestore.newBuilder()
288             .setName(FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]").toString())
289             .setCreateTime(Timestamp.newBuilder().build())
290             .setUpdateTime(Timestamp.newBuilder().build())
291             .setEtag("etag3123477")
292             .putAllLabels(new HashMap<String, String>())
293             .setOnlineServingConfig(Featurestore.OnlineServingConfig.newBuilder().build())
294             .setOnlineStorageTtlDays(1491501178)
295             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
296             .build();
297     Operation resultOperation =
298         Operation.newBuilder()
299             .setName("createFeaturestoreTest")
300             .setDone(true)
301             .setResponse(Any.pack(expectedResponse))
302             .build();
303     mockFeaturestoreService.addResponse(resultOperation);
304 
305     String parent = "parent-995424086";
306     Featurestore featurestore = Featurestore.newBuilder().build();
307     String featurestoreId = "featurestoreId-1315851738";
308 
309     Featurestore actualResponse =
310         client.createFeaturestoreAsync(parent, featurestore, featurestoreId).get();
311     Assert.assertEquals(expectedResponse, actualResponse);
312 
313     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
314     Assert.assertEquals(1, actualRequests.size());
315     CreateFeaturestoreRequest actualRequest = ((CreateFeaturestoreRequest) actualRequests.get(0));
316 
317     Assert.assertEquals(parent, actualRequest.getParent());
318     Assert.assertEquals(featurestore, actualRequest.getFeaturestore());
319     Assert.assertEquals(featurestoreId, actualRequest.getFeaturestoreId());
320     Assert.assertTrue(
321         channelProvider.isHeaderSent(
322             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
323             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
324   }
325 
326   @Test
createFeaturestoreExceptionTest4()327   public void createFeaturestoreExceptionTest4() throws Exception {
328     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
329     mockFeaturestoreService.addException(exception);
330 
331     try {
332       String parent = "parent-995424086";
333       Featurestore featurestore = Featurestore.newBuilder().build();
334       String featurestoreId = "featurestoreId-1315851738";
335       client.createFeaturestoreAsync(parent, featurestore, featurestoreId).get();
336       Assert.fail("No exception raised");
337     } catch (ExecutionException e) {
338       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
339       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
340       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
341     }
342   }
343 
344   @Test
getFeaturestoreTest()345   public void getFeaturestoreTest() throws Exception {
346     Featurestore expectedResponse =
347         Featurestore.newBuilder()
348             .setName(FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]").toString())
349             .setCreateTime(Timestamp.newBuilder().build())
350             .setUpdateTime(Timestamp.newBuilder().build())
351             .setEtag("etag3123477")
352             .putAllLabels(new HashMap<String, String>())
353             .setOnlineServingConfig(Featurestore.OnlineServingConfig.newBuilder().build())
354             .setOnlineStorageTtlDays(1491501178)
355             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
356             .build();
357     mockFeaturestoreService.addResponse(expectedResponse);
358 
359     FeaturestoreName name = FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
360 
361     Featurestore actualResponse = client.getFeaturestore(name);
362     Assert.assertEquals(expectedResponse, actualResponse);
363 
364     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
365     Assert.assertEquals(1, actualRequests.size());
366     GetFeaturestoreRequest actualRequest = ((GetFeaturestoreRequest) actualRequests.get(0));
367 
368     Assert.assertEquals(name.toString(), actualRequest.getName());
369     Assert.assertTrue(
370         channelProvider.isHeaderSent(
371             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
372             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
373   }
374 
375   @Test
getFeaturestoreExceptionTest()376   public void getFeaturestoreExceptionTest() throws Exception {
377     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
378     mockFeaturestoreService.addException(exception);
379 
380     try {
381       FeaturestoreName name = FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
382       client.getFeaturestore(name);
383       Assert.fail("No exception raised");
384     } catch (InvalidArgumentException e) {
385       // Expected exception.
386     }
387   }
388 
389   @Test
getFeaturestoreTest2()390   public void getFeaturestoreTest2() throws Exception {
391     Featurestore expectedResponse =
392         Featurestore.newBuilder()
393             .setName(FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]").toString())
394             .setCreateTime(Timestamp.newBuilder().build())
395             .setUpdateTime(Timestamp.newBuilder().build())
396             .setEtag("etag3123477")
397             .putAllLabels(new HashMap<String, String>())
398             .setOnlineServingConfig(Featurestore.OnlineServingConfig.newBuilder().build())
399             .setOnlineStorageTtlDays(1491501178)
400             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
401             .build();
402     mockFeaturestoreService.addResponse(expectedResponse);
403 
404     String name = "name3373707";
405 
406     Featurestore actualResponse = client.getFeaturestore(name);
407     Assert.assertEquals(expectedResponse, actualResponse);
408 
409     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
410     Assert.assertEquals(1, actualRequests.size());
411     GetFeaturestoreRequest actualRequest = ((GetFeaturestoreRequest) actualRequests.get(0));
412 
413     Assert.assertEquals(name, actualRequest.getName());
414     Assert.assertTrue(
415         channelProvider.isHeaderSent(
416             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
417             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
418   }
419 
420   @Test
getFeaturestoreExceptionTest2()421   public void getFeaturestoreExceptionTest2() throws Exception {
422     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
423     mockFeaturestoreService.addException(exception);
424 
425     try {
426       String name = "name3373707";
427       client.getFeaturestore(name);
428       Assert.fail("No exception raised");
429     } catch (InvalidArgumentException e) {
430       // Expected exception.
431     }
432   }
433 
434   @Test
listFeaturestoresTest()435   public void listFeaturestoresTest() throws Exception {
436     Featurestore responsesElement = Featurestore.newBuilder().build();
437     ListFeaturestoresResponse expectedResponse =
438         ListFeaturestoresResponse.newBuilder()
439             .setNextPageToken("")
440             .addAllFeaturestores(Arrays.asList(responsesElement))
441             .build();
442     mockFeaturestoreService.addResponse(expectedResponse);
443 
444     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
445 
446     ListFeaturestoresPagedResponse pagedListResponse = client.listFeaturestores(parent);
447 
448     List<Featurestore> resources = Lists.newArrayList(pagedListResponse.iterateAll());
449 
450     Assert.assertEquals(1, resources.size());
451     Assert.assertEquals(expectedResponse.getFeaturestoresList().get(0), resources.get(0));
452 
453     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
454     Assert.assertEquals(1, actualRequests.size());
455     ListFeaturestoresRequest actualRequest = ((ListFeaturestoresRequest) actualRequests.get(0));
456 
457     Assert.assertEquals(parent.toString(), actualRequest.getParent());
458     Assert.assertTrue(
459         channelProvider.isHeaderSent(
460             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
461             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
462   }
463 
464   @Test
listFeaturestoresExceptionTest()465   public void listFeaturestoresExceptionTest() throws Exception {
466     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
467     mockFeaturestoreService.addException(exception);
468 
469     try {
470       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
471       client.listFeaturestores(parent);
472       Assert.fail("No exception raised");
473     } catch (InvalidArgumentException e) {
474       // Expected exception.
475     }
476   }
477 
478   @Test
listFeaturestoresTest2()479   public void listFeaturestoresTest2() throws Exception {
480     Featurestore responsesElement = Featurestore.newBuilder().build();
481     ListFeaturestoresResponse expectedResponse =
482         ListFeaturestoresResponse.newBuilder()
483             .setNextPageToken("")
484             .addAllFeaturestores(Arrays.asList(responsesElement))
485             .build();
486     mockFeaturestoreService.addResponse(expectedResponse);
487 
488     String parent = "parent-995424086";
489 
490     ListFeaturestoresPagedResponse pagedListResponse = client.listFeaturestores(parent);
491 
492     List<Featurestore> resources = Lists.newArrayList(pagedListResponse.iterateAll());
493 
494     Assert.assertEquals(1, resources.size());
495     Assert.assertEquals(expectedResponse.getFeaturestoresList().get(0), resources.get(0));
496 
497     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
498     Assert.assertEquals(1, actualRequests.size());
499     ListFeaturestoresRequest actualRequest = ((ListFeaturestoresRequest) actualRequests.get(0));
500 
501     Assert.assertEquals(parent, actualRequest.getParent());
502     Assert.assertTrue(
503         channelProvider.isHeaderSent(
504             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
505             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
506   }
507 
508   @Test
listFeaturestoresExceptionTest2()509   public void listFeaturestoresExceptionTest2() throws Exception {
510     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
511     mockFeaturestoreService.addException(exception);
512 
513     try {
514       String parent = "parent-995424086";
515       client.listFeaturestores(parent);
516       Assert.fail("No exception raised");
517     } catch (InvalidArgumentException e) {
518       // Expected exception.
519     }
520   }
521 
522   @Test
updateFeaturestoreTest()523   public void updateFeaturestoreTest() throws Exception {
524     Featurestore expectedResponse =
525         Featurestore.newBuilder()
526             .setName(FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]").toString())
527             .setCreateTime(Timestamp.newBuilder().build())
528             .setUpdateTime(Timestamp.newBuilder().build())
529             .setEtag("etag3123477")
530             .putAllLabels(new HashMap<String, String>())
531             .setOnlineServingConfig(Featurestore.OnlineServingConfig.newBuilder().build())
532             .setOnlineStorageTtlDays(1491501178)
533             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
534             .build();
535     Operation resultOperation =
536         Operation.newBuilder()
537             .setName("updateFeaturestoreTest")
538             .setDone(true)
539             .setResponse(Any.pack(expectedResponse))
540             .build();
541     mockFeaturestoreService.addResponse(resultOperation);
542 
543     Featurestore featurestore = Featurestore.newBuilder().build();
544     FieldMask updateMask = FieldMask.newBuilder().build();
545 
546     Featurestore actualResponse = client.updateFeaturestoreAsync(featurestore, updateMask).get();
547     Assert.assertEquals(expectedResponse, actualResponse);
548 
549     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
550     Assert.assertEquals(1, actualRequests.size());
551     UpdateFeaturestoreRequest actualRequest = ((UpdateFeaturestoreRequest) actualRequests.get(0));
552 
553     Assert.assertEquals(featurestore, actualRequest.getFeaturestore());
554     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
555     Assert.assertTrue(
556         channelProvider.isHeaderSent(
557             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
558             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
559   }
560 
561   @Test
updateFeaturestoreExceptionTest()562   public void updateFeaturestoreExceptionTest() throws Exception {
563     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
564     mockFeaturestoreService.addException(exception);
565 
566     try {
567       Featurestore featurestore = Featurestore.newBuilder().build();
568       FieldMask updateMask = FieldMask.newBuilder().build();
569       client.updateFeaturestoreAsync(featurestore, updateMask).get();
570       Assert.fail("No exception raised");
571     } catch (ExecutionException e) {
572       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
573       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
574       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
575     }
576   }
577 
578   @Test
deleteFeaturestoreTest()579   public void deleteFeaturestoreTest() throws Exception {
580     Empty expectedResponse = Empty.newBuilder().build();
581     Operation resultOperation =
582         Operation.newBuilder()
583             .setName("deleteFeaturestoreTest")
584             .setDone(true)
585             .setResponse(Any.pack(expectedResponse))
586             .build();
587     mockFeaturestoreService.addResponse(resultOperation);
588 
589     FeaturestoreName name = FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
590 
591     client.deleteFeaturestoreAsync(name).get();
592 
593     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
594     Assert.assertEquals(1, actualRequests.size());
595     DeleteFeaturestoreRequest actualRequest = ((DeleteFeaturestoreRequest) actualRequests.get(0));
596 
597     Assert.assertEquals(name.toString(), actualRequest.getName());
598     Assert.assertTrue(
599         channelProvider.isHeaderSent(
600             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
601             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
602   }
603 
604   @Test
deleteFeaturestoreExceptionTest()605   public void deleteFeaturestoreExceptionTest() throws Exception {
606     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
607     mockFeaturestoreService.addException(exception);
608 
609     try {
610       FeaturestoreName name = FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
611       client.deleteFeaturestoreAsync(name).get();
612       Assert.fail("No exception raised");
613     } catch (ExecutionException e) {
614       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
615       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
616       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
617     }
618   }
619 
620   @Test
deleteFeaturestoreTest2()621   public void deleteFeaturestoreTest2() throws Exception {
622     Empty expectedResponse = Empty.newBuilder().build();
623     Operation resultOperation =
624         Operation.newBuilder()
625             .setName("deleteFeaturestoreTest")
626             .setDone(true)
627             .setResponse(Any.pack(expectedResponse))
628             .build();
629     mockFeaturestoreService.addResponse(resultOperation);
630 
631     String name = "name3373707";
632 
633     client.deleteFeaturestoreAsync(name).get();
634 
635     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
636     Assert.assertEquals(1, actualRequests.size());
637     DeleteFeaturestoreRequest actualRequest = ((DeleteFeaturestoreRequest) actualRequests.get(0));
638 
639     Assert.assertEquals(name, actualRequest.getName());
640     Assert.assertTrue(
641         channelProvider.isHeaderSent(
642             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
643             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
644   }
645 
646   @Test
deleteFeaturestoreExceptionTest2()647   public void deleteFeaturestoreExceptionTest2() throws Exception {
648     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
649     mockFeaturestoreService.addException(exception);
650 
651     try {
652       String name = "name3373707";
653       client.deleteFeaturestoreAsync(name).get();
654       Assert.fail("No exception raised");
655     } catch (ExecutionException e) {
656       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
657       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
658       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
659     }
660   }
661 
662   @Test
deleteFeaturestoreTest3()663   public void deleteFeaturestoreTest3() throws Exception {
664     Empty expectedResponse = Empty.newBuilder().build();
665     Operation resultOperation =
666         Operation.newBuilder()
667             .setName("deleteFeaturestoreTest")
668             .setDone(true)
669             .setResponse(Any.pack(expectedResponse))
670             .build();
671     mockFeaturestoreService.addResponse(resultOperation);
672 
673     FeaturestoreName name = FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
674     boolean force = true;
675 
676     client.deleteFeaturestoreAsync(name, force).get();
677 
678     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
679     Assert.assertEquals(1, actualRequests.size());
680     DeleteFeaturestoreRequest actualRequest = ((DeleteFeaturestoreRequest) actualRequests.get(0));
681 
682     Assert.assertEquals(name.toString(), actualRequest.getName());
683     Assert.assertEquals(force, actualRequest.getForce());
684     Assert.assertTrue(
685         channelProvider.isHeaderSent(
686             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
687             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
688   }
689 
690   @Test
deleteFeaturestoreExceptionTest3()691   public void deleteFeaturestoreExceptionTest3() throws Exception {
692     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
693     mockFeaturestoreService.addException(exception);
694 
695     try {
696       FeaturestoreName name = FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
697       boolean force = true;
698       client.deleteFeaturestoreAsync(name, force).get();
699       Assert.fail("No exception raised");
700     } catch (ExecutionException e) {
701       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
702       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
703       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
704     }
705   }
706 
707   @Test
deleteFeaturestoreTest4()708   public void deleteFeaturestoreTest4() throws Exception {
709     Empty expectedResponse = Empty.newBuilder().build();
710     Operation resultOperation =
711         Operation.newBuilder()
712             .setName("deleteFeaturestoreTest")
713             .setDone(true)
714             .setResponse(Any.pack(expectedResponse))
715             .build();
716     mockFeaturestoreService.addResponse(resultOperation);
717 
718     String name = "name3373707";
719     boolean force = true;
720 
721     client.deleteFeaturestoreAsync(name, force).get();
722 
723     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
724     Assert.assertEquals(1, actualRequests.size());
725     DeleteFeaturestoreRequest actualRequest = ((DeleteFeaturestoreRequest) actualRequests.get(0));
726 
727     Assert.assertEquals(name, actualRequest.getName());
728     Assert.assertEquals(force, actualRequest.getForce());
729     Assert.assertTrue(
730         channelProvider.isHeaderSent(
731             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
732             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
733   }
734 
735   @Test
deleteFeaturestoreExceptionTest4()736   public void deleteFeaturestoreExceptionTest4() throws Exception {
737     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
738     mockFeaturestoreService.addException(exception);
739 
740     try {
741       String name = "name3373707";
742       boolean force = true;
743       client.deleteFeaturestoreAsync(name, force).get();
744       Assert.fail("No exception raised");
745     } catch (ExecutionException e) {
746       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
747       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
748       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
749     }
750   }
751 
752   @Test
createEntityTypeTest()753   public void createEntityTypeTest() throws Exception {
754     EntityType expectedResponse =
755         EntityType.newBuilder()
756             .setName(
757                 EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]")
758                     .toString())
759             .setDescription("description-1724546052")
760             .setCreateTime(Timestamp.newBuilder().build())
761             .setUpdateTime(Timestamp.newBuilder().build())
762             .putAllLabels(new HashMap<String, String>())
763             .setEtag("etag3123477")
764             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
765             .setOfflineStorageTtlDays(-844678422)
766             .build();
767     Operation resultOperation =
768         Operation.newBuilder()
769             .setName("createEntityTypeTest")
770             .setDone(true)
771             .setResponse(Any.pack(expectedResponse))
772             .build();
773     mockFeaturestoreService.addResponse(resultOperation);
774 
775     FeaturestoreName parent = FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
776     EntityType entityType = EntityType.newBuilder().build();
777 
778     EntityType actualResponse = client.createEntityTypeAsync(parent, entityType).get();
779     Assert.assertEquals(expectedResponse, actualResponse);
780 
781     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
782     Assert.assertEquals(1, actualRequests.size());
783     CreateEntityTypeRequest actualRequest = ((CreateEntityTypeRequest) actualRequests.get(0));
784 
785     Assert.assertEquals(parent.toString(), actualRequest.getParent());
786     Assert.assertEquals(entityType, actualRequest.getEntityType());
787     Assert.assertTrue(
788         channelProvider.isHeaderSent(
789             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
790             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
791   }
792 
793   @Test
createEntityTypeExceptionTest()794   public void createEntityTypeExceptionTest() throws Exception {
795     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
796     mockFeaturestoreService.addException(exception);
797 
798     try {
799       FeaturestoreName parent = FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
800       EntityType entityType = EntityType.newBuilder().build();
801       client.createEntityTypeAsync(parent, entityType).get();
802       Assert.fail("No exception raised");
803     } catch (ExecutionException e) {
804       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
805       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
806       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
807     }
808   }
809 
810   @Test
createEntityTypeTest2()811   public void createEntityTypeTest2() throws Exception {
812     EntityType expectedResponse =
813         EntityType.newBuilder()
814             .setName(
815                 EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]")
816                     .toString())
817             .setDescription("description-1724546052")
818             .setCreateTime(Timestamp.newBuilder().build())
819             .setUpdateTime(Timestamp.newBuilder().build())
820             .putAllLabels(new HashMap<String, String>())
821             .setEtag("etag3123477")
822             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
823             .setOfflineStorageTtlDays(-844678422)
824             .build();
825     Operation resultOperation =
826         Operation.newBuilder()
827             .setName("createEntityTypeTest")
828             .setDone(true)
829             .setResponse(Any.pack(expectedResponse))
830             .build();
831     mockFeaturestoreService.addResponse(resultOperation);
832 
833     String parent = "parent-995424086";
834     EntityType entityType = EntityType.newBuilder().build();
835 
836     EntityType actualResponse = client.createEntityTypeAsync(parent, entityType).get();
837     Assert.assertEquals(expectedResponse, actualResponse);
838 
839     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
840     Assert.assertEquals(1, actualRequests.size());
841     CreateEntityTypeRequest actualRequest = ((CreateEntityTypeRequest) actualRequests.get(0));
842 
843     Assert.assertEquals(parent, actualRequest.getParent());
844     Assert.assertEquals(entityType, actualRequest.getEntityType());
845     Assert.assertTrue(
846         channelProvider.isHeaderSent(
847             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
848             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
849   }
850 
851   @Test
createEntityTypeExceptionTest2()852   public void createEntityTypeExceptionTest2() throws Exception {
853     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
854     mockFeaturestoreService.addException(exception);
855 
856     try {
857       String parent = "parent-995424086";
858       EntityType entityType = EntityType.newBuilder().build();
859       client.createEntityTypeAsync(parent, entityType).get();
860       Assert.fail("No exception raised");
861     } catch (ExecutionException e) {
862       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
863       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
864       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
865     }
866   }
867 
868   @Test
createEntityTypeTest3()869   public void createEntityTypeTest3() throws Exception {
870     EntityType expectedResponse =
871         EntityType.newBuilder()
872             .setName(
873                 EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]")
874                     .toString())
875             .setDescription("description-1724546052")
876             .setCreateTime(Timestamp.newBuilder().build())
877             .setUpdateTime(Timestamp.newBuilder().build())
878             .putAllLabels(new HashMap<String, String>())
879             .setEtag("etag3123477")
880             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
881             .setOfflineStorageTtlDays(-844678422)
882             .build();
883     Operation resultOperation =
884         Operation.newBuilder()
885             .setName("createEntityTypeTest")
886             .setDone(true)
887             .setResponse(Any.pack(expectedResponse))
888             .build();
889     mockFeaturestoreService.addResponse(resultOperation);
890 
891     FeaturestoreName parent = FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
892     EntityType entityType = EntityType.newBuilder().build();
893     String entityTypeId = "entityTypeId767740856";
894 
895     EntityType actualResponse =
896         client.createEntityTypeAsync(parent, entityType, entityTypeId).get();
897     Assert.assertEquals(expectedResponse, actualResponse);
898 
899     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
900     Assert.assertEquals(1, actualRequests.size());
901     CreateEntityTypeRequest actualRequest = ((CreateEntityTypeRequest) actualRequests.get(0));
902 
903     Assert.assertEquals(parent.toString(), actualRequest.getParent());
904     Assert.assertEquals(entityType, actualRequest.getEntityType());
905     Assert.assertEquals(entityTypeId, actualRequest.getEntityTypeId());
906     Assert.assertTrue(
907         channelProvider.isHeaderSent(
908             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
909             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
910   }
911 
912   @Test
createEntityTypeExceptionTest3()913   public void createEntityTypeExceptionTest3() throws Exception {
914     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
915     mockFeaturestoreService.addException(exception);
916 
917     try {
918       FeaturestoreName parent = FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
919       EntityType entityType = EntityType.newBuilder().build();
920       String entityTypeId = "entityTypeId767740856";
921       client.createEntityTypeAsync(parent, entityType, entityTypeId).get();
922       Assert.fail("No exception raised");
923     } catch (ExecutionException e) {
924       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
925       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
926       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
927     }
928   }
929 
930   @Test
createEntityTypeTest4()931   public void createEntityTypeTest4() throws Exception {
932     EntityType expectedResponse =
933         EntityType.newBuilder()
934             .setName(
935                 EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]")
936                     .toString())
937             .setDescription("description-1724546052")
938             .setCreateTime(Timestamp.newBuilder().build())
939             .setUpdateTime(Timestamp.newBuilder().build())
940             .putAllLabels(new HashMap<String, String>())
941             .setEtag("etag3123477")
942             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
943             .setOfflineStorageTtlDays(-844678422)
944             .build();
945     Operation resultOperation =
946         Operation.newBuilder()
947             .setName("createEntityTypeTest")
948             .setDone(true)
949             .setResponse(Any.pack(expectedResponse))
950             .build();
951     mockFeaturestoreService.addResponse(resultOperation);
952 
953     String parent = "parent-995424086";
954     EntityType entityType = EntityType.newBuilder().build();
955     String entityTypeId = "entityTypeId767740856";
956 
957     EntityType actualResponse =
958         client.createEntityTypeAsync(parent, entityType, entityTypeId).get();
959     Assert.assertEquals(expectedResponse, actualResponse);
960 
961     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
962     Assert.assertEquals(1, actualRequests.size());
963     CreateEntityTypeRequest actualRequest = ((CreateEntityTypeRequest) actualRequests.get(0));
964 
965     Assert.assertEquals(parent, actualRequest.getParent());
966     Assert.assertEquals(entityType, actualRequest.getEntityType());
967     Assert.assertEquals(entityTypeId, actualRequest.getEntityTypeId());
968     Assert.assertTrue(
969         channelProvider.isHeaderSent(
970             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
971             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
972   }
973 
974   @Test
createEntityTypeExceptionTest4()975   public void createEntityTypeExceptionTest4() throws Exception {
976     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
977     mockFeaturestoreService.addException(exception);
978 
979     try {
980       String parent = "parent-995424086";
981       EntityType entityType = EntityType.newBuilder().build();
982       String entityTypeId = "entityTypeId767740856";
983       client.createEntityTypeAsync(parent, entityType, entityTypeId).get();
984       Assert.fail("No exception raised");
985     } catch (ExecutionException e) {
986       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
987       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
988       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
989     }
990   }
991 
992   @Test
getEntityTypeTest()993   public void getEntityTypeTest() throws Exception {
994     EntityType expectedResponse =
995         EntityType.newBuilder()
996             .setName(
997                 EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]")
998                     .toString())
999             .setDescription("description-1724546052")
1000             .setCreateTime(Timestamp.newBuilder().build())
1001             .setUpdateTime(Timestamp.newBuilder().build())
1002             .putAllLabels(new HashMap<String, String>())
1003             .setEtag("etag3123477")
1004             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
1005             .setOfflineStorageTtlDays(-844678422)
1006             .build();
1007     mockFeaturestoreService.addResponse(expectedResponse);
1008 
1009     EntityTypeName name =
1010         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1011 
1012     EntityType actualResponse = client.getEntityType(name);
1013     Assert.assertEquals(expectedResponse, actualResponse);
1014 
1015     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1016     Assert.assertEquals(1, actualRequests.size());
1017     GetEntityTypeRequest actualRequest = ((GetEntityTypeRequest) actualRequests.get(0));
1018 
1019     Assert.assertEquals(name.toString(), actualRequest.getName());
1020     Assert.assertTrue(
1021         channelProvider.isHeaderSent(
1022             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1023             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1024   }
1025 
1026   @Test
getEntityTypeExceptionTest()1027   public void getEntityTypeExceptionTest() throws Exception {
1028     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1029     mockFeaturestoreService.addException(exception);
1030 
1031     try {
1032       EntityTypeName name =
1033           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1034       client.getEntityType(name);
1035       Assert.fail("No exception raised");
1036     } catch (InvalidArgumentException e) {
1037       // Expected exception.
1038     }
1039   }
1040 
1041   @Test
getEntityTypeTest2()1042   public void getEntityTypeTest2() throws Exception {
1043     EntityType expectedResponse =
1044         EntityType.newBuilder()
1045             .setName(
1046                 EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]")
1047                     .toString())
1048             .setDescription("description-1724546052")
1049             .setCreateTime(Timestamp.newBuilder().build())
1050             .setUpdateTime(Timestamp.newBuilder().build())
1051             .putAllLabels(new HashMap<String, String>())
1052             .setEtag("etag3123477")
1053             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
1054             .setOfflineStorageTtlDays(-844678422)
1055             .build();
1056     mockFeaturestoreService.addResponse(expectedResponse);
1057 
1058     String name = "name3373707";
1059 
1060     EntityType actualResponse = client.getEntityType(name);
1061     Assert.assertEquals(expectedResponse, actualResponse);
1062 
1063     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1064     Assert.assertEquals(1, actualRequests.size());
1065     GetEntityTypeRequest actualRequest = ((GetEntityTypeRequest) actualRequests.get(0));
1066 
1067     Assert.assertEquals(name, actualRequest.getName());
1068     Assert.assertTrue(
1069         channelProvider.isHeaderSent(
1070             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1071             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1072   }
1073 
1074   @Test
getEntityTypeExceptionTest2()1075   public void getEntityTypeExceptionTest2() throws Exception {
1076     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1077     mockFeaturestoreService.addException(exception);
1078 
1079     try {
1080       String name = "name3373707";
1081       client.getEntityType(name);
1082       Assert.fail("No exception raised");
1083     } catch (InvalidArgumentException e) {
1084       // Expected exception.
1085     }
1086   }
1087 
1088   @Test
listEntityTypesTest()1089   public void listEntityTypesTest() throws Exception {
1090     EntityType responsesElement = EntityType.newBuilder().build();
1091     ListEntityTypesResponse expectedResponse =
1092         ListEntityTypesResponse.newBuilder()
1093             .setNextPageToken("")
1094             .addAllEntityTypes(Arrays.asList(responsesElement))
1095             .build();
1096     mockFeaturestoreService.addResponse(expectedResponse);
1097 
1098     FeaturestoreName parent = FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
1099 
1100     ListEntityTypesPagedResponse pagedListResponse = client.listEntityTypes(parent);
1101 
1102     List<EntityType> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1103 
1104     Assert.assertEquals(1, resources.size());
1105     Assert.assertEquals(expectedResponse.getEntityTypesList().get(0), resources.get(0));
1106 
1107     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1108     Assert.assertEquals(1, actualRequests.size());
1109     ListEntityTypesRequest actualRequest = ((ListEntityTypesRequest) actualRequests.get(0));
1110 
1111     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1112     Assert.assertTrue(
1113         channelProvider.isHeaderSent(
1114             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1115             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1116   }
1117 
1118   @Test
listEntityTypesExceptionTest()1119   public void listEntityTypesExceptionTest() throws Exception {
1120     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1121     mockFeaturestoreService.addException(exception);
1122 
1123     try {
1124       FeaturestoreName parent = FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
1125       client.listEntityTypes(parent);
1126       Assert.fail("No exception raised");
1127     } catch (InvalidArgumentException e) {
1128       // Expected exception.
1129     }
1130   }
1131 
1132   @Test
listEntityTypesTest2()1133   public void listEntityTypesTest2() throws Exception {
1134     EntityType responsesElement = EntityType.newBuilder().build();
1135     ListEntityTypesResponse expectedResponse =
1136         ListEntityTypesResponse.newBuilder()
1137             .setNextPageToken("")
1138             .addAllEntityTypes(Arrays.asList(responsesElement))
1139             .build();
1140     mockFeaturestoreService.addResponse(expectedResponse);
1141 
1142     String parent = "parent-995424086";
1143 
1144     ListEntityTypesPagedResponse pagedListResponse = client.listEntityTypes(parent);
1145 
1146     List<EntityType> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1147 
1148     Assert.assertEquals(1, resources.size());
1149     Assert.assertEquals(expectedResponse.getEntityTypesList().get(0), resources.get(0));
1150 
1151     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1152     Assert.assertEquals(1, actualRequests.size());
1153     ListEntityTypesRequest actualRequest = ((ListEntityTypesRequest) actualRequests.get(0));
1154 
1155     Assert.assertEquals(parent, actualRequest.getParent());
1156     Assert.assertTrue(
1157         channelProvider.isHeaderSent(
1158             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1159             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1160   }
1161 
1162   @Test
listEntityTypesExceptionTest2()1163   public void listEntityTypesExceptionTest2() throws Exception {
1164     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1165     mockFeaturestoreService.addException(exception);
1166 
1167     try {
1168       String parent = "parent-995424086";
1169       client.listEntityTypes(parent);
1170       Assert.fail("No exception raised");
1171     } catch (InvalidArgumentException e) {
1172       // Expected exception.
1173     }
1174   }
1175 
1176   @Test
updateEntityTypeTest()1177   public void updateEntityTypeTest() throws Exception {
1178     EntityType expectedResponse =
1179         EntityType.newBuilder()
1180             .setName(
1181                 EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]")
1182                     .toString())
1183             .setDescription("description-1724546052")
1184             .setCreateTime(Timestamp.newBuilder().build())
1185             .setUpdateTime(Timestamp.newBuilder().build())
1186             .putAllLabels(new HashMap<String, String>())
1187             .setEtag("etag3123477")
1188             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
1189             .setOfflineStorageTtlDays(-844678422)
1190             .build();
1191     mockFeaturestoreService.addResponse(expectedResponse);
1192 
1193     EntityType entityType = EntityType.newBuilder().build();
1194     FieldMask updateMask = FieldMask.newBuilder().build();
1195 
1196     EntityType actualResponse = client.updateEntityType(entityType, updateMask);
1197     Assert.assertEquals(expectedResponse, actualResponse);
1198 
1199     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1200     Assert.assertEquals(1, actualRequests.size());
1201     UpdateEntityTypeRequest actualRequest = ((UpdateEntityTypeRequest) actualRequests.get(0));
1202 
1203     Assert.assertEquals(entityType, actualRequest.getEntityType());
1204     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
1205     Assert.assertTrue(
1206         channelProvider.isHeaderSent(
1207             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1208             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1209   }
1210 
1211   @Test
updateEntityTypeExceptionTest()1212   public void updateEntityTypeExceptionTest() throws Exception {
1213     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1214     mockFeaturestoreService.addException(exception);
1215 
1216     try {
1217       EntityType entityType = EntityType.newBuilder().build();
1218       FieldMask updateMask = FieldMask.newBuilder().build();
1219       client.updateEntityType(entityType, updateMask);
1220       Assert.fail("No exception raised");
1221     } catch (InvalidArgumentException e) {
1222       // Expected exception.
1223     }
1224   }
1225 
1226   @Test
deleteEntityTypeTest()1227   public void deleteEntityTypeTest() throws Exception {
1228     Empty expectedResponse = Empty.newBuilder().build();
1229     Operation resultOperation =
1230         Operation.newBuilder()
1231             .setName("deleteEntityTypeTest")
1232             .setDone(true)
1233             .setResponse(Any.pack(expectedResponse))
1234             .build();
1235     mockFeaturestoreService.addResponse(resultOperation);
1236 
1237     EntityTypeName name =
1238         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1239 
1240     client.deleteEntityTypeAsync(name).get();
1241 
1242     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1243     Assert.assertEquals(1, actualRequests.size());
1244     DeleteEntityTypeRequest actualRequest = ((DeleteEntityTypeRequest) actualRequests.get(0));
1245 
1246     Assert.assertEquals(name.toString(), actualRequest.getName());
1247     Assert.assertTrue(
1248         channelProvider.isHeaderSent(
1249             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1250             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1251   }
1252 
1253   @Test
deleteEntityTypeExceptionTest()1254   public void deleteEntityTypeExceptionTest() throws Exception {
1255     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1256     mockFeaturestoreService.addException(exception);
1257 
1258     try {
1259       EntityTypeName name =
1260           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1261       client.deleteEntityTypeAsync(name).get();
1262       Assert.fail("No exception raised");
1263     } catch (ExecutionException e) {
1264       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1265       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1266       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1267     }
1268   }
1269 
1270   @Test
deleteEntityTypeTest2()1271   public void deleteEntityTypeTest2() throws Exception {
1272     Empty expectedResponse = Empty.newBuilder().build();
1273     Operation resultOperation =
1274         Operation.newBuilder()
1275             .setName("deleteEntityTypeTest")
1276             .setDone(true)
1277             .setResponse(Any.pack(expectedResponse))
1278             .build();
1279     mockFeaturestoreService.addResponse(resultOperation);
1280 
1281     String name = "name3373707";
1282 
1283     client.deleteEntityTypeAsync(name).get();
1284 
1285     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1286     Assert.assertEquals(1, actualRequests.size());
1287     DeleteEntityTypeRequest actualRequest = ((DeleteEntityTypeRequest) actualRequests.get(0));
1288 
1289     Assert.assertEquals(name, actualRequest.getName());
1290     Assert.assertTrue(
1291         channelProvider.isHeaderSent(
1292             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1293             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1294   }
1295 
1296   @Test
deleteEntityTypeExceptionTest2()1297   public void deleteEntityTypeExceptionTest2() throws Exception {
1298     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1299     mockFeaturestoreService.addException(exception);
1300 
1301     try {
1302       String name = "name3373707";
1303       client.deleteEntityTypeAsync(name).get();
1304       Assert.fail("No exception raised");
1305     } catch (ExecutionException e) {
1306       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1307       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1308       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1309     }
1310   }
1311 
1312   @Test
deleteEntityTypeTest3()1313   public void deleteEntityTypeTest3() throws Exception {
1314     Empty expectedResponse = Empty.newBuilder().build();
1315     Operation resultOperation =
1316         Operation.newBuilder()
1317             .setName("deleteEntityTypeTest")
1318             .setDone(true)
1319             .setResponse(Any.pack(expectedResponse))
1320             .build();
1321     mockFeaturestoreService.addResponse(resultOperation);
1322 
1323     EntityTypeName name =
1324         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1325     boolean force = true;
1326 
1327     client.deleteEntityTypeAsync(name, force).get();
1328 
1329     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1330     Assert.assertEquals(1, actualRequests.size());
1331     DeleteEntityTypeRequest actualRequest = ((DeleteEntityTypeRequest) actualRequests.get(0));
1332 
1333     Assert.assertEquals(name.toString(), actualRequest.getName());
1334     Assert.assertEquals(force, actualRequest.getForce());
1335     Assert.assertTrue(
1336         channelProvider.isHeaderSent(
1337             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1338             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1339   }
1340 
1341   @Test
deleteEntityTypeExceptionTest3()1342   public void deleteEntityTypeExceptionTest3() throws Exception {
1343     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1344     mockFeaturestoreService.addException(exception);
1345 
1346     try {
1347       EntityTypeName name =
1348           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1349       boolean force = true;
1350       client.deleteEntityTypeAsync(name, force).get();
1351       Assert.fail("No exception raised");
1352     } catch (ExecutionException e) {
1353       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1354       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1355       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1356     }
1357   }
1358 
1359   @Test
deleteEntityTypeTest4()1360   public void deleteEntityTypeTest4() throws Exception {
1361     Empty expectedResponse = Empty.newBuilder().build();
1362     Operation resultOperation =
1363         Operation.newBuilder()
1364             .setName("deleteEntityTypeTest")
1365             .setDone(true)
1366             .setResponse(Any.pack(expectedResponse))
1367             .build();
1368     mockFeaturestoreService.addResponse(resultOperation);
1369 
1370     String name = "name3373707";
1371     boolean force = true;
1372 
1373     client.deleteEntityTypeAsync(name, force).get();
1374 
1375     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1376     Assert.assertEquals(1, actualRequests.size());
1377     DeleteEntityTypeRequest actualRequest = ((DeleteEntityTypeRequest) actualRequests.get(0));
1378 
1379     Assert.assertEquals(name, actualRequest.getName());
1380     Assert.assertEquals(force, actualRequest.getForce());
1381     Assert.assertTrue(
1382         channelProvider.isHeaderSent(
1383             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1384             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1385   }
1386 
1387   @Test
deleteEntityTypeExceptionTest4()1388   public void deleteEntityTypeExceptionTest4() throws Exception {
1389     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1390     mockFeaturestoreService.addException(exception);
1391 
1392     try {
1393       String name = "name3373707";
1394       boolean force = true;
1395       client.deleteEntityTypeAsync(name, force).get();
1396       Assert.fail("No exception raised");
1397     } catch (ExecutionException e) {
1398       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1399       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1400       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1401     }
1402   }
1403 
1404   @Test
createFeatureTest()1405   public void createFeatureTest() throws Exception {
1406     Feature expectedResponse =
1407         Feature.newBuilder()
1408             .setName(
1409                 FeatureName.of(
1410                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1411                     .toString())
1412             .setDescription("description-1724546052")
1413             .setCreateTime(Timestamp.newBuilder().build())
1414             .setUpdateTime(Timestamp.newBuilder().build())
1415             .putAllLabels(new HashMap<String, String>())
1416             .setEtag("etag3123477")
1417             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
1418             .setDisableMonitoring(true)
1419             .addAllMonitoringStats(new ArrayList<FeatureStatsAnomaly>())
1420             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1421             .build();
1422     Operation resultOperation =
1423         Operation.newBuilder()
1424             .setName("createFeatureTest")
1425             .setDone(true)
1426             .setResponse(Any.pack(expectedResponse))
1427             .build();
1428     mockFeaturestoreService.addResponse(resultOperation);
1429 
1430     EntityTypeName parent =
1431         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1432     Feature feature = Feature.newBuilder().build();
1433 
1434     Feature actualResponse = client.createFeatureAsync(parent, feature).get();
1435     Assert.assertEquals(expectedResponse, actualResponse);
1436 
1437     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1438     Assert.assertEquals(1, actualRequests.size());
1439     CreateFeatureRequest actualRequest = ((CreateFeatureRequest) actualRequests.get(0));
1440 
1441     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1442     Assert.assertEquals(feature, actualRequest.getFeature());
1443     Assert.assertTrue(
1444         channelProvider.isHeaderSent(
1445             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1446             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1447   }
1448 
1449   @Test
createFeatureExceptionTest()1450   public void createFeatureExceptionTest() throws Exception {
1451     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1452     mockFeaturestoreService.addException(exception);
1453 
1454     try {
1455       EntityTypeName parent =
1456           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1457       Feature feature = Feature.newBuilder().build();
1458       client.createFeatureAsync(parent, feature).get();
1459       Assert.fail("No exception raised");
1460     } catch (ExecutionException e) {
1461       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1462       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1463       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1464     }
1465   }
1466 
1467   @Test
createFeatureTest2()1468   public void createFeatureTest2() throws Exception {
1469     Feature expectedResponse =
1470         Feature.newBuilder()
1471             .setName(
1472                 FeatureName.of(
1473                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1474                     .toString())
1475             .setDescription("description-1724546052")
1476             .setCreateTime(Timestamp.newBuilder().build())
1477             .setUpdateTime(Timestamp.newBuilder().build())
1478             .putAllLabels(new HashMap<String, String>())
1479             .setEtag("etag3123477")
1480             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
1481             .setDisableMonitoring(true)
1482             .addAllMonitoringStats(new ArrayList<FeatureStatsAnomaly>())
1483             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1484             .build();
1485     Operation resultOperation =
1486         Operation.newBuilder()
1487             .setName("createFeatureTest")
1488             .setDone(true)
1489             .setResponse(Any.pack(expectedResponse))
1490             .build();
1491     mockFeaturestoreService.addResponse(resultOperation);
1492 
1493     String parent = "parent-995424086";
1494     Feature feature = Feature.newBuilder().build();
1495 
1496     Feature actualResponse = client.createFeatureAsync(parent, feature).get();
1497     Assert.assertEquals(expectedResponse, actualResponse);
1498 
1499     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1500     Assert.assertEquals(1, actualRequests.size());
1501     CreateFeatureRequest actualRequest = ((CreateFeatureRequest) actualRequests.get(0));
1502 
1503     Assert.assertEquals(parent, actualRequest.getParent());
1504     Assert.assertEquals(feature, actualRequest.getFeature());
1505     Assert.assertTrue(
1506         channelProvider.isHeaderSent(
1507             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1508             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1509   }
1510 
1511   @Test
createFeatureExceptionTest2()1512   public void createFeatureExceptionTest2() throws Exception {
1513     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1514     mockFeaturestoreService.addException(exception);
1515 
1516     try {
1517       String parent = "parent-995424086";
1518       Feature feature = Feature.newBuilder().build();
1519       client.createFeatureAsync(parent, feature).get();
1520       Assert.fail("No exception raised");
1521     } catch (ExecutionException e) {
1522       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1523       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1524       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1525     }
1526   }
1527 
1528   @Test
createFeatureTest3()1529   public void createFeatureTest3() throws Exception {
1530     Feature expectedResponse =
1531         Feature.newBuilder()
1532             .setName(
1533                 FeatureName.of(
1534                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1535                     .toString())
1536             .setDescription("description-1724546052")
1537             .setCreateTime(Timestamp.newBuilder().build())
1538             .setUpdateTime(Timestamp.newBuilder().build())
1539             .putAllLabels(new HashMap<String, String>())
1540             .setEtag("etag3123477")
1541             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
1542             .setDisableMonitoring(true)
1543             .addAllMonitoringStats(new ArrayList<FeatureStatsAnomaly>())
1544             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1545             .build();
1546     Operation resultOperation =
1547         Operation.newBuilder()
1548             .setName("createFeatureTest")
1549             .setDone(true)
1550             .setResponse(Any.pack(expectedResponse))
1551             .build();
1552     mockFeaturestoreService.addResponse(resultOperation);
1553 
1554     EntityTypeName parent =
1555         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1556     Feature feature = Feature.newBuilder().build();
1557     String featureId = "featureId-420503887";
1558 
1559     Feature actualResponse = client.createFeatureAsync(parent, feature, featureId).get();
1560     Assert.assertEquals(expectedResponse, actualResponse);
1561 
1562     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1563     Assert.assertEquals(1, actualRequests.size());
1564     CreateFeatureRequest actualRequest = ((CreateFeatureRequest) actualRequests.get(0));
1565 
1566     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1567     Assert.assertEquals(feature, actualRequest.getFeature());
1568     Assert.assertEquals(featureId, actualRequest.getFeatureId());
1569     Assert.assertTrue(
1570         channelProvider.isHeaderSent(
1571             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1572             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1573   }
1574 
1575   @Test
createFeatureExceptionTest3()1576   public void createFeatureExceptionTest3() throws Exception {
1577     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1578     mockFeaturestoreService.addException(exception);
1579 
1580     try {
1581       EntityTypeName parent =
1582           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1583       Feature feature = Feature.newBuilder().build();
1584       String featureId = "featureId-420503887";
1585       client.createFeatureAsync(parent, feature, featureId).get();
1586       Assert.fail("No exception raised");
1587     } catch (ExecutionException e) {
1588       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1589       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1590       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1591     }
1592   }
1593 
1594   @Test
createFeatureTest4()1595   public void createFeatureTest4() throws Exception {
1596     Feature expectedResponse =
1597         Feature.newBuilder()
1598             .setName(
1599                 FeatureName.of(
1600                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1601                     .toString())
1602             .setDescription("description-1724546052")
1603             .setCreateTime(Timestamp.newBuilder().build())
1604             .setUpdateTime(Timestamp.newBuilder().build())
1605             .putAllLabels(new HashMap<String, String>())
1606             .setEtag("etag3123477")
1607             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
1608             .setDisableMonitoring(true)
1609             .addAllMonitoringStats(new ArrayList<FeatureStatsAnomaly>())
1610             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1611             .build();
1612     Operation resultOperation =
1613         Operation.newBuilder()
1614             .setName("createFeatureTest")
1615             .setDone(true)
1616             .setResponse(Any.pack(expectedResponse))
1617             .build();
1618     mockFeaturestoreService.addResponse(resultOperation);
1619 
1620     String parent = "parent-995424086";
1621     Feature feature = Feature.newBuilder().build();
1622     String featureId = "featureId-420503887";
1623 
1624     Feature actualResponse = client.createFeatureAsync(parent, feature, featureId).get();
1625     Assert.assertEquals(expectedResponse, actualResponse);
1626 
1627     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1628     Assert.assertEquals(1, actualRequests.size());
1629     CreateFeatureRequest actualRequest = ((CreateFeatureRequest) actualRequests.get(0));
1630 
1631     Assert.assertEquals(parent, actualRequest.getParent());
1632     Assert.assertEquals(feature, actualRequest.getFeature());
1633     Assert.assertEquals(featureId, actualRequest.getFeatureId());
1634     Assert.assertTrue(
1635         channelProvider.isHeaderSent(
1636             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1637             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1638   }
1639 
1640   @Test
createFeatureExceptionTest4()1641   public void createFeatureExceptionTest4() throws Exception {
1642     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1643     mockFeaturestoreService.addException(exception);
1644 
1645     try {
1646       String parent = "parent-995424086";
1647       Feature feature = Feature.newBuilder().build();
1648       String featureId = "featureId-420503887";
1649       client.createFeatureAsync(parent, feature, featureId).get();
1650       Assert.fail("No exception raised");
1651     } catch (ExecutionException e) {
1652       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1653       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1654       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1655     }
1656   }
1657 
1658   @Test
batchCreateFeaturesTest()1659   public void batchCreateFeaturesTest() throws Exception {
1660     BatchCreateFeaturesResponse expectedResponse =
1661         BatchCreateFeaturesResponse.newBuilder().addAllFeatures(new ArrayList<Feature>()).build();
1662     Operation resultOperation =
1663         Operation.newBuilder()
1664             .setName("batchCreateFeaturesTest")
1665             .setDone(true)
1666             .setResponse(Any.pack(expectedResponse))
1667             .build();
1668     mockFeaturestoreService.addResponse(resultOperation);
1669 
1670     EntityTypeName parent =
1671         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1672     List<CreateFeatureRequest> requests = new ArrayList<>();
1673 
1674     BatchCreateFeaturesResponse actualResponse =
1675         client.batchCreateFeaturesAsync(parent, requests).get();
1676     Assert.assertEquals(expectedResponse, actualResponse);
1677 
1678     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1679     Assert.assertEquals(1, actualRequests.size());
1680     BatchCreateFeaturesRequest actualRequest = ((BatchCreateFeaturesRequest) actualRequests.get(0));
1681 
1682     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1683     Assert.assertEquals(requests, actualRequest.getRequestsList());
1684     Assert.assertTrue(
1685         channelProvider.isHeaderSent(
1686             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1687             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1688   }
1689 
1690   @Test
batchCreateFeaturesExceptionTest()1691   public void batchCreateFeaturesExceptionTest() throws Exception {
1692     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1693     mockFeaturestoreService.addException(exception);
1694 
1695     try {
1696       EntityTypeName parent =
1697           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1698       List<CreateFeatureRequest> requests = new ArrayList<>();
1699       client.batchCreateFeaturesAsync(parent, requests).get();
1700       Assert.fail("No exception raised");
1701     } catch (ExecutionException e) {
1702       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1703       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1704       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1705     }
1706   }
1707 
1708   @Test
batchCreateFeaturesTest2()1709   public void batchCreateFeaturesTest2() throws Exception {
1710     BatchCreateFeaturesResponse expectedResponse =
1711         BatchCreateFeaturesResponse.newBuilder().addAllFeatures(new ArrayList<Feature>()).build();
1712     Operation resultOperation =
1713         Operation.newBuilder()
1714             .setName("batchCreateFeaturesTest")
1715             .setDone(true)
1716             .setResponse(Any.pack(expectedResponse))
1717             .build();
1718     mockFeaturestoreService.addResponse(resultOperation);
1719 
1720     String parent = "parent-995424086";
1721     List<CreateFeatureRequest> requests = new ArrayList<>();
1722 
1723     BatchCreateFeaturesResponse actualResponse =
1724         client.batchCreateFeaturesAsync(parent, requests).get();
1725     Assert.assertEquals(expectedResponse, actualResponse);
1726 
1727     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1728     Assert.assertEquals(1, actualRequests.size());
1729     BatchCreateFeaturesRequest actualRequest = ((BatchCreateFeaturesRequest) actualRequests.get(0));
1730 
1731     Assert.assertEquals(parent, actualRequest.getParent());
1732     Assert.assertEquals(requests, actualRequest.getRequestsList());
1733     Assert.assertTrue(
1734         channelProvider.isHeaderSent(
1735             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1736             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1737   }
1738 
1739   @Test
batchCreateFeaturesExceptionTest2()1740   public void batchCreateFeaturesExceptionTest2() throws Exception {
1741     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1742     mockFeaturestoreService.addException(exception);
1743 
1744     try {
1745       String parent = "parent-995424086";
1746       List<CreateFeatureRequest> requests = new ArrayList<>();
1747       client.batchCreateFeaturesAsync(parent, requests).get();
1748       Assert.fail("No exception raised");
1749     } catch (ExecutionException e) {
1750       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1751       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1752       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1753     }
1754   }
1755 
1756   @Test
getFeatureTest()1757   public void getFeatureTest() throws Exception {
1758     Feature expectedResponse =
1759         Feature.newBuilder()
1760             .setName(
1761                 FeatureName.of(
1762                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1763                     .toString())
1764             .setDescription("description-1724546052")
1765             .setCreateTime(Timestamp.newBuilder().build())
1766             .setUpdateTime(Timestamp.newBuilder().build())
1767             .putAllLabels(new HashMap<String, String>())
1768             .setEtag("etag3123477")
1769             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
1770             .setDisableMonitoring(true)
1771             .addAllMonitoringStats(new ArrayList<FeatureStatsAnomaly>())
1772             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1773             .build();
1774     mockFeaturestoreService.addResponse(expectedResponse);
1775 
1776     FeatureName name =
1777         FeatureName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]");
1778 
1779     Feature actualResponse = client.getFeature(name);
1780     Assert.assertEquals(expectedResponse, actualResponse);
1781 
1782     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1783     Assert.assertEquals(1, actualRequests.size());
1784     GetFeatureRequest actualRequest = ((GetFeatureRequest) actualRequests.get(0));
1785 
1786     Assert.assertEquals(name.toString(), actualRequest.getName());
1787     Assert.assertTrue(
1788         channelProvider.isHeaderSent(
1789             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1790             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1791   }
1792 
1793   @Test
getFeatureExceptionTest()1794   public void getFeatureExceptionTest() throws Exception {
1795     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1796     mockFeaturestoreService.addException(exception);
1797 
1798     try {
1799       FeatureName name =
1800           FeatureName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]");
1801       client.getFeature(name);
1802       Assert.fail("No exception raised");
1803     } catch (InvalidArgumentException e) {
1804       // Expected exception.
1805     }
1806   }
1807 
1808   @Test
getFeatureTest2()1809   public void getFeatureTest2() throws Exception {
1810     Feature expectedResponse =
1811         Feature.newBuilder()
1812             .setName(
1813                 FeatureName.of(
1814                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1815                     .toString())
1816             .setDescription("description-1724546052")
1817             .setCreateTime(Timestamp.newBuilder().build())
1818             .setUpdateTime(Timestamp.newBuilder().build())
1819             .putAllLabels(new HashMap<String, String>())
1820             .setEtag("etag3123477")
1821             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
1822             .setDisableMonitoring(true)
1823             .addAllMonitoringStats(new ArrayList<FeatureStatsAnomaly>())
1824             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1825             .build();
1826     mockFeaturestoreService.addResponse(expectedResponse);
1827 
1828     String name = "name3373707";
1829 
1830     Feature actualResponse = client.getFeature(name);
1831     Assert.assertEquals(expectedResponse, actualResponse);
1832 
1833     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1834     Assert.assertEquals(1, actualRequests.size());
1835     GetFeatureRequest actualRequest = ((GetFeatureRequest) actualRequests.get(0));
1836 
1837     Assert.assertEquals(name, actualRequest.getName());
1838     Assert.assertTrue(
1839         channelProvider.isHeaderSent(
1840             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1841             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1842   }
1843 
1844   @Test
getFeatureExceptionTest2()1845   public void getFeatureExceptionTest2() throws Exception {
1846     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1847     mockFeaturestoreService.addException(exception);
1848 
1849     try {
1850       String name = "name3373707";
1851       client.getFeature(name);
1852       Assert.fail("No exception raised");
1853     } catch (InvalidArgumentException e) {
1854       // Expected exception.
1855     }
1856   }
1857 
1858   @Test
listFeaturesTest()1859   public void listFeaturesTest() throws Exception {
1860     Feature responsesElement = Feature.newBuilder().build();
1861     ListFeaturesResponse expectedResponse =
1862         ListFeaturesResponse.newBuilder()
1863             .setNextPageToken("")
1864             .addAllFeatures(Arrays.asList(responsesElement))
1865             .build();
1866     mockFeaturestoreService.addResponse(expectedResponse);
1867 
1868     EntityTypeName parent =
1869         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1870 
1871     ListFeaturesPagedResponse pagedListResponse = client.listFeatures(parent);
1872 
1873     List<Feature> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1874 
1875     Assert.assertEquals(1, resources.size());
1876     Assert.assertEquals(expectedResponse.getFeaturesList().get(0), resources.get(0));
1877 
1878     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1879     Assert.assertEquals(1, actualRequests.size());
1880     ListFeaturesRequest actualRequest = ((ListFeaturesRequest) actualRequests.get(0));
1881 
1882     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1883     Assert.assertTrue(
1884         channelProvider.isHeaderSent(
1885             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1886             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1887   }
1888 
1889   @Test
listFeaturesExceptionTest()1890   public void listFeaturesExceptionTest() throws Exception {
1891     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1892     mockFeaturestoreService.addException(exception);
1893 
1894     try {
1895       EntityTypeName parent =
1896           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1897       client.listFeatures(parent);
1898       Assert.fail("No exception raised");
1899     } catch (InvalidArgumentException e) {
1900       // Expected exception.
1901     }
1902   }
1903 
1904   @Test
listFeaturesTest2()1905   public void listFeaturesTest2() throws Exception {
1906     Feature responsesElement = Feature.newBuilder().build();
1907     ListFeaturesResponse expectedResponse =
1908         ListFeaturesResponse.newBuilder()
1909             .setNextPageToken("")
1910             .addAllFeatures(Arrays.asList(responsesElement))
1911             .build();
1912     mockFeaturestoreService.addResponse(expectedResponse);
1913 
1914     String parent = "parent-995424086";
1915 
1916     ListFeaturesPagedResponse pagedListResponse = client.listFeatures(parent);
1917 
1918     List<Feature> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1919 
1920     Assert.assertEquals(1, resources.size());
1921     Assert.assertEquals(expectedResponse.getFeaturesList().get(0), resources.get(0));
1922 
1923     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1924     Assert.assertEquals(1, actualRequests.size());
1925     ListFeaturesRequest actualRequest = ((ListFeaturesRequest) actualRequests.get(0));
1926 
1927     Assert.assertEquals(parent, actualRequest.getParent());
1928     Assert.assertTrue(
1929         channelProvider.isHeaderSent(
1930             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1931             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1932   }
1933 
1934   @Test
listFeaturesExceptionTest2()1935   public void listFeaturesExceptionTest2() throws Exception {
1936     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1937     mockFeaturestoreService.addException(exception);
1938 
1939     try {
1940       String parent = "parent-995424086";
1941       client.listFeatures(parent);
1942       Assert.fail("No exception raised");
1943     } catch (InvalidArgumentException e) {
1944       // Expected exception.
1945     }
1946   }
1947 
1948   @Test
updateFeatureTest()1949   public void updateFeatureTest() throws Exception {
1950     Feature expectedResponse =
1951         Feature.newBuilder()
1952             .setName(
1953                 FeatureName.of(
1954                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1955                     .toString())
1956             .setDescription("description-1724546052")
1957             .setCreateTime(Timestamp.newBuilder().build())
1958             .setUpdateTime(Timestamp.newBuilder().build())
1959             .putAllLabels(new HashMap<String, String>())
1960             .setEtag("etag3123477")
1961             .setMonitoringConfig(FeaturestoreMonitoringConfig.newBuilder().build())
1962             .setDisableMonitoring(true)
1963             .addAllMonitoringStats(new ArrayList<FeatureStatsAnomaly>())
1964             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1965             .build();
1966     mockFeaturestoreService.addResponse(expectedResponse);
1967 
1968     Feature feature = Feature.newBuilder().build();
1969     FieldMask updateMask = FieldMask.newBuilder().build();
1970 
1971     Feature actualResponse = client.updateFeature(feature, updateMask);
1972     Assert.assertEquals(expectedResponse, actualResponse);
1973 
1974     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1975     Assert.assertEquals(1, actualRequests.size());
1976     UpdateFeatureRequest actualRequest = ((UpdateFeatureRequest) actualRequests.get(0));
1977 
1978     Assert.assertEquals(feature, actualRequest.getFeature());
1979     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
1980     Assert.assertTrue(
1981         channelProvider.isHeaderSent(
1982             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1983             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1984   }
1985 
1986   @Test
updateFeatureExceptionTest()1987   public void updateFeatureExceptionTest() throws Exception {
1988     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1989     mockFeaturestoreService.addException(exception);
1990 
1991     try {
1992       Feature feature = Feature.newBuilder().build();
1993       FieldMask updateMask = FieldMask.newBuilder().build();
1994       client.updateFeature(feature, updateMask);
1995       Assert.fail("No exception raised");
1996     } catch (InvalidArgumentException e) {
1997       // Expected exception.
1998     }
1999   }
2000 
2001   @Test
deleteFeatureTest()2002   public void deleteFeatureTest() throws Exception {
2003     Empty expectedResponse = Empty.newBuilder().build();
2004     Operation resultOperation =
2005         Operation.newBuilder()
2006             .setName("deleteFeatureTest")
2007             .setDone(true)
2008             .setResponse(Any.pack(expectedResponse))
2009             .build();
2010     mockFeaturestoreService.addResponse(resultOperation);
2011 
2012     FeatureName name =
2013         FeatureName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]");
2014 
2015     client.deleteFeatureAsync(name).get();
2016 
2017     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2018     Assert.assertEquals(1, actualRequests.size());
2019     DeleteFeatureRequest actualRequest = ((DeleteFeatureRequest) actualRequests.get(0));
2020 
2021     Assert.assertEquals(name.toString(), actualRequest.getName());
2022     Assert.assertTrue(
2023         channelProvider.isHeaderSent(
2024             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2025             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2026   }
2027 
2028   @Test
deleteFeatureExceptionTest()2029   public void deleteFeatureExceptionTest() throws Exception {
2030     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2031     mockFeaturestoreService.addException(exception);
2032 
2033     try {
2034       FeatureName name =
2035           FeatureName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]");
2036       client.deleteFeatureAsync(name).get();
2037       Assert.fail("No exception raised");
2038     } catch (ExecutionException e) {
2039       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2040       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2041       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2042     }
2043   }
2044 
2045   @Test
deleteFeatureTest2()2046   public void deleteFeatureTest2() throws Exception {
2047     Empty expectedResponse = Empty.newBuilder().build();
2048     Operation resultOperation =
2049         Operation.newBuilder()
2050             .setName("deleteFeatureTest")
2051             .setDone(true)
2052             .setResponse(Any.pack(expectedResponse))
2053             .build();
2054     mockFeaturestoreService.addResponse(resultOperation);
2055 
2056     String name = "name3373707";
2057 
2058     client.deleteFeatureAsync(name).get();
2059 
2060     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2061     Assert.assertEquals(1, actualRequests.size());
2062     DeleteFeatureRequest actualRequest = ((DeleteFeatureRequest) actualRequests.get(0));
2063 
2064     Assert.assertEquals(name, actualRequest.getName());
2065     Assert.assertTrue(
2066         channelProvider.isHeaderSent(
2067             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2068             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2069   }
2070 
2071   @Test
deleteFeatureExceptionTest2()2072   public void deleteFeatureExceptionTest2() throws Exception {
2073     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2074     mockFeaturestoreService.addException(exception);
2075 
2076     try {
2077       String name = "name3373707";
2078       client.deleteFeatureAsync(name).get();
2079       Assert.fail("No exception raised");
2080     } catch (ExecutionException e) {
2081       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2082       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2083       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2084     }
2085   }
2086 
2087   @Test
importFeatureValuesTest()2088   public void importFeatureValuesTest() throws Exception {
2089     ImportFeatureValuesResponse expectedResponse =
2090         ImportFeatureValuesResponse.newBuilder()
2091             .setImportedEntityCount(-1840044274)
2092             .setImportedFeatureValueCount(-1221471427)
2093             .setInvalidRowCount(-366655966)
2094             .setTimestampOutsideRetentionRowsCount(-43092019)
2095             .build();
2096     Operation resultOperation =
2097         Operation.newBuilder()
2098             .setName("importFeatureValuesTest")
2099             .setDone(true)
2100             .setResponse(Any.pack(expectedResponse))
2101             .build();
2102     mockFeaturestoreService.addResponse(resultOperation);
2103 
2104     EntityTypeName entityType =
2105         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
2106 
2107     ImportFeatureValuesResponse actualResponse = client.importFeatureValuesAsync(entityType).get();
2108     Assert.assertEquals(expectedResponse, actualResponse);
2109 
2110     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2111     Assert.assertEquals(1, actualRequests.size());
2112     ImportFeatureValuesRequest actualRequest = ((ImportFeatureValuesRequest) actualRequests.get(0));
2113 
2114     Assert.assertEquals(entityType.toString(), actualRequest.getEntityType());
2115     Assert.assertTrue(
2116         channelProvider.isHeaderSent(
2117             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2118             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2119   }
2120 
2121   @Test
importFeatureValuesExceptionTest()2122   public void importFeatureValuesExceptionTest() throws Exception {
2123     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2124     mockFeaturestoreService.addException(exception);
2125 
2126     try {
2127       EntityTypeName entityType =
2128           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
2129       client.importFeatureValuesAsync(entityType).get();
2130       Assert.fail("No exception raised");
2131     } catch (ExecutionException e) {
2132       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2133       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2134       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2135     }
2136   }
2137 
2138   @Test
importFeatureValuesTest2()2139   public void importFeatureValuesTest2() throws Exception {
2140     ImportFeatureValuesResponse expectedResponse =
2141         ImportFeatureValuesResponse.newBuilder()
2142             .setImportedEntityCount(-1840044274)
2143             .setImportedFeatureValueCount(-1221471427)
2144             .setInvalidRowCount(-366655966)
2145             .setTimestampOutsideRetentionRowsCount(-43092019)
2146             .build();
2147     Operation resultOperation =
2148         Operation.newBuilder()
2149             .setName("importFeatureValuesTest")
2150             .setDone(true)
2151             .setResponse(Any.pack(expectedResponse))
2152             .build();
2153     mockFeaturestoreService.addResponse(resultOperation);
2154 
2155     String entityType = "entityType-1482998339";
2156 
2157     ImportFeatureValuesResponse actualResponse = client.importFeatureValuesAsync(entityType).get();
2158     Assert.assertEquals(expectedResponse, actualResponse);
2159 
2160     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2161     Assert.assertEquals(1, actualRequests.size());
2162     ImportFeatureValuesRequest actualRequest = ((ImportFeatureValuesRequest) actualRequests.get(0));
2163 
2164     Assert.assertEquals(entityType, actualRequest.getEntityType());
2165     Assert.assertTrue(
2166         channelProvider.isHeaderSent(
2167             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2168             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2169   }
2170 
2171   @Test
importFeatureValuesExceptionTest2()2172   public void importFeatureValuesExceptionTest2() throws Exception {
2173     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2174     mockFeaturestoreService.addException(exception);
2175 
2176     try {
2177       String entityType = "entityType-1482998339";
2178       client.importFeatureValuesAsync(entityType).get();
2179       Assert.fail("No exception raised");
2180     } catch (ExecutionException e) {
2181       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2182       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2183       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2184     }
2185   }
2186 
2187   @Test
batchReadFeatureValuesTest()2188   public void batchReadFeatureValuesTest() throws Exception {
2189     BatchReadFeatureValuesResponse expectedResponse =
2190         BatchReadFeatureValuesResponse.newBuilder().build();
2191     Operation resultOperation =
2192         Operation.newBuilder()
2193             .setName("batchReadFeatureValuesTest")
2194             .setDone(true)
2195             .setResponse(Any.pack(expectedResponse))
2196             .build();
2197     mockFeaturestoreService.addResponse(resultOperation);
2198 
2199     FeaturestoreName featurestore =
2200         FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
2201 
2202     BatchReadFeatureValuesResponse actualResponse =
2203         client.batchReadFeatureValuesAsync(featurestore).get();
2204     Assert.assertEquals(expectedResponse, actualResponse);
2205 
2206     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2207     Assert.assertEquals(1, actualRequests.size());
2208     BatchReadFeatureValuesRequest actualRequest =
2209         ((BatchReadFeatureValuesRequest) actualRequests.get(0));
2210 
2211     Assert.assertEquals(featurestore.toString(), actualRequest.getFeaturestore());
2212     Assert.assertTrue(
2213         channelProvider.isHeaderSent(
2214             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2215             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2216   }
2217 
2218   @Test
batchReadFeatureValuesExceptionTest()2219   public void batchReadFeatureValuesExceptionTest() throws Exception {
2220     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2221     mockFeaturestoreService.addException(exception);
2222 
2223     try {
2224       FeaturestoreName featurestore =
2225           FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
2226       client.batchReadFeatureValuesAsync(featurestore).get();
2227       Assert.fail("No exception raised");
2228     } catch (ExecutionException e) {
2229       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2230       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2231       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2232     }
2233   }
2234 
2235   @Test
batchReadFeatureValuesTest2()2236   public void batchReadFeatureValuesTest2() throws Exception {
2237     BatchReadFeatureValuesResponse expectedResponse =
2238         BatchReadFeatureValuesResponse.newBuilder().build();
2239     Operation resultOperation =
2240         Operation.newBuilder()
2241             .setName("batchReadFeatureValuesTest")
2242             .setDone(true)
2243             .setResponse(Any.pack(expectedResponse))
2244             .build();
2245     mockFeaturestoreService.addResponse(resultOperation);
2246 
2247     String featurestore = "featurestore1227679659";
2248 
2249     BatchReadFeatureValuesResponse actualResponse =
2250         client.batchReadFeatureValuesAsync(featurestore).get();
2251     Assert.assertEquals(expectedResponse, actualResponse);
2252 
2253     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2254     Assert.assertEquals(1, actualRequests.size());
2255     BatchReadFeatureValuesRequest actualRequest =
2256         ((BatchReadFeatureValuesRequest) actualRequests.get(0));
2257 
2258     Assert.assertEquals(featurestore, actualRequest.getFeaturestore());
2259     Assert.assertTrue(
2260         channelProvider.isHeaderSent(
2261             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2262             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2263   }
2264 
2265   @Test
batchReadFeatureValuesExceptionTest2()2266   public void batchReadFeatureValuesExceptionTest2() throws Exception {
2267     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2268     mockFeaturestoreService.addException(exception);
2269 
2270     try {
2271       String featurestore = "featurestore1227679659";
2272       client.batchReadFeatureValuesAsync(featurestore).get();
2273       Assert.fail("No exception raised");
2274     } catch (ExecutionException e) {
2275       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2276       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2277       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2278     }
2279   }
2280 
2281   @Test
exportFeatureValuesTest()2282   public void exportFeatureValuesTest() throws Exception {
2283     ExportFeatureValuesResponse expectedResponse = ExportFeatureValuesResponse.newBuilder().build();
2284     Operation resultOperation =
2285         Operation.newBuilder()
2286             .setName("exportFeatureValuesTest")
2287             .setDone(true)
2288             .setResponse(Any.pack(expectedResponse))
2289             .build();
2290     mockFeaturestoreService.addResponse(resultOperation);
2291 
2292     EntityTypeName entityType =
2293         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
2294 
2295     ExportFeatureValuesResponse actualResponse = client.exportFeatureValuesAsync(entityType).get();
2296     Assert.assertEquals(expectedResponse, actualResponse);
2297 
2298     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2299     Assert.assertEquals(1, actualRequests.size());
2300     ExportFeatureValuesRequest actualRequest = ((ExportFeatureValuesRequest) actualRequests.get(0));
2301 
2302     Assert.assertEquals(entityType.toString(), actualRequest.getEntityType());
2303     Assert.assertTrue(
2304         channelProvider.isHeaderSent(
2305             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2306             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2307   }
2308 
2309   @Test
exportFeatureValuesExceptionTest()2310   public void exportFeatureValuesExceptionTest() throws Exception {
2311     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2312     mockFeaturestoreService.addException(exception);
2313 
2314     try {
2315       EntityTypeName entityType =
2316           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
2317       client.exportFeatureValuesAsync(entityType).get();
2318       Assert.fail("No exception raised");
2319     } catch (ExecutionException e) {
2320       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2321       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2322       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2323     }
2324   }
2325 
2326   @Test
exportFeatureValuesTest2()2327   public void exportFeatureValuesTest2() throws Exception {
2328     ExportFeatureValuesResponse expectedResponse = ExportFeatureValuesResponse.newBuilder().build();
2329     Operation resultOperation =
2330         Operation.newBuilder()
2331             .setName("exportFeatureValuesTest")
2332             .setDone(true)
2333             .setResponse(Any.pack(expectedResponse))
2334             .build();
2335     mockFeaturestoreService.addResponse(resultOperation);
2336 
2337     String entityType = "entityType-1482998339";
2338 
2339     ExportFeatureValuesResponse actualResponse = client.exportFeatureValuesAsync(entityType).get();
2340     Assert.assertEquals(expectedResponse, actualResponse);
2341 
2342     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2343     Assert.assertEquals(1, actualRequests.size());
2344     ExportFeatureValuesRequest actualRequest = ((ExportFeatureValuesRequest) actualRequests.get(0));
2345 
2346     Assert.assertEquals(entityType, actualRequest.getEntityType());
2347     Assert.assertTrue(
2348         channelProvider.isHeaderSent(
2349             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2350             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2351   }
2352 
2353   @Test
exportFeatureValuesExceptionTest2()2354   public void exportFeatureValuesExceptionTest2() throws Exception {
2355     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2356     mockFeaturestoreService.addException(exception);
2357 
2358     try {
2359       String entityType = "entityType-1482998339";
2360       client.exportFeatureValuesAsync(entityType).get();
2361       Assert.fail("No exception raised");
2362     } catch (ExecutionException e) {
2363       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2364       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2365       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2366     }
2367   }
2368 
2369   @Test
deleteFeatureValuesTest()2370   public void deleteFeatureValuesTest() throws Exception {
2371     DeleteFeatureValuesResponse expectedResponse = DeleteFeatureValuesResponse.newBuilder().build();
2372     Operation resultOperation =
2373         Operation.newBuilder()
2374             .setName("deleteFeatureValuesTest")
2375             .setDone(true)
2376             .setResponse(Any.pack(expectedResponse))
2377             .build();
2378     mockFeaturestoreService.addResponse(resultOperation);
2379 
2380     EntityTypeName entityType =
2381         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
2382 
2383     DeleteFeatureValuesResponse actualResponse = client.deleteFeatureValuesAsync(entityType).get();
2384     Assert.assertEquals(expectedResponse, actualResponse);
2385 
2386     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2387     Assert.assertEquals(1, actualRequests.size());
2388     DeleteFeatureValuesRequest actualRequest = ((DeleteFeatureValuesRequest) actualRequests.get(0));
2389 
2390     Assert.assertEquals(entityType.toString(), actualRequest.getEntityType());
2391     Assert.assertTrue(
2392         channelProvider.isHeaderSent(
2393             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2394             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2395   }
2396 
2397   @Test
deleteFeatureValuesExceptionTest()2398   public void deleteFeatureValuesExceptionTest() throws Exception {
2399     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2400     mockFeaturestoreService.addException(exception);
2401 
2402     try {
2403       EntityTypeName entityType =
2404           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
2405       client.deleteFeatureValuesAsync(entityType).get();
2406       Assert.fail("No exception raised");
2407     } catch (ExecutionException e) {
2408       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2409       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2410       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2411     }
2412   }
2413 
2414   @Test
deleteFeatureValuesTest2()2415   public void deleteFeatureValuesTest2() throws Exception {
2416     DeleteFeatureValuesResponse expectedResponse = DeleteFeatureValuesResponse.newBuilder().build();
2417     Operation resultOperation =
2418         Operation.newBuilder()
2419             .setName("deleteFeatureValuesTest")
2420             .setDone(true)
2421             .setResponse(Any.pack(expectedResponse))
2422             .build();
2423     mockFeaturestoreService.addResponse(resultOperation);
2424 
2425     String entityType = "entityType-1482998339";
2426 
2427     DeleteFeatureValuesResponse actualResponse = client.deleteFeatureValuesAsync(entityType).get();
2428     Assert.assertEquals(expectedResponse, actualResponse);
2429 
2430     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2431     Assert.assertEquals(1, actualRequests.size());
2432     DeleteFeatureValuesRequest actualRequest = ((DeleteFeatureValuesRequest) actualRequests.get(0));
2433 
2434     Assert.assertEquals(entityType, actualRequest.getEntityType());
2435     Assert.assertTrue(
2436         channelProvider.isHeaderSent(
2437             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2438             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2439   }
2440 
2441   @Test
deleteFeatureValuesExceptionTest2()2442   public void deleteFeatureValuesExceptionTest2() throws Exception {
2443     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2444     mockFeaturestoreService.addException(exception);
2445 
2446     try {
2447       String entityType = "entityType-1482998339";
2448       client.deleteFeatureValuesAsync(entityType).get();
2449       Assert.fail("No exception raised");
2450     } catch (ExecutionException e) {
2451       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2452       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2453       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2454     }
2455   }
2456 
2457   @Test
searchFeaturesTest()2458   public void searchFeaturesTest() throws Exception {
2459     Feature responsesElement = Feature.newBuilder().build();
2460     SearchFeaturesResponse expectedResponse =
2461         SearchFeaturesResponse.newBuilder()
2462             .setNextPageToken("")
2463             .addAllFeatures(Arrays.asList(responsesElement))
2464             .build();
2465     mockFeaturestoreService.addResponse(expectedResponse);
2466 
2467     LocationName location = LocationName.of("[PROJECT]", "[LOCATION]");
2468 
2469     SearchFeaturesPagedResponse pagedListResponse = client.searchFeatures(location);
2470 
2471     List<Feature> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2472 
2473     Assert.assertEquals(1, resources.size());
2474     Assert.assertEquals(expectedResponse.getFeaturesList().get(0), resources.get(0));
2475 
2476     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2477     Assert.assertEquals(1, actualRequests.size());
2478     SearchFeaturesRequest actualRequest = ((SearchFeaturesRequest) actualRequests.get(0));
2479 
2480     Assert.assertEquals(location.toString(), actualRequest.getLocation());
2481     Assert.assertTrue(
2482         channelProvider.isHeaderSent(
2483             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2484             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2485   }
2486 
2487   @Test
searchFeaturesExceptionTest()2488   public void searchFeaturesExceptionTest() throws Exception {
2489     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2490     mockFeaturestoreService.addException(exception);
2491 
2492     try {
2493       LocationName location = LocationName.of("[PROJECT]", "[LOCATION]");
2494       client.searchFeatures(location);
2495       Assert.fail("No exception raised");
2496     } catch (InvalidArgumentException e) {
2497       // Expected exception.
2498     }
2499   }
2500 
2501   @Test
searchFeaturesTest2()2502   public void searchFeaturesTest2() throws Exception {
2503     Feature responsesElement = Feature.newBuilder().build();
2504     SearchFeaturesResponse expectedResponse =
2505         SearchFeaturesResponse.newBuilder()
2506             .setNextPageToken("")
2507             .addAllFeatures(Arrays.asList(responsesElement))
2508             .build();
2509     mockFeaturestoreService.addResponse(expectedResponse);
2510 
2511     String location = "location1901043637";
2512 
2513     SearchFeaturesPagedResponse pagedListResponse = client.searchFeatures(location);
2514 
2515     List<Feature> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2516 
2517     Assert.assertEquals(1, resources.size());
2518     Assert.assertEquals(expectedResponse.getFeaturesList().get(0), resources.get(0));
2519 
2520     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2521     Assert.assertEquals(1, actualRequests.size());
2522     SearchFeaturesRequest actualRequest = ((SearchFeaturesRequest) actualRequests.get(0));
2523 
2524     Assert.assertEquals(location, actualRequest.getLocation());
2525     Assert.assertTrue(
2526         channelProvider.isHeaderSent(
2527             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2528             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2529   }
2530 
2531   @Test
searchFeaturesExceptionTest2()2532   public void searchFeaturesExceptionTest2() throws Exception {
2533     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2534     mockFeaturestoreService.addException(exception);
2535 
2536     try {
2537       String location = "location1901043637";
2538       client.searchFeatures(location);
2539       Assert.fail("No exception raised");
2540     } catch (InvalidArgumentException e) {
2541       // Expected exception.
2542     }
2543   }
2544 
2545   @Test
searchFeaturesTest3()2546   public void searchFeaturesTest3() throws Exception {
2547     Feature responsesElement = Feature.newBuilder().build();
2548     SearchFeaturesResponse expectedResponse =
2549         SearchFeaturesResponse.newBuilder()
2550             .setNextPageToken("")
2551             .addAllFeatures(Arrays.asList(responsesElement))
2552             .build();
2553     mockFeaturestoreService.addResponse(expectedResponse);
2554 
2555     LocationName location = LocationName.of("[PROJECT]", "[LOCATION]");
2556     String query = "query107944136";
2557 
2558     SearchFeaturesPagedResponse pagedListResponse = client.searchFeatures(location, query);
2559 
2560     List<Feature> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2561 
2562     Assert.assertEquals(1, resources.size());
2563     Assert.assertEquals(expectedResponse.getFeaturesList().get(0), resources.get(0));
2564 
2565     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2566     Assert.assertEquals(1, actualRequests.size());
2567     SearchFeaturesRequest actualRequest = ((SearchFeaturesRequest) actualRequests.get(0));
2568 
2569     Assert.assertEquals(location.toString(), actualRequest.getLocation());
2570     Assert.assertEquals(query, actualRequest.getQuery());
2571     Assert.assertTrue(
2572         channelProvider.isHeaderSent(
2573             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2574             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2575   }
2576 
2577   @Test
searchFeaturesExceptionTest3()2578   public void searchFeaturesExceptionTest3() throws Exception {
2579     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2580     mockFeaturestoreService.addException(exception);
2581 
2582     try {
2583       LocationName location = LocationName.of("[PROJECT]", "[LOCATION]");
2584       String query = "query107944136";
2585       client.searchFeatures(location, query);
2586       Assert.fail("No exception raised");
2587     } catch (InvalidArgumentException e) {
2588       // Expected exception.
2589     }
2590   }
2591 
2592   @Test
searchFeaturesTest4()2593   public void searchFeaturesTest4() throws Exception {
2594     Feature responsesElement = Feature.newBuilder().build();
2595     SearchFeaturesResponse expectedResponse =
2596         SearchFeaturesResponse.newBuilder()
2597             .setNextPageToken("")
2598             .addAllFeatures(Arrays.asList(responsesElement))
2599             .build();
2600     mockFeaturestoreService.addResponse(expectedResponse);
2601 
2602     String location = "location1901043637";
2603     String query = "query107944136";
2604 
2605     SearchFeaturesPagedResponse pagedListResponse = client.searchFeatures(location, query);
2606 
2607     List<Feature> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2608 
2609     Assert.assertEquals(1, resources.size());
2610     Assert.assertEquals(expectedResponse.getFeaturesList().get(0), resources.get(0));
2611 
2612     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2613     Assert.assertEquals(1, actualRequests.size());
2614     SearchFeaturesRequest actualRequest = ((SearchFeaturesRequest) actualRequests.get(0));
2615 
2616     Assert.assertEquals(location, actualRequest.getLocation());
2617     Assert.assertEquals(query, actualRequest.getQuery());
2618     Assert.assertTrue(
2619         channelProvider.isHeaderSent(
2620             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2621             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2622   }
2623 
2624   @Test
searchFeaturesExceptionTest4()2625   public void searchFeaturesExceptionTest4() throws Exception {
2626     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2627     mockFeaturestoreService.addException(exception);
2628 
2629     try {
2630       String location = "location1901043637";
2631       String query = "query107944136";
2632       client.searchFeatures(location, query);
2633       Assert.fail("No exception raised");
2634     } catch (InvalidArgumentException e) {
2635       // Expected exception.
2636     }
2637   }
2638 
2639   @Test
listLocationsTest()2640   public void listLocationsTest() throws Exception {
2641     Location responsesElement = Location.newBuilder().build();
2642     ListLocationsResponse expectedResponse =
2643         ListLocationsResponse.newBuilder()
2644             .setNextPageToken("")
2645             .addAllLocations(Arrays.asList(responsesElement))
2646             .build();
2647     mockLocations.addResponse(expectedResponse);
2648 
2649     ListLocationsRequest request =
2650         ListLocationsRequest.newBuilder()
2651             .setName("name3373707")
2652             .setFilter("filter-1274492040")
2653             .setPageSize(883849137)
2654             .setPageToken("pageToken873572522")
2655             .build();
2656 
2657     ListLocationsPagedResponse pagedListResponse = client.listLocations(request);
2658 
2659     List<Location> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2660 
2661     Assert.assertEquals(1, resources.size());
2662     Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0));
2663 
2664     List<AbstractMessage> actualRequests = mockLocations.getRequests();
2665     Assert.assertEquals(1, actualRequests.size());
2666     ListLocationsRequest actualRequest = ((ListLocationsRequest) actualRequests.get(0));
2667 
2668     Assert.assertEquals(request.getName(), actualRequest.getName());
2669     Assert.assertEquals(request.getFilter(), actualRequest.getFilter());
2670     Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize());
2671     Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken());
2672     Assert.assertTrue(
2673         channelProvider.isHeaderSent(
2674             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2675             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2676   }
2677 
2678   @Test
listLocationsExceptionTest()2679   public void listLocationsExceptionTest() throws Exception {
2680     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2681     mockLocations.addException(exception);
2682 
2683     try {
2684       ListLocationsRequest request =
2685           ListLocationsRequest.newBuilder()
2686               .setName("name3373707")
2687               .setFilter("filter-1274492040")
2688               .setPageSize(883849137)
2689               .setPageToken("pageToken873572522")
2690               .build();
2691       client.listLocations(request);
2692       Assert.fail("No exception raised");
2693     } catch (InvalidArgumentException e) {
2694       // Expected exception.
2695     }
2696   }
2697 
2698   @Test
getLocationTest()2699   public void getLocationTest() throws Exception {
2700     Location expectedResponse =
2701         Location.newBuilder()
2702             .setName("name3373707")
2703             .setLocationId("locationId1541836720")
2704             .setDisplayName("displayName1714148973")
2705             .putAllLabels(new HashMap<String, String>())
2706             .setMetadata(Any.newBuilder().build())
2707             .build();
2708     mockLocations.addResponse(expectedResponse);
2709 
2710     GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
2711 
2712     Location actualResponse = client.getLocation(request);
2713     Assert.assertEquals(expectedResponse, actualResponse);
2714 
2715     List<AbstractMessage> actualRequests = mockLocations.getRequests();
2716     Assert.assertEquals(1, actualRequests.size());
2717     GetLocationRequest actualRequest = ((GetLocationRequest) actualRequests.get(0));
2718 
2719     Assert.assertEquals(request.getName(), actualRequest.getName());
2720     Assert.assertTrue(
2721         channelProvider.isHeaderSent(
2722             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2723             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2724   }
2725 
2726   @Test
getLocationExceptionTest()2727   public void getLocationExceptionTest() throws Exception {
2728     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2729     mockLocations.addException(exception);
2730 
2731     try {
2732       GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
2733       client.getLocation(request);
2734       Assert.fail("No exception raised");
2735     } catch (InvalidArgumentException e) {
2736       // Expected exception.
2737     }
2738   }
2739 
2740   @Test
setIamPolicyTest()2741   public void setIamPolicyTest() throws Exception {
2742     Policy expectedResponse =
2743         Policy.newBuilder()
2744             .setVersion(351608024)
2745             .addAllBindings(new ArrayList<Binding>())
2746             .addAllAuditConfigs(new ArrayList<AuditConfig>())
2747             .setEtag(ByteString.EMPTY)
2748             .build();
2749     mockIAMPolicy.addResponse(expectedResponse);
2750 
2751     SetIamPolicyRequest request =
2752         SetIamPolicyRequest.newBuilder()
2753             .setResource(
2754                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2755                     .toString())
2756             .setPolicy(Policy.newBuilder().build())
2757             .setUpdateMask(FieldMask.newBuilder().build())
2758             .build();
2759 
2760     Policy actualResponse = client.setIamPolicy(request);
2761     Assert.assertEquals(expectedResponse, actualResponse);
2762 
2763     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
2764     Assert.assertEquals(1, actualRequests.size());
2765     SetIamPolicyRequest actualRequest = ((SetIamPolicyRequest) actualRequests.get(0));
2766 
2767     Assert.assertEquals(request.getResource(), actualRequest.getResource());
2768     Assert.assertEquals(request.getPolicy(), actualRequest.getPolicy());
2769     Assert.assertEquals(request.getUpdateMask(), actualRequest.getUpdateMask());
2770     Assert.assertTrue(
2771         channelProvider.isHeaderSent(
2772             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2773             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2774   }
2775 
2776   @Test
setIamPolicyExceptionTest()2777   public void setIamPolicyExceptionTest() throws Exception {
2778     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2779     mockIAMPolicy.addException(exception);
2780 
2781     try {
2782       SetIamPolicyRequest request =
2783           SetIamPolicyRequest.newBuilder()
2784               .setResource(
2785                   EndpointName.ofProjectLocationEndpointName(
2786                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2787                       .toString())
2788               .setPolicy(Policy.newBuilder().build())
2789               .setUpdateMask(FieldMask.newBuilder().build())
2790               .build();
2791       client.setIamPolicy(request);
2792       Assert.fail("No exception raised");
2793     } catch (InvalidArgumentException e) {
2794       // Expected exception.
2795     }
2796   }
2797 
2798   @Test
getIamPolicyTest()2799   public void getIamPolicyTest() throws Exception {
2800     Policy expectedResponse =
2801         Policy.newBuilder()
2802             .setVersion(351608024)
2803             .addAllBindings(new ArrayList<Binding>())
2804             .addAllAuditConfigs(new ArrayList<AuditConfig>())
2805             .setEtag(ByteString.EMPTY)
2806             .build();
2807     mockIAMPolicy.addResponse(expectedResponse);
2808 
2809     GetIamPolicyRequest request =
2810         GetIamPolicyRequest.newBuilder()
2811             .setResource(
2812                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2813                     .toString())
2814             .setOptions(GetPolicyOptions.newBuilder().build())
2815             .build();
2816 
2817     Policy actualResponse = client.getIamPolicy(request);
2818     Assert.assertEquals(expectedResponse, actualResponse);
2819 
2820     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
2821     Assert.assertEquals(1, actualRequests.size());
2822     GetIamPolicyRequest actualRequest = ((GetIamPolicyRequest) actualRequests.get(0));
2823 
2824     Assert.assertEquals(request.getResource(), actualRequest.getResource());
2825     Assert.assertEquals(request.getOptions(), actualRequest.getOptions());
2826     Assert.assertTrue(
2827         channelProvider.isHeaderSent(
2828             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2829             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2830   }
2831 
2832   @Test
getIamPolicyExceptionTest()2833   public void getIamPolicyExceptionTest() throws Exception {
2834     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2835     mockIAMPolicy.addException(exception);
2836 
2837     try {
2838       GetIamPolicyRequest request =
2839           GetIamPolicyRequest.newBuilder()
2840               .setResource(
2841                   EndpointName.ofProjectLocationEndpointName(
2842                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2843                       .toString())
2844               .setOptions(GetPolicyOptions.newBuilder().build())
2845               .build();
2846       client.getIamPolicy(request);
2847       Assert.fail("No exception raised");
2848     } catch (InvalidArgumentException e) {
2849       // Expected exception.
2850     }
2851   }
2852 
2853   @Test
testIamPermissionsTest()2854   public void testIamPermissionsTest() throws Exception {
2855     TestIamPermissionsResponse expectedResponse =
2856         TestIamPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build();
2857     mockIAMPolicy.addResponse(expectedResponse);
2858 
2859     TestIamPermissionsRequest request =
2860         TestIamPermissionsRequest.newBuilder()
2861             .setResource(
2862                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2863                     .toString())
2864             .addAllPermissions(new ArrayList<String>())
2865             .build();
2866 
2867     TestIamPermissionsResponse actualResponse = client.testIamPermissions(request);
2868     Assert.assertEquals(expectedResponse, actualResponse);
2869 
2870     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
2871     Assert.assertEquals(1, actualRequests.size());
2872     TestIamPermissionsRequest actualRequest = ((TestIamPermissionsRequest) actualRequests.get(0));
2873 
2874     Assert.assertEquals(request.getResource(), actualRequest.getResource());
2875     Assert.assertEquals(request.getPermissionsList(), actualRequest.getPermissionsList());
2876     Assert.assertTrue(
2877         channelProvider.isHeaderSent(
2878             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2879             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2880   }
2881 
2882   @Test
testIamPermissionsExceptionTest()2883   public void testIamPermissionsExceptionTest() throws Exception {
2884     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2885     mockIAMPolicy.addException(exception);
2886 
2887     try {
2888       TestIamPermissionsRequest request =
2889           TestIamPermissionsRequest.newBuilder()
2890               .setResource(
2891                   EndpointName.ofProjectLocationEndpointName(
2892                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2893                       .toString())
2894               .addAllPermissions(new ArrayList<String>())
2895               .build();
2896       client.testIamPermissions(request);
2897       Assert.fail("No exception raised");
2898     } catch (InvalidArgumentException e) {
2899       // Expected exception.
2900     }
2901   }
2902 }
2903