• 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.v1;
18 
19 import static com.google.cloud.aiplatform.v1.FeaturestoreServiceClient.ListEntityTypesPagedResponse;
20 import static com.google.cloud.aiplatform.v1.FeaturestoreServiceClient.ListFeaturesPagedResponse;
21 import static com.google.cloud.aiplatform.v1.FeaturestoreServiceClient.ListFeaturestoresPagedResponse;
22 import static com.google.cloud.aiplatform.v1.FeaturestoreServiceClient.ListLocationsPagedResponse;
23 import static com.google.cloud.aiplatform.v1.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             .setDisableMonitoring(true)
1418             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1419             .build();
1420     Operation resultOperation =
1421         Operation.newBuilder()
1422             .setName("createFeatureTest")
1423             .setDone(true)
1424             .setResponse(Any.pack(expectedResponse))
1425             .build();
1426     mockFeaturestoreService.addResponse(resultOperation);
1427 
1428     EntityTypeName parent =
1429         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1430     Feature feature = Feature.newBuilder().build();
1431 
1432     Feature actualResponse = client.createFeatureAsync(parent, feature).get();
1433     Assert.assertEquals(expectedResponse, actualResponse);
1434 
1435     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1436     Assert.assertEquals(1, actualRequests.size());
1437     CreateFeatureRequest actualRequest = ((CreateFeatureRequest) actualRequests.get(0));
1438 
1439     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1440     Assert.assertEquals(feature, actualRequest.getFeature());
1441     Assert.assertTrue(
1442         channelProvider.isHeaderSent(
1443             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1444             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1445   }
1446 
1447   @Test
createFeatureExceptionTest()1448   public void createFeatureExceptionTest() throws Exception {
1449     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1450     mockFeaturestoreService.addException(exception);
1451 
1452     try {
1453       EntityTypeName parent =
1454           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1455       Feature feature = Feature.newBuilder().build();
1456       client.createFeatureAsync(parent, feature).get();
1457       Assert.fail("No exception raised");
1458     } catch (ExecutionException e) {
1459       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1460       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1461       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1462     }
1463   }
1464 
1465   @Test
createFeatureTest2()1466   public void createFeatureTest2() throws Exception {
1467     Feature expectedResponse =
1468         Feature.newBuilder()
1469             .setName(
1470                 FeatureName.of(
1471                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1472                     .toString())
1473             .setDescription("description-1724546052")
1474             .setCreateTime(Timestamp.newBuilder().build())
1475             .setUpdateTime(Timestamp.newBuilder().build())
1476             .putAllLabels(new HashMap<String, String>())
1477             .setEtag("etag3123477")
1478             .setDisableMonitoring(true)
1479             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1480             .build();
1481     Operation resultOperation =
1482         Operation.newBuilder()
1483             .setName("createFeatureTest")
1484             .setDone(true)
1485             .setResponse(Any.pack(expectedResponse))
1486             .build();
1487     mockFeaturestoreService.addResponse(resultOperation);
1488 
1489     String parent = "parent-995424086";
1490     Feature feature = Feature.newBuilder().build();
1491 
1492     Feature actualResponse = client.createFeatureAsync(parent, feature).get();
1493     Assert.assertEquals(expectedResponse, actualResponse);
1494 
1495     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1496     Assert.assertEquals(1, actualRequests.size());
1497     CreateFeatureRequest actualRequest = ((CreateFeatureRequest) actualRequests.get(0));
1498 
1499     Assert.assertEquals(parent, actualRequest.getParent());
1500     Assert.assertEquals(feature, actualRequest.getFeature());
1501     Assert.assertTrue(
1502         channelProvider.isHeaderSent(
1503             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1504             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1505   }
1506 
1507   @Test
createFeatureExceptionTest2()1508   public void createFeatureExceptionTest2() throws Exception {
1509     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1510     mockFeaturestoreService.addException(exception);
1511 
1512     try {
1513       String parent = "parent-995424086";
1514       Feature feature = Feature.newBuilder().build();
1515       client.createFeatureAsync(parent, feature).get();
1516       Assert.fail("No exception raised");
1517     } catch (ExecutionException e) {
1518       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1519       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1520       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1521     }
1522   }
1523 
1524   @Test
createFeatureTest3()1525   public void createFeatureTest3() throws Exception {
1526     Feature expectedResponse =
1527         Feature.newBuilder()
1528             .setName(
1529                 FeatureName.of(
1530                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1531                     .toString())
1532             .setDescription("description-1724546052")
1533             .setCreateTime(Timestamp.newBuilder().build())
1534             .setUpdateTime(Timestamp.newBuilder().build())
1535             .putAllLabels(new HashMap<String, String>())
1536             .setEtag("etag3123477")
1537             .setDisableMonitoring(true)
1538             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1539             .build();
1540     Operation resultOperation =
1541         Operation.newBuilder()
1542             .setName("createFeatureTest")
1543             .setDone(true)
1544             .setResponse(Any.pack(expectedResponse))
1545             .build();
1546     mockFeaturestoreService.addResponse(resultOperation);
1547 
1548     EntityTypeName parent =
1549         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1550     Feature feature = Feature.newBuilder().build();
1551     String featureId = "featureId-420503887";
1552 
1553     Feature actualResponse = client.createFeatureAsync(parent, feature, featureId).get();
1554     Assert.assertEquals(expectedResponse, actualResponse);
1555 
1556     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1557     Assert.assertEquals(1, actualRequests.size());
1558     CreateFeatureRequest actualRequest = ((CreateFeatureRequest) actualRequests.get(0));
1559 
1560     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1561     Assert.assertEquals(feature, actualRequest.getFeature());
1562     Assert.assertEquals(featureId, actualRequest.getFeatureId());
1563     Assert.assertTrue(
1564         channelProvider.isHeaderSent(
1565             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1566             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1567   }
1568 
1569   @Test
createFeatureExceptionTest3()1570   public void createFeatureExceptionTest3() throws Exception {
1571     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1572     mockFeaturestoreService.addException(exception);
1573 
1574     try {
1575       EntityTypeName parent =
1576           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1577       Feature feature = Feature.newBuilder().build();
1578       String featureId = "featureId-420503887";
1579       client.createFeatureAsync(parent, feature, featureId).get();
1580       Assert.fail("No exception raised");
1581     } catch (ExecutionException e) {
1582       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1583       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1584       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1585     }
1586   }
1587 
1588   @Test
createFeatureTest4()1589   public void createFeatureTest4() throws Exception {
1590     Feature expectedResponse =
1591         Feature.newBuilder()
1592             .setName(
1593                 FeatureName.of(
1594                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1595                     .toString())
1596             .setDescription("description-1724546052")
1597             .setCreateTime(Timestamp.newBuilder().build())
1598             .setUpdateTime(Timestamp.newBuilder().build())
1599             .putAllLabels(new HashMap<String, String>())
1600             .setEtag("etag3123477")
1601             .setDisableMonitoring(true)
1602             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1603             .build();
1604     Operation resultOperation =
1605         Operation.newBuilder()
1606             .setName("createFeatureTest")
1607             .setDone(true)
1608             .setResponse(Any.pack(expectedResponse))
1609             .build();
1610     mockFeaturestoreService.addResponse(resultOperation);
1611 
1612     String parent = "parent-995424086";
1613     Feature feature = Feature.newBuilder().build();
1614     String featureId = "featureId-420503887";
1615 
1616     Feature actualResponse = client.createFeatureAsync(parent, feature, featureId).get();
1617     Assert.assertEquals(expectedResponse, actualResponse);
1618 
1619     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1620     Assert.assertEquals(1, actualRequests.size());
1621     CreateFeatureRequest actualRequest = ((CreateFeatureRequest) actualRequests.get(0));
1622 
1623     Assert.assertEquals(parent, actualRequest.getParent());
1624     Assert.assertEquals(feature, actualRequest.getFeature());
1625     Assert.assertEquals(featureId, actualRequest.getFeatureId());
1626     Assert.assertTrue(
1627         channelProvider.isHeaderSent(
1628             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1629             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1630   }
1631 
1632   @Test
createFeatureExceptionTest4()1633   public void createFeatureExceptionTest4() throws Exception {
1634     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1635     mockFeaturestoreService.addException(exception);
1636 
1637     try {
1638       String parent = "parent-995424086";
1639       Feature feature = Feature.newBuilder().build();
1640       String featureId = "featureId-420503887";
1641       client.createFeatureAsync(parent, feature, featureId).get();
1642       Assert.fail("No exception raised");
1643     } catch (ExecutionException e) {
1644       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1645       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1646       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1647     }
1648   }
1649 
1650   @Test
batchCreateFeaturesTest()1651   public void batchCreateFeaturesTest() throws Exception {
1652     BatchCreateFeaturesResponse expectedResponse =
1653         BatchCreateFeaturesResponse.newBuilder().addAllFeatures(new ArrayList<Feature>()).build();
1654     Operation resultOperation =
1655         Operation.newBuilder()
1656             .setName("batchCreateFeaturesTest")
1657             .setDone(true)
1658             .setResponse(Any.pack(expectedResponse))
1659             .build();
1660     mockFeaturestoreService.addResponse(resultOperation);
1661 
1662     EntityTypeName parent =
1663         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1664     List<CreateFeatureRequest> requests = new ArrayList<>();
1665 
1666     BatchCreateFeaturesResponse actualResponse =
1667         client.batchCreateFeaturesAsync(parent, requests).get();
1668     Assert.assertEquals(expectedResponse, actualResponse);
1669 
1670     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1671     Assert.assertEquals(1, actualRequests.size());
1672     BatchCreateFeaturesRequest actualRequest = ((BatchCreateFeaturesRequest) actualRequests.get(0));
1673 
1674     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1675     Assert.assertEquals(requests, actualRequest.getRequestsList());
1676     Assert.assertTrue(
1677         channelProvider.isHeaderSent(
1678             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1679             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1680   }
1681 
1682   @Test
batchCreateFeaturesExceptionTest()1683   public void batchCreateFeaturesExceptionTest() throws Exception {
1684     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1685     mockFeaturestoreService.addException(exception);
1686 
1687     try {
1688       EntityTypeName parent =
1689           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1690       List<CreateFeatureRequest> requests = new ArrayList<>();
1691       client.batchCreateFeaturesAsync(parent, requests).get();
1692       Assert.fail("No exception raised");
1693     } catch (ExecutionException e) {
1694       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1695       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1696       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1697     }
1698   }
1699 
1700   @Test
batchCreateFeaturesTest2()1701   public void batchCreateFeaturesTest2() throws Exception {
1702     BatchCreateFeaturesResponse expectedResponse =
1703         BatchCreateFeaturesResponse.newBuilder().addAllFeatures(new ArrayList<Feature>()).build();
1704     Operation resultOperation =
1705         Operation.newBuilder()
1706             .setName("batchCreateFeaturesTest")
1707             .setDone(true)
1708             .setResponse(Any.pack(expectedResponse))
1709             .build();
1710     mockFeaturestoreService.addResponse(resultOperation);
1711 
1712     String parent = "parent-995424086";
1713     List<CreateFeatureRequest> requests = new ArrayList<>();
1714 
1715     BatchCreateFeaturesResponse actualResponse =
1716         client.batchCreateFeaturesAsync(parent, requests).get();
1717     Assert.assertEquals(expectedResponse, actualResponse);
1718 
1719     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1720     Assert.assertEquals(1, actualRequests.size());
1721     BatchCreateFeaturesRequest actualRequest = ((BatchCreateFeaturesRequest) actualRequests.get(0));
1722 
1723     Assert.assertEquals(parent, actualRequest.getParent());
1724     Assert.assertEquals(requests, actualRequest.getRequestsList());
1725     Assert.assertTrue(
1726         channelProvider.isHeaderSent(
1727             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1728             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1729   }
1730 
1731   @Test
batchCreateFeaturesExceptionTest2()1732   public void batchCreateFeaturesExceptionTest2() throws Exception {
1733     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1734     mockFeaturestoreService.addException(exception);
1735 
1736     try {
1737       String parent = "parent-995424086";
1738       List<CreateFeatureRequest> requests = new ArrayList<>();
1739       client.batchCreateFeaturesAsync(parent, requests).get();
1740       Assert.fail("No exception raised");
1741     } catch (ExecutionException e) {
1742       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1743       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1744       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1745     }
1746   }
1747 
1748   @Test
getFeatureTest()1749   public void getFeatureTest() throws Exception {
1750     Feature expectedResponse =
1751         Feature.newBuilder()
1752             .setName(
1753                 FeatureName.of(
1754                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1755                     .toString())
1756             .setDescription("description-1724546052")
1757             .setCreateTime(Timestamp.newBuilder().build())
1758             .setUpdateTime(Timestamp.newBuilder().build())
1759             .putAllLabels(new HashMap<String, String>())
1760             .setEtag("etag3123477")
1761             .setDisableMonitoring(true)
1762             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1763             .build();
1764     mockFeaturestoreService.addResponse(expectedResponse);
1765 
1766     FeatureName name =
1767         FeatureName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]");
1768 
1769     Feature actualResponse = client.getFeature(name);
1770     Assert.assertEquals(expectedResponse, actualResponse);
1771 
1772     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1773     Assert.assertEquals(1, actualRequests.size());
1774     GetFeatureRequest actualRequest = ((GetFeatureRequest) actualRequests.get(0));
1775 
1776     Assert.assertEquals(name.toString(), actualRequest.getName());
1777     Assert.assertTrue(
1778         channelProvider.isHeaderSent(
1779             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1780             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1781   }
1782 
1783   @Test
getFeatureExceptionTest()1784   public void getFeatureExceptionTest() throws Exception {
1785     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1786     mockFeaturestoreService.addException(exception);
1787 
1788     try {
1789       FeatureName name =
1790           FeatureName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]");
1791       client.getFeature(name);
1792       Assert.fail("No exception raised");
1793     } catch (InvalidArgumentException e) {
1794       // Expected exception.
1795     }
1796   }
1797 
1798   @Test
getFeatureTest2()1799   public void getFeatureTest2() throws Exception {
1800     Feature expectedResponse =
1801         Feature.newBuilder()
1802             .setName(
1803                 FeatureName.of(
1804                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1805                     .toString())
1806             .setDescription("description-1724546052")
1807             .setCreateTime(Timestamp.newBuilder().build())
1808             .setUpdateTime(Timestamp.newBuilder().build())
1809             .putAllLabels(new HashMap<String, String>())
1810             .setEtag("etag3123477")
1811             .setDisableMonitoring(true)
1812             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1813             .build();
1814     mockFeaturestoreService.addResponse(expectedResponse);
1815 
1816     String name = "name3373707";
1817 
1818     Feature actualResponse = client.getFeature(name);
1819     Assert.assertEquals(expectedResponse, actualResponse);
1820 
1821     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1822     Assert.assertEquals(1, actualRequests.size());
1823     GetFeatureRequest actualRequest = ((GetFeatureRequest) actualRequests.get(0));
1824 
1825     Assert.assertEquals(name, actualRequest.getName());
1826     Assert.assertTrue(
1827         channelProvider.isHeaderSent(
1828             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1829             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1830   }
1831 
1832   @Test
getFeatureExceptionTest2()1833   public void getFeatureExceptionTest2() throws Exception {
1834     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1835     mockFeaturestoreService.addException(exception);
1836 
1837     try {
1838       String name = "name3373707";
1839       client.getFeature(name);
1840       Assert.fail("No exception raised");
1841     } catch (InvalidArgumentException e) {
1842       // Expected exception.
1843     }
1844   }
1845 
1846   @Test
listFeaturesTest()1847   public void listFeaturesTest() throws Exception {
1848     Feature responsesElement = Feature.newBuilder().build();
1849     ListFeaturesResponse expectedResponse =
1850         ListFeaturesResponse.newBuilder()
1851             .setNextPageToken("")
1852             .addAllFeatures(Arrays.asList(responsesElement))
1853             .build();
1854     mockFeaturestoreService.addResponse(expectedResponse);
1855 
1856     EntityTypeName parent =
1857         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1858 
1859     ListFeaturesPagedResponse pagedListResponse = client.listFeatures(parent);
1860 
1861     List<Feature> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1862 
1863     Assert.assertEquals(1, resources.size());
1864     Assert.assertEquals(expectedResponse.getFeaturesList().get(0), resources.get(0));
1865 
1866     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1867     Assert.assertEquals(1, actualRequests.size());
1868     ListFeaturesRequest actualRequest = ((ListFeaturesRequest) actualRequests.get(0));
1869 
1870     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1871     Assert.assertTrue(
1872         channelProvider.isHeaderSent(
1873             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1874             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1875   }
1876 
1877   @Test
listFeaturesExceptionTest()1878   public void listFeaturesExceptionTest() throws Exception {
1879     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1880     mockFeaturestoreService.addException(exception);
1881 
1882     try {
1883       EntityTypeName parent =
1884           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
1885       client.listFeatures(parent);
1886       Assert.fail("No exception raised");
1887     } catch (InvalidArgumentException e) {
1888       // Expected exception.
1889     }
1890   }
1891 
1892   @Test
listFeaturesTest2()1893   public void listFeaturesTest2() throws Exception {
1894     Feature responsesElement = Feature.newBuilder().build();
1895     ListFeaturesResponse expectedResponse =
1896         ListFeaturesResponse.newBuilder()
1897             .setNextPageToken("")
1898             .addAllFeatures(Arrays.asList(responsesElement))
1899             .build();
1900     mockFeaturestoreService.addResponse(expectedResponse);
1901 
1902     String parent = "parent-995424086";
1903 
1904     ListFeaturesPagedResponse pagedListResponse = client.listFeatures(parent);
1905 
1906     List<Feature> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1907 
1908     Assert.assertEquals(1, resources.size());
1909     Assert.assertEquals(expectedResponse.getFeaturesList().get(0), resources.get(0));
1910 
1911     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1912     Assert.assertEquals(1, actualRequests.size());
1913     ListFeaturesRequest actualRequest = ((ListFeaturesRequest) actualRequests.get(0));
1914 
1915     Assert.assertEquals(parent, actualRequest.getParent());
1916     Assert.assertTrue(
1917         channelProvider.isHeaderSent(
1918             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1919             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1920   }
1921 
1922   @Test
listFeaturesExceptionTest2()1923   public void listFeaturesExceptionTest2() throws Exception {
1924     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1925     mockFeaturestoreService.addException(exception);
1926 
1927     try {
1928       String parent = "parent-995424086";
1929       client.listFeatures(parent);
1930       Assert.fail("No exception raised");
1931     } catch (InvalidArgumentException e) {
1932       // Expected exception.
1933     }
1934   }
1935 
1936   @Test
updateFeatureTest()1937   public void updateFeatureTest() throws Exception {
1938     Feature expectedResponse =
1939         Feature.newBuilder()
1940             .setName(
1941                 FeatureName.of(
1942                         "[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]")
1943                     .toString())
1944             .setDescription("description-1724546052")
1945             .setCreateTime(Timestamp.newBuilder().build())
1946             .setUpdateTime(Timestamp.newBuilder().build())
1947             .putAllLabels(new HashMap<String, String>())
1948             .setEtag("etag3123477")
1949             .setDisableMonitoring(true)
1950             .addAllMonitoringStatsAnomalies(new ArrayList<Feature.MonitoringStatsAnomaly>())
1951             .build();
1952     mockFeaturestoreService.addResponse(expectedResponse);
1953 
1954     Feature feature = Feature.newBuilder().build();
1955     FieldMask updateMask = FieldMask.newBuilder().build();
1956 
1957     Feature actualResponse = client.updateFeature(feature, updateMask);
1958     Assert.assertEquals(expectedResponse, actualResponse);
1959 
1960     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
1961     Assert.assertEquals(1, actualRequests.size());
1962     UpdateFeatureRequest actualRequest = ((UpdateFeatureRequest) actualRequests.get(0));
1963 
1964     Assert.assertEquals(feature, actualRequest.getFeature());
1965     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
1966     Assert.assertTrue(
1967         channelProvider.isHeaderSent(
1968             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1969             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1970   }
1971 
1972   @Test
updateFeatureExceptionTest()1973   public void updateFeatureExceptionTest() throws Exception {
1974     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1975     mockFeaturestoreService.addException(exception);
1976 
1977     try {
1978       Feature feature = Feature.newBuilder().build();
1979       FieldMask updateMask = FieldMask.newBuilder().build();
1980       client.updateFeature(feature, updateMask);
1981       Assert.fail("No exception raised");
1982     } catch (InvalidArgumentException e) {
1983       // Expected exception.
1984     }
1985   }
1986 
1987   @Test
deleteFeatureTest()1988   public void deleteFeatureTest() throws Exception {
1989     Empty expectedResponse = Empty.newBuilder().build();
1990     Operation resultOperation =
1991         Operation.newBuilder()
1992             .setName("deleteFeatureTest")
1993             .setDone(true)
1994             .setResponse(Any.pack(expectedResponse))
1995             .build();
1996     mockFeaturestoreService.addResponse(resultOperation);
1997 
1998     FeatureName name =
1999         FeatureName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]");
2000 
2001     client.deleteFeatureAsync(name).get();
2002 
2003     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2004     Assert.assertEquals(1, actualRequests.size());
2005     DeleteFeatureRequest actualRequest = ((DeleteFeatureRequest) actualRequests.get(0));
2006 
2007     Assert.assertEquals(name.toString(), actualRequest.getName());
2008     Assert.assertTrue(
2009         channelProvider.isHeaderSent(
2010             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2011             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2012   }
2013 
2014   @Test
deleteFeatureExceptionTest()2015   public void deleteFeatureExceptionTest() throws Exception {
2016     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2017     mockFeaturestoreService.addException(exception);
2018 
2019     try {
2020       FeatureName name =
2021           FeatureName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]", "[FEATURE]");
2022       client.deleteFeatureAsync(name).get();
2023       Assert.fail("No exception raised");
2024     } catch (ExecutionException e) {
2025       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2026       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2027       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2028     }
2029   }
2030 
2031   @Test
deleteFeatureTest2()2032   public void deleteFeatureTest2() throws Exception {
2033     Empty expectedResponse = Empty.newBuilder().build();
2034     Operation resultOperation =
2035         Operation.newBuilder()
2036             .setName("deleteFeatureTest")
2037             .setDone(true)
2038             .setResponse(Any.pack(expectedResponse))
2039             .build();
2040     mockFeaturestoreService.addResponse(resultOperation);
2041 
2042     String name = "name3373707";
2043 
2044     client.deleteFeatureAsync(name).get();
2045 
2046     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2047     Assert.assertEquals(1, actualRequests.size());
2048     DeleteFeatureRequest actualRequest = ((DeleteFeatureRequest) actualRequests.get(0));
2049 
2050     Assert.assertEquals(name, actualRequest.getName());
2051     Assert.assertTrue(
2052         channelProvider.isHeaderSent(
2053             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2054             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2055   }
2056 
2057   @Test
deleteFeatureExceptionTest2()2058   public void deleteFeatureExceptionTest2() throws Exception {
2059     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2060     mockFeaturestoreService.addException(exception);
2061 
2062     try {
2063       String name = "name3373707";
2064       client.deleteFeatureAsync(name).get();
2065       Assert.fail("No exception raised");
2066     } catch (ExecutionException e) {
2067       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2068       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2069       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2070     }
2071   }
2072 
2073   @Test
importFeatureValuesTest()2074   public void importFeatureValuesTest() throws Exception {
2075     ImportFeatureValuesResponse expectedResponse =
2076         ImportFeatureValuesResponse.newBuilder()
2077             .setImportedEntityCount(-1840044274)
2078             .setImportedFeatureValueCount(-1221471427)
2079             .setInvalidRowCount(-366655966)
2080             .setTimestampOutsideRetentionRowsCount(-43092019)
2081             .build();
2082     Operation resultOperation =
2083         Operation.newBuilder()
2084             .setName("importFeatureValuesTest")
2085             .setDone(true)
2086             .setResponse(Any.pack(expectedResponse))
2087             .build();
2088     mockFeaturestoreService.addResponse(resultOperation);
2089 
2090     EntityTypeName entityType =
2091         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
2092 
2093     ImportFeatureValuesResponse actualResponse = client.importFeatureValuesAsync(entityType).get();
2094     Assert.assertEquals(expectedResponse, actualResponse);
2095 
2096     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2097     Assert.assertEquals(1, actualRequests.size());
2098     ImportFeatureValuesRequest actualRequest = ((ImportFeatureValuesRequest) actualRequests.get(0));
2099 
2100     Assert.assertEquals(entityType.toString(), actualRequest.getEntityType());
2101     Assert.assertTrue(
2102         channelProvider.isHeaderSent(
2103             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2104             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2105   }
2106 
2107   @Test
importFeatureValuesExceptionTest()2108   public void importFeatureValuesExceptionTest() throws Exception {
2109     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2110     mockFeaturestoreService.addException(exception);
2111 
2112     try {
2113       EntityTypeName entityType =
2114           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
2115       client.importFeatureValuesAsync(entityType).get();
2116       Assert.fail("No exception raised");
2117     } catch (ExecutionException e) {
2118       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2119       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2120       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2121     }
2122   }
2123 
2124   @Test
importFeatureValuesTest2()2125   public void importFeatureValuesTest2() throws Exception {
2126     ImportFeatureValuesResponse expectedResponse =
2127         ImportFeatureValuesResponse.newBuilder()
2128             .setImportedEntityCount(-1840044274)
2129             .setImportedFeatureValueCount(-1221471427)
2130             .setInvalidRowCount(-366655966)
2131             .setTimestampOutsideRetentionRowsCount(-43092019)
2132             .build();
2133     Operation resultOperation =
2134         Operation.newBuilder()
2135             .setName("importFeatureValuesTest")
2136             .setDone(true)
2137             .setResponse(Any.pack(expectedResponse))
2138             .build();
2139     mockFeaturestoreService.addResponse(resultOperation);
2140 
2141     String entityType = "entityType-1482998339";
2142 
2143     ImportFeatureValuesResponse actualResponse = client.importFeatureValuesAsync(entityType).get();
2144     Assert.assertEquals(expectedResponse, actualResponse);
2145 
2146     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2147     Assert.assertEquals(1, actualRequests.size());
2148     ImportFeatureValuesRequest actualRequest = ((ImportFeatureValuesRequest) actualRequests.get(0));
2149 
2150     Assert.assertEquals(entityType, actualRequest.getEntityType());
2151     Assert.assertTrue(
2152         channelProvider.isHeaderSent(
2153             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2154             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2155   }
2156 
2157   @Test
importFeatureValuesExceptionTest2()2158   public void importFeatureValuesExceptionTest2() throws Exception {
2159     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2160     mockFeaturestoreService.addException(exception);
2161 
2162     try {
2163       String entityType = "entityType-1482998339";
2164       client.importFeatureValuesAsync(entityType).get();
2165       Assert.fail("No exception raised");
2166     } catch (ExecutionException e) {
2167       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2168       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2169       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2170     }
2171   }
2172 
2173   @Test
batchReadFeatureValuesTest()2174   public void batchReadFeatureValuesTest() throws Exception {
2175     BatchReadFeatureValuesResponse expectedResponse =
2176         BatchReadFeatureValuesResponse.newBuilder().build();
2177     Operation resultOperation =
2178         Operation.newBuilder()
2179             .setName("batchReadFeatureValuesTest")
2180             .setDone(true)
2181             .setResponse(Any.pack(expectedResponse))
2182             .build();
2183     mockFeaturestoreService.addResponse(resultOperation);
2184 
2185     FeaturestoreName featurestore =
2186         FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
2187 
2188     BatchReadFeatureValuesResponse actualResponse =
2189         client.batchReadFeatureValuesAsync(featurestore).get();
2190     Assert.assertEquals(expectedResponse, actualResponse);
2191 
2192     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2193     Assert.assertEquals(1, actualRequests.size());
2194     BatchReadFeatureValuesRequest actualRequest =
2195         ((BatchReadFeatureValuesRequest) actualRequests.get(0));
2196 
2197     Assert.assertEquals(featurestore.toString(), actualRequest.getFeaturestore());
2198     Assert.assertTrue(
2199         channelProvider.isHeaderSent(
2200             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2201             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2202   }
2203 
2204   @Test
batchReadFeatureValuesExceptionTest()2205   public void batchReadFeatureValuesExceptionTest() throws Exception {
2206     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2207     mockFeaturestoreService.addException(exception);
2208 
2209     try {
2210       FeaturestoreName featurestore =
2211           FeaturestoreName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]");
2212       client.batchReadFeatureValuesAsync(featurestore).get();
2213       Assert.fail("No exception raised");
2214     } catch (ExecutionException e) {
2215       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2216       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2217       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2218     }
2219   }
2220 
2221   @Test
batchReadFeatureValuesTest2()2222   public void batchReadFeatureValuesTest2() throws Exception {
2223     BatchReadFeatureValuesResponse expectedResponse =
2224         BatchReadFeatureValuesResponse.newBuilder().build();
2225     Operation resultOperation =
2226         Operation.newBuilder()
2227             .setName("batchReadFeatureValuesTest")
2228             .setDone(true)
2229             .setResponse(Any.pack(expectedResponse))
2230             .build();
2231     mockFeaturestoreService.addResponse(resultOperation);
2232 
2233     String featurestore = "featurestore1227679659";
2234 
2235     BatchReadFeatureValuesResponse actualResponse =
2236         client.batchReadFeatureValuesAsync(featurestore).get();
2237     Assert.assertEquals(expectedResponse, actualResponse);
2238 
2239     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2240     Assert.assertEquals(1, actualRequests.size());
2241     BatchReadFeatureValuesRequest actualRequest =
2242         ((BatchReadFeatureValuesRequest) actualRequests.get(0));
2243 
2244     Assert.assertEquals(featurestore, actualRequest.getFeaturestore());
2245     Assert.assertTrue(
2246         channelProvider.isHeaderSent(
2247             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2248             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2249   }
2250 
2251   @Test
batchReadFeatureValuesExceptionTest2()2252   public void batchReadFeatureValuesExceptionTest2() throws Exception {
2253     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2254     mockFeaturestoreService.addException(exception);
2255 
2256     try {
2257       String featurestore = "featurestore1227679659";
2258       client.batchReadFeatureValuesAsync(featurestore).get();
2259       Assert.fail("No exception raised");
2260     } catch (ExecutionException e) {
2261       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2262       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2263       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2264     }
2265   }
2266 
2267   @Test
exportFeatureValuesTest()2268   public void exportFeatureValuesTest() throws Exception {
2269     ExportFeatureValuesResponse expectedResponse = ExportFeatureValuesResponse.newBuilder().build();
2270     Operation resultOperation =
2271         Operation.newBuilder()
2272             .setName("exportFeatureValuesTest")
2273             .setDone(true)
2274             .setResponse(Any.pack(expectedResponse))
2275             .build();
2276     mockFeaturestoreService.addResponse(resultOperation);
2277 
2278     EntityTypeName entityType =
2279         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
2280 
2281     ExportFeatureValuesResponse actualResponse = client.exportFeatureValuesAsync(entityType).get();
2282     Assert.assertEquals(expectedResponse, actualResponse);
2283 
2284     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2285     Assert.assertEquals(1, actualRequests.size());
2286     ExportFeatureValuesRequest actualRequest = ((ExportFeatureValuesRequest) actualRequests.get(0));
2287 
2288     Assert.assertEquals(entityType.toString(), actualRequest.getEntityType());
2289     Assert.assertTrue(
2290         channelProvider.isHeaderSent(
2291             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2292             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2293   }
2294 
2295   @Test
exportFeatureValuesExceptionTest()2296   public void exportFeatureValuesExceptionTest() throws Exception {
2297     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2298     mockFeaturestoreService.addException(exception);
2299 
2300     try {
2301       EntityTypeName entityType =
2302           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
2303       client.exportFeatureValuesAsync(entityType).get();
2304       Assert.fail("No exception raised");
2305     } catch (ExecutionException e) {
2306       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2307       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2308       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2309     }
2310   }
2311 
2312   @Test
exportFeatureValuesTest2()2313   public void exportFeatureValuesTest2() throws Exception {
2314     ExportFeatureValuesResponse expectedResponse = ExportFeatureValuesResponse.newBuilder().build();
2315     Operation resultOperation =
2316         Operation.newBuilder()
2317             .setName("exportFeatureValuesTest")
2318             .setDone(true)
2319             .setResponse(Any.pack(expectedResponse))
2320             .build();
2321     mockFeaturestoreService.addResponse(resultOperation);
2322 
2323     String entityType = "entityType-1482998339";
2324 
2325     ExportFeatureValuesResponse actualResponse = client.exportFeatureValuesAsync(entityType).get();
2326     Assert.assertEquals(expectedResponse, actualResponse);
2327 
2328     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2329     Assert.assertEquals(1, actualRequests.size());
2330     ExportFeatureValuesRequest actualRequest = ((ExportFeatureValuesRequest) actualRequests.get(0));
2331 
2332     Assert.assertEquals(entityType, actualRequest.getEntityType());
2333     Assert.assertTrue(
2334         channelProvider.isHeaderSent(
2335             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2336             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2337   }
2338 
2339   @Test
exportFeatureValuesExceptionTest2()2340   public void exportFeatureValuesExceptionTest2() throws Exception {
2341     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2342     mockFeaturestoreService.addException(exception);
2343 
2344     try {
2345       String entityType = "entityType-1482998339";
2346       client.exportFeatureValuesAsync(entityType).get();
2347       Assert.fail("No exception raised");
2348     } catch (ExecutionException e) {
2349       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2350       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2351       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2352     }
2353   }
2354 
2355   @Test
deleteFeatureValuesTest()2356   public void deleteFeatureValuesTest() throws Exception {
2357     DeleteFeatureValuesResponse expectedResponse = DeleteFeatureValuesResponse.newBuilder().build();
2358     Operation resultOperation =
2359         Operation.newBuilder()
2360             .setName("deleteFeatureValuesTest")
2361             .setDone(true)
2362             .setResponse(Any.pack(expectedResponse))
2363             .build();
2364     mockFeaturestoreService.addResponse(resultOperation);
2365 
2366     EntityTypeName entityType =
2367         EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
2368 
2369     DeleteFeatureValuesResponse actualResponse = client.deleteFeatureValuesAsync(entityType).get();
2370     Assert.assertEquals(expectedResponse, actualResponse);
2371 
2372     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2373     Assert.assertEquals(1, actualRequests.size());
2374     DeleteFeatureValuesRequest actualRequest = ((DeleteFeatureValuesRequest) actualRequests.get(0));
2375 
2376     Assert.assertEquals(entityType.toString(), actualRequest.getEntityType());
2377     Assert.assertTrue(
2378         channelProvider.isHeaderSent(
2379             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2380             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2381   }
2382 
2383   @Test
deleteFeatureValuesExceptionTest()2384   public void deleteFeatureValuesExceptionTest() throws Exception {
2385     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2386     mockFeaturestoreService.addException(exception);
2387 
2388     try {
2389       EntityTypeName entityType =
2390           EntityTypeName.of("[PROJECT]", "[LOCATION]", "[FEATURESTORE]", "[ENTITY_TYPE]");
2391       client.deleteFeatureValuesAsync(entityType).get();
2392       Assert.fail("No exception raised");
2393     } catch (ExecutionException e) {
2394       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2395       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2396       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2397     }
2398   }
2399 
2400   @Test
deleteFeatureValuesTest2()2401   public void deleteFeatureValuesTest2() throws Exception {
2402     DeleteFeatureValuesResponse expectedResponse = DeleteFeatureValuesResponse.newBuilder().build();
2403     Operation resultOperation =
2404         Operation.newBuilder()
2405             .setName("deleteFeatureValuesTest")
2406             .setDone(true)
2407             .setResponse(Any.pack(expectedResponse))
2408             .build();
2409     mockFeaturestoreService.addResponse(resultOperation);
2410 
2411     String entityType = "entityType-1482998339";
2412 
2413     DeleteFeatureValuesResponse actualResponse = client.deleteFeatureValuesAsync(entityType).get();
2414     Assert.assertEquals(expectedResponse, actualResponse);
2415 
2416     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2417     Assert.assertEquals(1, actualRequests.size());
2418     DeleteFeatureValuesRequest actualRequest = ((DeleteFeatureValuesRequest) actualRequests.get(0));
2419 
2420     Assert.assertEquals(entityType, actualRequest.getEntityType());
2421     Assert.assertTrue(
2422         channelProvider.isHeaderSent(
2423             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2424             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2425   }
2426 
2427   @Test
deleteFeatureValuesExceptionTest2()2428   public void deleteFeatureValuesExceptionTest2() throws Exception {
2429     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2430     mockFeaturestoreService.addException(exception);
2431 
2432     try {
2433       String entityType = "entityType-1482998339";
2434       client.deleteFeatureValuesAsync(entityType).get();
2435       Assert.fail("No exception raised");
2436     } catch (ExecutionException e) {
2437       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
2438       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
2439       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
2440     }
2441   }
2442 
2443   @Test
searchFeaturesTest()2444   public void searchFeaturesTest() throws Exception {
2445     Feature responsesElement = Feature.newBuilder().build();
2446     SearchFeaturesResponse expectedResponse =
2447         SearchFeaturesResponse.newBuilder()
2448             .setNextPageToken("")
2449             .addAllFeatures(Arrays.asList(responsesElement))
2450             .build();
2451     mockFeaturestoreService.addResponse(expectedResponse);
2452 
2453     LocationName location = LocationName.of("[PROJECT]", "[LOCATION]");
2454 
2455     SearchFeaturesPagedResponse pagedListResponse = client.searchFeatures(location);
2456 
2457     List<Feature> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2458 
2459     Assert.assertEquals(1, resources.size());
2460     Assert.assertEquals(expectedResponse.getFeaturesList().get(0), resources.get(0));
2461 
2462     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2463     Assert.assertEquals(1, actualRequests.size());
2464     SearchFeaturesRequest actualRequest = ((SearchFeaturesRequest) actualRequests.get(0));
2465 
2466     Assert.assertEquals(location.toString(), actualRequest.getLocation());
2467     Assert.assertTrue(
2468         channelProvider.isHeaderSent(
2469             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2470             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2471   }
2472 
2473   @Test
searchFeaturesExceptionTest()2474   public void searchFeaturesExceptionTest() throws Exception {
2475     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2476     mockFeaturestoreService.addException(exception);
2477 
2478     try {
2479       LocationName location = LocationName.of("[PROJECT]", "[LOCATION]");
2480       client.searchFeatures(location);
2481       Assert.fail("No exception raised");
2482     } catch (InvalidArgumentException e) {
2483       // Expected exception.
2484     }
2485   }
2486 
2487   @Test
searchFeaturesTest2()2488   public void searchFeaturesTest2() throws Exception {
2489     Feature responsesElement = Feature.newBuilder().build();
2490     SearchFeaturesResponse expectedResponse =
2491         SearchFeaturesResponse.newBuilder()
2492             .setNextPageToken("")
2493             .addAllFeatures(Arrays.asList(responsesElement))
2494             .build();
2495     mockFeaturestoreService.addResponse(expectedResponse);
2496 
2497     String location = "location1901043637";
2498 
2499     SearchFeaturesPagedResponse pagedListResponse = client.searchFeatures(location);
2500 
2501     List<Feature> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2502 
2503     Assert.assertEquals(1, resources.size());
2504     Assert.assertEquals(expectedResponse.getFeaturesList().get(0), resources.get(0));
2505 
2506     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2507     Assert.assertEquals(1, actualRequests.size());
2508     SearchFeaturesRequest actualRequest = ((SearchFeaturesRequest) actualRequests.get(0));
2509 
2510     Assert.assertEquals(location, actualRequest.getLocation());
2511     Assert.assertTrue(
2512         channelProvider.isHeaderSent(
2513             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2514             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2515   }
2516 
2517   @Test
searchFeaturesExceptionTest2()2518   public void searchFeaturesExceptionTest2() throws Exception {
2519     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2520     mockFeaturestoreService.addException(exception);
2521 
2522     try {
2523       String location = "location1901043637";
2524       client.searchFeatures(location);
2525       Assert.fail("No exception raised");
2526     } catch (InvalidArgumentException e) {
2527       // Expected exception.
2528     }
2529   }
2530 
2531   @Test
searchFeaturesTest3()2532   public void searchFeaturesTest3() throws Exception {
2533     Feature responsesElement = Feature.newBuilder().build();
2534     SearchFeaturesResponse expectedResponse =
2535         SearchFeaturesResponse.newBuilder()
2536             .setNextPageToken("")
2537             .addAllFeatures(Arrays.asList(responsesElement))
2538             .build();
2539     mockFeaturestoreService.addResponse(expectedResponse);
2540 
2541     LocationName location = LocationName.of("[PROJECT]", "[LOCATION]");
2542     String query = "query107944136";
2543 
2544     SearchFeaturesPagedResponse pagedListResponse = client.searchFeatures(location, query);
2545 
2546     List<Feature> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2547 
2548     Assert.assertEquals(1, resources.size());
2549     Assert.assertEquals(expectedResponse.getFeaturesList().get(0), resources.get(0));
2550 
2551     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2552     Assert.assertEquals(1, actualRequests.size());
2553     SearchFeaturesRequest actualRequest = ((SearchFeaturesRequest) actualRequests.get(0));
2554 
2555     Assert.assertEquals(location.toString(), actualRequest.getLocation());
2556     Assert.assertEquals(query, actualRequest.getQuery());
2557     Assert.assertTrue(
2558         channelProvider.isHeaderSent(
2559             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2560             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2561   }
2562 
2563   @Test
searchFeaturesExceptionTest3()2564   public void searchFeaturesExceptionTest3() throws Exception {
2565     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2566     mockFeaturestoreService.addException(exception);
2567 
2568     try {
2569       LocationName location = LocationName.of("[PROJECT]", "[LOCATION]");
2570       String query = "query107944136";
2571       client.searchFeatures(location, query);
2572       Assert.fail("No exception raised");
2573     } catch (InvalidArgumentException e) {
2574       // Expected exception.
2575     }
2576   }
2577 
2578   @Test
searchFeaturesTest4()2579   public void searchFeaturesTest4() throws Exception {
2580     Feature responsesElement = Feature.newBuilder().build();
2581     SearchFeaturesResponse expectedResponse =
2582         SearchFeaturesResponse.newBuilder()
2583             .setNextPageToken("")
2584             .addAllFeatures(Arrays.asList(responsesElement))
2585             .build();
2586     mockFeaturestoreService.addResponse(expectedResponse);
2587 
2588     String location = "location1901043637";
2589     String query = "query107944136";
2590 
2591     SearchFeaturesPagedResponse pagedListResponse = client.searchFeatures(location, query);
2592 
2593     List<Feature> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2594 
2595     Assert.assertEquals(1, resources.size());
2596     Assert.assertEquals(expectedResponse.getFeaturesList().get(0), resources.get(0));
2597 
2598     List<AbstractMessage> actualRequests = mockFeaturestoreService.getRequests();
2599     Assert.assertEquals(1, actualRequests.size());
2600     SearchFeaturesRequest actualRequest = ((SearchFeaturesRequest) actualRequests.get(0));
2601 
2602     Assert.assertEquals(location, actualRequest.getLocation());
2603     Assert.assertEquals(query, actualRequest.getQuery());
2604     Assert.assertTrue(
2605         channelProvider.isHeaderSent(
2606             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2607             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2608   }
2609 
2610   @Test
searchFeaturesExceptionTest4()2611   public void searchFeaturesExceptionTest4() throws Exception {
2612     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2613     mockFeaturestoreService.addException(exception);
2614 
2615     try {
2616       String location = "location1901043637";
2617       String query = "query107944136";
2618       client.searchFeatures(location, query);
2619       Assert.fail("No exception raised");
2620     } catch (InvalidArgumentException e) {
2621       // Expected exception.
2622     }
2623   }
2624 
2625   @Test
listLocationsTest()2626   public void listLocationsTest() throws Exception {
2627     Location responsesElement = Location.newBuilder().build();
2628     ListLocationsResponse expectedResponse =
2629         ListLocationsResponse.newBuilder()
2630             .setNextPageToken("")
2631             .addAllLocations(Arrays.asList(responsesElement))
2632             .build();
2633     mockLocations.addResponse(expectedResponse);
2634 
2635     ListLocationsRequest request =
2636         ListLocationsRequest.newBuilder()
2637             .setName("name3373707")
2638             .setFilter("filter-1274492040")
2639             .setPageSize(883849137)
2640             .setPageToken("pageToken873572522")
2641             .build();
2642 
2643     ListLocationsPagedResponse pagedListResponse = client.listLocations(request);
2644 
2645     List<Location> resources = Lists.newArrayList(pagedListResponse.iterateAll());
2646 
2647     Assert.assertEquals(1, resources.size());
2648     Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0));
2649 
2650     List<AbstractMessage> actualRequests = mockLocations.getRequests();
2651     Assert.assertEquals(1, actualRequests.size());
2652     ListLocationsRequest actualRequest = ((ListLocationsRequest) actualRequests.get(0));
2653 
2654     Assert.assertEquals(request.getName(), actualRequest.getName());
2655     Assert.assertEquals(request.getFilter(), actualRequest.getFilter());
2656     Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize());
2657     Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken());
2658     Assert.assertTrue(
2659         channelProvider.isHeaderSent(
2660             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2661             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2662   }
2663 
2664   @Test
listLocationsExceptionTest()2665   public void listLocationsExceptionTest() throws Exception {
2666     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2667     mockLocations.addException(exception);
2668 
2669     try {
2670       ListLocationsRequest request =
2671           ListLocationsRequest.newBuilder()
2672               .setName("name3373707")
2673               .setFilter("filter-1274492040")
2674               .setPageSize(883849137)
2675               .setPageToken("pageToken873572522")
2676               .build();
2677       client.listLocations(request);
2678       Assert.fail("No exception raised");
2679     } catch (InvalidArgumentException e) {
2680       // Expected exception.
2681     }
2682   }
2683 
2684   @Test
getLocationTest()2685   public void getLocationTest() throws Exception {
2686     Location expectedResponse =
2687         Location.newBuilder()
2688             .setName("name3373707")
2689             .setLocationId("locationId1541836720")
2690             .setDisplayName("displayName1714148973")
2691             .putAllLabels(new HashMap<String, String>())
2692             .setMetadata(Any.newBuilder().build())
2693             .build();
2694     mockLocations.addResponse(expectedResponse);
2695 
2696     GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
2697 
2698     Location actualResponse = client.getLocation(request);
2699     Assert.assertEquals(expectedResponse, actualResponse);
2700 
2701     List<AbstractMessage> actualRequests = mockLocations.getRequests();
2702     Assert.assertEquals(1, actualRequests.size());
2703     GetLocationRequest actualRequest = ((GetLocationRequest) actualRequests.get(0));
2704 
2705     Assert.assertEquals(request.getName(), actualRequest.getName());
2706     Assert.assertTrue(
2707         channelProvider.isHeaderSent(
2708             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2709             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2710   }
2711 
2712   @Test
getLocationExceptionTest()2713   public void getLocationExceptionTest() throws Exception {
2714     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2715     mockLocations.addException(exception);
2716 
2717     try {
2718       GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
2719       client.getLocation(request);
2720       Assert.fail("No exception raised");
2721     } catch (InvalidArgumentException e) {
2722       // Expected exception.
2723     }
2724   }
2725 
2726   @Test
setIamPolicyTest()2727   public void setIamPolicyTest() throws Exception {
2728     Policy expectedResponse =
2729         Policy.newBuilder()
2730             .setVersion(351608024)
2731             .addAllBindings(new ArrayList<Binding>())
2732             .addAllAuditConfigs(new ArrayList<AuditConfig>())
2733             .setEtag(ByteString.EMPTY)
2734             .build();
2735     mockIAMPolicy.addResponse(expectedResponse);
2736 
2737     SetIamPolicyRequest request =
2738         SetIamPolicyRequest.newBuilder()
2739             .setResource(
2740                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2741                     .toString())
2742             .setPolicy(Policy.newBuilder().build())
2743             .setUpdateMask(FieldMask.newBuilder().build())
2744             .build();
2745 
2746     Policy actualResponse = client.setIamPolicy(request);
2747     Assert.assertEquals(expectedResponse, actualResponse);
2748 
2749     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
2750     Assert.assertEquals(1, actualRequests.size());
2751     SetIamPolicyRequest actualRequest = ((SetIamPolicyRequest) actualRequests.get(0));
2752 
2753     Assert.assertEquals(request.getResource(), actualRequest.getResource());
2754     Assert.assertEquals(request.getPolicy(), actualRequest.getPolicy());
2755     Assert.assertEquals(request.getUpdateMask(), actualRequest.getUpdateMask());
2756     Assert.assertTrue(
2757         channelProvider.isHeaderSent(
2758             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2759             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2760   }
2761 
2762   @Test
setIamPolicyExceptionTest()2763   public void setIamPolicyExceptionTest() throws Exception {
2764     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2765     mockIAMPolicy.addException(exception);
2766 
2767     try {
2768       SetIamPolicyRequest request =
2769           SetIamPolicyRequest.newBuilder()
2770               .setResource(
2771                   EndpointName.ofProjectLocationEndpointName(
2772                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2773                       .toString())
2774               .setPolicy(Policy.newBuilder().build())
2775               .setUpdateMask(FieldMask.newBuilder().build())
2776               .build();
2777       client.setIamPolicy(request);
2778       Assert.fail("No exception raised");
2779     } catch (InvalidArgumentException e) {
2780       // Expected exception.
2781     }
2782   }
2783 
2784   @Test
getIamPolicyTest()2785   public void getIamPolicyTest() throws Exception {
2786     Policy expectedResponse =
2787         Policy.newBuilder()
2788             .setVersion(351608024)
2789             .addAllBindings(new ArrayList<Binding>())
2790             .addAllAuditConfigs(new ArrayList<AuditConfig>())
2791             .setEtag(ByteString.EMPTY)
2792             .build();
2793     mockIAMPolicy.addResponse(expectedResponse);
2794 
2795     GetIamPolicyRequest request =
2796         GetIamPolicyRequest.newBuilder()
2797             .setResource(
2798                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2799                     .toString())
2800             .setOptions(GetPolicyOptions.newBuilder().build())
2801             .build();
2802 
2803     Policy actualResponse = client.getIamPolicy(request);
2804     Assert.assertEquals(expectedResponse, actualResponse);
2805 
2806     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
2807     Assert.assertEquals(1, actualRequests.size());
2808     GetIamPolicyRequest actualRequest = ((GetIamPolicyRequest) actualRequests.get(0));
2809 
2810     Assert.assertEquals(request.getResource(), actualRequest.getResource());
2811     Assert.assertEquals(request.getOptions(), actualRequest.getOptions());
2812     Assert.assertTrue(
2813         channelProvider.isHeaderSent(
2814             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2815             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2816   }
2817 
2818   @Test
getIamPolicyExceptionTest()2819   public void getIamPolicyExceptionTest() throws Exception {
2820     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2821     mockIAMPolicy.addException(exception);
2822 
2823     try {
2824       GetIamPolicyRequest request =
2825           GetIamPolicyRequest.newBuilder()
2826               .setResource(
2827                   EndpointName.ofProjectLocationEndpointName(
2828                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2829                       .toString())
2830               .setOptions(GetPolicyOptions.newBuilder().build())
2831               .build();
2832       client.getIamPolicy(request);
2833       Assert.fail("No exception raised");
2834     } catch (InvalidArgumentException e) {
2835       // Expected exception.
2836     }
2837   }
2838 
2839   @Test
testIamPermissionsTest()2840   public void testIamPermissionsTest() throws Exception {
2841     TestIamPermissionsResponse expectedResponse =
2842         TestIamPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build();
2843     mockIAMPolicy.addResponse(expectedResponse);
2844 
2845     TestIamPermissionsRequest request =
2846         TestIamPermissionsRequest.newBuilder()
2847             .setResource(
2848                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2849                     .toString())
2850             .addAllPermissions(new ArrayList<String>())
2851             .build();
2852 
2853     TestIamPermissionsResponse actualResponse = client.testIamPermissions(request);
2854     Assert.assertEquals(expectedResponse, actualResponse);
2855 
2856     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
2857     Assert.assertEquals(1, actualRequests.size());
2858     TestIamPermissionsRequest actualRequest = ((TestIamPermissionsRequest) actualRequests.get(0));
2859 
2860     Assert.assertEquals(request.getResource(), actualRequest.getResource());
2861     Assert.assertEquals(request.getPermissionsList(), actualRequest.getPermissionsList());
2862     Assert.assertTrue(
2863         channelProvider.isHeaderSent(
2864             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2865             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2866   }
2867 
2868   @Test
testIamPermissionsExceptionTest()2869   public void testIamPermissionsExceptionTest() throws Exception {
2870     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2871     mockIAMPolicy.addException(exception);
2872 
2873     try {
2874       TestIamPermissionsRequest request =
2875           TestIamPermissionsRequest.newBuilder()
2876               .setResource(
2877                   EndpointName.ofProjectLocationEndpointName(
2878                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2879                       .toString())
2880               .addAllPermissions(new ArrayList<String>())
2881               .build();
2882       client.testIamPermissions(request);
2883       Assert.fail("No exception raised");
2884     } catch (InvalidArgumentException e) {
2885       // Expected exception.
2886     }
2887   }
2888 }
2889