• 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.ModelServiceClient.ListLocationsPagedResponse;
20 import static com.google.cloud.aiplatform.v1.ModelServiceClient.ListModelEvaluationSlicesPagedResponse;
21 import static com.google.cloud.aiplatform.v1.ModelServiceClient.ListModelEvaluationsPagedResponse;
22 import static com.google.cloud.aiplatform.v1.ModelServiceClient.ListModelVersionsPagedResponse;
23 import static com.google.cloud.aiplatform.v1.ModelServiceClient.ListModelsPagedResponse;
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 com.google.protobuf.Value;
54 import io.grpc.StatusRuntimeException;
55 import java.io.IOException;
56 import java.util.ArrayList;
57 import java.util.Arrays;
58 import java.util.HashMap;
59 import java.util.List;
60 import java.util.UUID;
61 import java.util.concurrent.ExecutionException;
62 import javax.annotation.Generated;
63 import org.junit.After;
64 import org.junit.AfterClass;
65 import org.junit.Assert;
66 import org.junit.Before;
67 import org.junit.BeforeClass;
68 import org.junit.Test;
69 
70 @Generated("by gapic-generator-java")
71 public class ModelServiceClientTest {
72   private static MockIAMPolicy mockIAMPolicy;
73   private static MockLocations mockLocations;
74   private static MockModelService mockModelService;
75   private static MockServiceHelper mockServiceHelper;
76   private LocalChannelProvider channelProvider;
77   private ModelServiceClient client;
78 
79   @BeforeClass
startStaticServer()80   public static void startStaticServer() {
81     mockModelService = new MockModelService();
82     mockLocations = new MockLocations();
83     mockIAMPolicy = new MockIAMPolicy();
84     mockServiceHelper =
85         new MockServiceHelper(
86             UUID.randomUUID().toString(),
87             Arrays.<MockGrpcService>asList(mockModelService, mockLocations, mockIAMPolicy));
88     mockServiceHelper.start();
89   }
90 
91   @AfterClass
stopServer()92   public static void stopServer() {
93     mockServiceHelper.stop();
94   }
95 
96   @Before
setUp()97   public void setUp() throws IOException {
98     mockServiceHelper.reset();
99     channelProvider = mockServiceHelper.createChannelProvider();
100     ModelServiceSettings settings =
101         ModelServiceSettings.newBuilder()
102             .setTransportChannelProvider(channelProvider)
103             .setCredentialsProvider(NoCredentialsProvider.create())
104             .build();
105     client = ModelServiceClient.create(settings);
106   }
107 
108   @After
tearDown()109   public void tearDown() throws Exception {
110     client.close();
111   }
112 
113   @Test
uploadModelTest()114   public void uploadModelTest() throws Exception {
115     UploadModelResponse expectedResponse =
116         UploadModelResponse.newBuilder()
117             .setModel(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
118             .setModelVersionId("modelVersionId-2006125846")
119             .build();
120     Operation resultOperation =
121         Operation.newBuilder()
122             .setName("uploadModelTest")
123             .setDone(true)
124             .setResponse(Any.pack(expectedResponse))
125             .build();
126     mockModelService.addResponse(resultOperation);
127 
128     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
129     Model model = Model.newBuilder().build();
130 
131     UploadModelResponse actualResponse = client.uploadModelAsync(parent, model).get();
132     Assert.assertEquals(expectedResponse, actualResponse);
133 
134     List<AbstractMessage> actualRequests = mockModelService.getRequests();
135     Assert.assertEquals(1, actualRequests.size());
136     UploadModelRequest actualRequest = ((UploadModelRequest) actualRequests.get(0));
137 
138     Assert.assertEquals(parent.toString(), actualRequest.getParent());
139     Assert.assertEquals(model, actualRequest.getModel());
140     Assert.assertTrue(
141         channelProvider.isHeaderSent(
142             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
143             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
144   }
145 
146   @Test
uploadModelExceptionTest()147   public void uploadModelExceptionTest() throws Exception {
148     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
149     mockModelService.addException(exception);
150 
151     try {
152       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
153       Model model = Model.newBuilder().build();
154       client.uploadModelAsync(parent, model).get();
155       Assert.fail("No exception raised");
156     } catch (ExecutionException e) {
157       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
158       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
159       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
160     }
161   }
162 
163   @Test
uploadModelTest2()164   public void uploadModelTest2() throws Exception {
165     UploadModelResponse expectedResponse =
166         UploadModelResponse.newBuilder()
167             .setModel(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
168             .setModelVersionId("modelVersionId-2006125846")
169             .build();
170     Operation resultOperation =
171         Operation.newBuilder()
172             .setName("uploadModelTest")
173             .setDone(true)
174             .setResponse(Any.pack(expectedResponse))
175             .build();
176     mockModelService.addResponse(resultOperation);
177 
178     String parent = "parent-995424086";
179     Model model = Model.newBuilder().build();
180 
181     UploadModelResponse actualResponse = client.uploadModelAsync(parent, model).get();
182     Assert.assertEquals(expectedResponse, actualResponse);
183 
184     List<AbstractMessage> actualRequests = mockModelService.getRequests();
185     Assert.assertEquals(1, actualRequests.size());
186     UploadModelRequest actualRequest = ((UploadModelRequest) actualRequests.get(0));
187 
188     Assert.assertEquals(parent, actualRequest.getParent());
189     Assert.assertEquals(model, actualRequest.getModel());
190     Assert.assertTrue(
191         channelProvider.isHeaderSent(
192             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
193             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
194   }
195 
196   @Test
uploadModelExceptionTest2()197   public void uploadModelExceptionTest2() throws Exception {
198     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
199     mockModelService.addException(exception);
200 
201     try {
202       String parent = "parent-995424086";
203       Model model = Model.newBuilder().build();
204       client.uploadModelAsync(parent, model).get();
205       Assert.fail("No exception raised");
206     } catch (ExecutionException e) {
207       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
208       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
209       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
210     }
211   }
212 
213   @Test
getModelTest()214   public void getModelTest() throws Exception {
215     Model expectedResponse =
216         Model.newBuilder()
217             .setName(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
218             .setVersionId("versionId-1407102957")
219             .addAllVersionAliases(new ArrayList<String>())
220             .setVersionCreateTime(Timestamp.newBuilder().build())
221             .setVersionUpdateTime(Timestamp.newBuilder().build())
222             .setDisplayName("displayName1714148973")
223             .setDescription("description-1724546052")
224             .setVersionDescription("versionDescription-1736173564")
225             .setPredictSchemata(PredictSchemata.newBuilder().build())
226             .setMetadataSchemaUri("metadataSchemaUri781971868")
227             .setMetadata(Value.newBuilder().setBoolValue(true).build())
228             .addAllSupportedExportFormats(new ArrayList<Model.ExportFormat>())
229             .setTrainingPipeline(
230                 TrainingPipelineName.of("[PROJECT]", "[LOCATION]", "[TRAINING_PIPELINE]")
231                     .toString())
232             .setContainerSpec(ModelContainerSpec.newBuilder().build())
233             .setArtifactUri("artifactUri-1130062278")
234             .addAllSupportedDeploymentResourcesTypes(new ArrayList<Model.DeploymentResourcesType>())
235             .addAllSupportedInputStorageFormats(new ArrayList<String>())
236             .addAllSupportedOutputStorageFormats(new ArrayList<String>())
237             .setCreateTime(Timestamp.newBuilder().build())
238             .setUpdateTime(Timestamp.newBuilder().build())
239             .addAllDeployedModels(new ArrayList<DeployedModelRef>())
240             .setExplanationSpec(ExplanationSpec.newBuilder().build())
241             .setEtag("etag3123477")
242             .putAllLabels(new HashMap<String, String>())
243             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
244             .setModelSourceInfo(ModelSourceInfo.newBuilder().build())
245             .setOriginalModelInfo(Model.OriginalModelInfo.newBuilder().build())
246             .setMetadataArtifact("metadataArtifact1018119713")
247             .build();
248     mockModelService.addResponse(expectedResponse);
249 
250     ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
251 
252     Model actualResponse = client.getModel(name);
253     Assert.assertEquals(expectedResponse, actualResponse);
254 
255     List<AbstractMessage> actualRequests = mockModelService.getRequests();
256     Assert.assertEquals(1, actualRequests.size());
257     GetModelRequest actualRequest = ((GetModelRequest) actualRequests.get(0));
258 
259     Assert.assertEquals(name.toString(), actualRequest.getName());
260     Assert.assertTrue(
261         channelProvider.isHeaderSent(
262             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
263             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
264   }
265 
266   @Test
getModelExceptionTest()267   public void getModelExceptionTest() throws Exception {
268     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
269     mockModelService.addException(exception);
270 
271     try {
272       ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
273       client.getModel(name);
274       Assert.fail("No exception raised");
275     } catch (InvalidArgumentException e) {
276       // Expected exception.
277     }
278   }
279 
280   @Test
getModelTest2()281   public void getModelTest2() throws Exception {
282     Model expectedResponse =
283         Model.newBuilder()
284             .setName(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
285             .setVersionId("versionId-1407102957")
286             .addAllVersionAliases(new ArrayList<String>())
287             .setVersionCreateTime(Timestamp.newBuilder().build())
288             .setVersionUpdateTime(Timestamp.newBuilder().build())
289             .setDisplayName("displayName1714148973")
290             .setDescription("description-1724546052")
291             .setVersionDescription("versionDescription-1736173564")
292             .setPredictSchemata(PredictSchemata.newBuilder().build())
293             .setMetadataSchemaUri("metadataSchemaUri781971868")
294             .setMetadata(Value.newBuilder().setBoolValue(true).build())
295             .addAllSupportedExportFormats(new ArrayList<Model.ExportFormat>())
296             .setTrainingPipeline(
297                 TrainingPipelineName.of("[PROJECT]", "[LOCATION]", "[TRAINING_PIPELINE]")
298                     .toString())
299             .setContainerSpec(ModelContainerSpec.newBuilder().build())
300             .setArtifactUri("artifactUri-1130062278")
301             .addAllSupportedDeploymentResourcesTypes(new ArrayList<Model.DeploymentResourcesType>())
302             .addAllSupportedInputStorageFormats(new ArrayList<String>())
303             .addAllSupportedOutputStorageFormats(new ArrayList<String>())
304             .setCreateTime(Timestamp.newBuilder().build())
305             .setUpdateTime(Timestamp.newBuilder().build())
306             .addAllDeployedModels(new ArrayList<DeployedModelRef>())
307             .setExplanationSpec(ExplanationSpec.newBuilder().build())
308             .setEtag("etag3123477")
309             .putAllLabels(new HashMap<String, String>())
310             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
311             .setModelSourceInfo(ModelSourceInfo.newBuilder().build())
312             .setOriginalModelInfo(Model.OriginalModelInfo.newBuilder().build())
313             .setMetadataArtifact("metadataArtifact1018119713")
314             .build();
315     mockModelService.addResponse(expectedResponse);
316 
317     String name = "name3373707";
318 
319     Model actualResponse = client.getModel(name);
320     Assert.assertEquals(expectedResponse, actualResponse);
321 
322     List<AbstractMessage> actualRequests = mockModelService.getRequests();
323     Assert.assertEquals(1, actualRequests.size());
324     GetModelRequest actualRequest = ((GetModelRequest) actualRequests.get(0));
325 
326     Assert.assertEquals(name, actualRequest.getName());
327     Assert.assertTrue(
328         channelProvider.isHeaderSent(
329             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
330             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
331   }
332 
333   @Test
getModelExceptionTest2()334   public void getModelExceptionTest2() throws Exception {
335     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
336     mockModelService.addException(exception);
337 
338     try {
339       String name = "name3373707";
340       client.getModel(name);
341       Assert.fail("No exception raised");
342     } catch (InvalidArgumentException e) {
343       // Expected exception.
344     }
345   }
346 
347   @Test
listModelsTest()348   public void listModelsTest() throws Exception {
349     Model responsesElement = Model.newBuilder().build();
350     ListModelsResponse expectedResponse =
351         ListModelsResponse.newBuilder()
352             .setNextPageToken("")
353             .addAllModels(Arrays.asList(responsesElement))
354             .build();
355     mockModelService.addResponse(expectedResponse);
356 
357     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
358 
359     ListModelsPagedResponse pagedListResponse = client.listModels(parent);
360 
361     List<Model> resources = Lists.newArrayList(pagedListResponse.iterateAll());
362 
363     Assert.assertEquals(1, resources.size());
364     Assert.assertEquals(expectedResponse.getModelsList().get(0), resources.get(0));
365 
366     List<AbstractMessage> actualRequests = mockModelService.getRequests();
367     Assert.assertEquals(1, actualRequests.size());
368     ListModelsRequest actualRequest = ((ListModelsRequest) actualRequests.get(0));
369 
370     Assert.assertEquals(parent.toString(), actualRequest.getParent());
371     Assert.assertTrue(
372         channelProvider.isHeaderSent(
373             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
374             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
375   }
376 
377   @Test
listModelsExceptionTest()378   public void listModelsExceptionTest() throws Exception {
379     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
380     mockModelService.addException(exception);
381 
382     try {
383       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
384       client.listModels(parent);
385       Assert.fail("No exception raised");
386     } catch (InvalidArgumentException e) {
387       // Expected exception.
388     }
389   }
390 
391   @Test
listModelsTest2()392   public void listModelsTest2() throws Exception {
393     Model responsesElement = Model.newBuilder().build();
394     ListModelsResponse expectedResponse =
395         ListModelsResponse.newBuilder()
396             .setNextPageToken("")
397             .addAllModels(Arrays.asList(responsesElement))
398             .build();
399     mockModelService.addResponse(expectedResponse);
400 
401     String parent = "parent-995424086";
402 
403     ListModelsPagedResponse pagedListResponse = client.listModels(parent);
404 
405     List<Model> resources = Lists.newArrayList(pagedListResponse.iterateAll());
406 
407     Assert.assertEquals(1, resources.size());
408     Assert.assertEquals(expectedResponse.getModelsList().get(0), resources.get(0));
409 
410     List<AbstractMessage> actualRequests = mockModelService.getRequests();
411     Assert.assertEquals(1, actualRequests.size());
412     ListModelsRequest actualRequest = ((ListModelsRequest) actualRequests.get(0));
413 
414     Assert.assertEquals(parent, actualRequest.getParent());
415     Assert.assertTrue(
416         channelProvider.isHeaderSent(
417             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
418             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
419   }
420 
421   @Test
listModelsExceptionTest2()422   public void listModelsExceptionTest2() throws Exception {
423     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
424     mockModelService.addException(exception);
425 
426     try {
427       String parent = "parent-995424086";
428       client.listModels(parent);
429       Assert.fail("No exception raised");
430     } catch (InvalidArgumentException e) {
431       // Expected exception.
432     }
433   }
434 
435   @Test
listModelVersionsTest()436   public void listModelVersionsTest() throws Exception {
437     Model responsesElement = Model.newBuilder().build();
438     ListModelVersionsResponse expectedResponse =
439         ListModelVersionsResponse.newBuilder()
440             .setNextPageToken("")
441             .addAllModels(Arrays.asList(responsesElement))
442             .build();
443     mockModelService.addResponse(expectedResponse);
444 
445     ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
446 
447     ListModelVersionsPagedResponse pagedListResponse = client.listModelVersions(name);
448 
449     List<Model> resources = Lists.newArrayList(pagedListResponse.iterateAll());
450 
451     Assert.assertEquals(1, resources.size());
452     Assert.assertEquals(expectedResponse.getModelsList().get(0), resources.get(0));
453 
454     List<AbstractMessage> actualRequests = mockModelService.getRequests();
455     Assert.assertEquals(1, actualRequests.size());
456     ListModelVersionsRequest actualRequest = ((ListModelVersionsRequest) actualRequests.get(0));
457 
458     Assert.assertEquals(name.toString(), actualRequest.getName());
459     Assert.assertTrue(
460         channelProvider.isHeaderSent(
461             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
462             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
463   }
464 
465   @Test
listModelVersionsExceptionTest()466   public void listModelVersionsExceptionTest() throws Exception {
467     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
468     mockModelService.addException(exception);
469 
470     try {
471       ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
472       client.listModelVersions(name);
473       Assert.fail("No exception raised");
474     } catch (InvalidArgumentException e) {
475       // Expected exception.
476     }
477   }
478 
479   @Test
listModelVersionsTest2()480   public void listModelVersionsTest2() throws Exception {
481     Model responsesElement = Model.newBuilder().build();
482     ListModelVersionsResponse expectedResponse =
483         ListModelVersionsResponse.newBuilder()
484             .setNextPageToken("")
485             .addAllModels(Arrays.asList(responsesElement))
486             .build();
487     mockModelService.addResponse(expectedResponse);
488 
489     String name = "name3373707";
490 
491     ListModelVersionsPagedResponse pagedListResponse = client.listModelVersions(name);
492 
493     List<Model> resources = Lists.newArrayList(pagedListResponse.iterateAll());
494 
495     Assert.assertEquals(1, resources.size());
496     Assert.assertEquals(expectedResponse.getModelsList().get(0), resources.get(0));
497 
498     List<AbstractMessage> actualRequests = mockModelService.getRequests();
499     Assert.assertEquals(1, actualRequests.size());
500     ListModelVersionsRequest actualRequest = ((ListModelVersionsRequest) actualRequests.get(0));
501 
502     Assert.assertEquals(name, actualRequest.getName());
503     Assert.assertTrue(
504         channelProvider.isHeaderSent(
505             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
506             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
507   }
508 
509   @Test
listModelVersionsExceptionTest2()510   public void listModelVersionsExceptionTest2() throws Exception {
511     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
512     mockModelService.addException(exception);
513 
514     try {
515       String name = "name3373707";
516       client.listModelVersions(name);
517       Assert.fail("No exception raised");
518     } catch (InvalidArgumentException e) {
519       // Expected exception.
520     }
521   }
522 
523   @Test
updateModelTest()524   public void updateModelTest() throws Exception {
525     Model expectedResponse =
526         Model.newBuilder()
527             .setName(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
528             .setVersionId("versionId-1407102957")
529             .addAllVersionAliases(new ArrayList<String>())
530             .setVersionCreateTime(Timestamp.newBuilder().build())
531             .setVersionUpdateTime(Timestamp.newBuilder().build())
532             .setDisplayName("displayName1714148973")
533             .setDescription("description-1724546052")
534             .setVersionDescription("versionDescription-1736173564")
535             .setPredictSchemata(PredictSchemata.newBuilder().build())
536             .setMetadataSchemaUri("metadataSchemaUri781971868")
537             .setMetadata(Value.newBuilder().setBoolValue(true).build())
538             .addAllSupportedExportFormats(new ArrayList<Model.ExportFormat>())
539             .setTrainingPipeline(
540                 TrainingPipelineName.of("[PROJECT]", "[LOCATION]", "[TRAINING_PIPELINE]")
541                     .toString())
542             .setContainerSpec(ModelContainerSpec.newBuilder().build())
543             .setArtifactUri("artifactUri-1130062278")
544             .addAllSupportedDeploymentResourcesTypes(new ArrayList<Model.DeploymentResourcesType>())
545             .addAllSupportedInputStorageFormats(new ArrayList<String>())
546             .addAllSupportedOutputStorageFormats(new ArrayList<String>())
547             .setCreateTime(Timestamp.newBuilder().build())
548             .setUpdateTime(Timestamp.newBuilder().build())
549             .addAllDeployedModels(new ArrayList<DeployedModelRef>())
550             .setExplanationSpec(ExplanationSpec.newBuilder().build())
551             .setEtag("etag3123477")
552             .putAllLabels(new HashMap<String, String>())
553             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
554             .setModelSourceInfo(ModelSourceInfo.newBuilder().build())
555             .setOriginalModelInfo(Model.OriginalModelInfo.newBuilder().build())
556             .setMetadataArtifact("metadataArtifact1018119713")
557             .build();
558     mockModelService.addResponse(expectedResponse);
559 
560     Model model = Model.newBuilder().build();
561     FieldMask updateMask = FieldMask.newBuilder().build();
562 
563     Model actualResponse = client.updateModel(model, updateMask);
564     Assert.assertEquals(expectedResponse, actualResponse);
565 
566     List<AbstractMessage> actualRequests = mockModelService.getRequests();
567     Assert.assertEquals(1, actualRequests.size());
568     UpdateModelRequest actualRequest = ((UpdateModelRequest) actualRequests.get(0));
569 
570     Assert.assertEquals(model, actualRequest.getModel());
571     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
572     Assert.assertTrue(
573         channelProvider.isHeaderSent(
574             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
575             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
576   }
577 
578   @Test
updateModelExceptionTest()579   public void updateModelExceptionTest() throws Exception {
580     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
581     mockModelService.addException(exception);
582 
583     try {
584       Model model = Model.newBuilder().build();
585       FieldMask updateMask = FieldMask.newBuilder().build();
586       client.updateModel(model, updateMask);
587       Assert.fail("No exception raised");
588     } catch (InvalidArgumentException e) {
589       // Expected exception.
590     }
591   }
592 
593   @Test
deleteModelTest()594   public void deleteModelTest() throws Exception {
595     Empty expectedResponse = Empty.newBuilder().build();
596     Operation resultOperation =
597         Operation.newBuilder()
598             .setName("deleteModelTest")
599             .setDone(true)
600             .setResponse(Any.pack(expectedResponse))
601             .build();
602     mockModelService.addResponse(resultOperation);
603 
604     ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
605 
606     client.deleteModelAsync(name).get();
607 
608     List<AbstractMessage> actualRequests = mockModelService.getRequests();
609     Assert.assertEquals(1, actualRequests.size());
610     DeleteModelRequest actualRequest = ((DeleteModelRequest) actualRequests.get(0));
611 
612     Assert.assertEquals(name.toString(), actualRequest.getName());
613     Assert.assertTrue(
614         channelProvider.isHeaderSent(
615             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
616             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
617   }
618 
619   @Test
deleteModelExceptionTest()620   public void deleteModelExceptionTest() throws Exception {
621     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
622     mockModelService.addException(exception);
623 
624     try {
625       ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
626       client.deleteModelAsync(name).get();
627       Assert.fail("No exception raised");
628     } catch (ExecutionException e) {
629       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
630       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
631       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
632     }
633   }
634 
635   @Test
deleteModelTest2()636   public void deleteModelTest2() throws Exception {
637     Empty expectedResponse = Empty.newBuilder().build();
638     Operation resultOperation =
639         Operation.newBuilder()
640             .setName("deleteModelTest")
641             .setDone(true)
642             .setResponse(Any.pack(expectedResponse))
643             .build();
644     mockModelService.addResponse(resultOperation);
645 
646     String name = "name3373707";
647 
648     client.deleteModelAsync(name).get();
649 
650     List<AbstractMessage> actualRequests = mockModelService.getRequests();
651     Assert.assertEquals(1, actualRequests.size());
652     DeleteModelRequest actualRequest = ((DeleteModelRequest) actualRequests.get(0));
653 
654     Assert.assertEquals(name, actualRequest.getName());
655     Assert.assertTrue(
656         channelProvider.isHeaderSent(
657             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
658             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
659   }
660 
661   @Test
deleteModelExceptionTest2()662   public void deleteModelExceptionTest2() throws Exception {
663     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
664     mockModelService.addException(exception);
665 
666     try {
667       String name = "name3373707";
668       client.deleteModelAsync(name).get();
669       Assert.fail("No exception raised");
670     } catch (ExecutionException e) {
671       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
672       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
673       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
674     }
675   }
676 
677   @Test
deleteModelVersionTest()678   public void deleteModelVersionTest() throws Exception {
679     Empty expectedResponse = Empty.newBuilder().build();
680     Operation resultOperation =
681         Operation.newBuilder()
682             .setName("deleteModelVersionTest")
683             .setDone(true)
684             .setResponse(Any.pack(expectedResponse))
685             .build();
686     mockModelService.addResponse(resultOperation);
687 
688     ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
689 
690     client.deleteModelVersionAsync(name).get();
691 
692     List<AbstractMessage> actualRequests = mockModelService.getRequests();
693     Assert.assertEquals(1, actualRequests.size());
694     DeleteModelVersionRequest actualRequest = ((DeleteModelVersionRequest) actualRequests.get(0));
695 
696     Assert.assertEquals(name.toString(), actualRequest.getName());
697     Assert.assertTrue(
698         channelProvider.isHeaderSent(
699             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
700             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
701   }
702 
703   @Test
deleteModelVersionExceptionTest()704   public void deleteModelVersionExceptionTest() throws Exception {
705     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
706     mockModelService.addException(exception);
707 
708     try {
709       ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
710       client.deleteModelVersionAsync(name).get();
711       Assert.fail("No exception raised");
712     } catch (ExecutionException e) {
713       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
714       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
715       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
716     }
717   }
718 
719   @Test
deleteModelVersionTest2()720   public void deleteModelVersionTest2() throws Exception {
721     Empty expectedResponse = Empty.newBuilder().build();
722     Operation resultOperation =
723         Operation.newBuilder()
724             .setName("deleteModelVersionTest")
725             .setDone(true)
726             .setResponse(Any.pack(expectedResponse))
727             .build();
728     mockModelService.addResponse(resultOperation);
729 
730     String name = "name3373707";
731 
732     client.deleteModelVersionAsync(name).get();
733 
734     List<AbstractMessage> actualRequests = mockModelService.getRequests();
735     Assert.assertEquals(1, actualRequests.size());
736     DeleteModelVersionRequest actualRequest = ((DeleteModelVersionRequest) actualRequests.get(0));
737 
738     Assert.assertEquals(name, actualRequest.getName());
739     Assert.assertTrue(
740         channelProvider.isHeaderSent(
741             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
742             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
743   }
744 
745   @Test
deleteModelVersionExceptionTest2()746   public void deleteModelVersionExceptionTest2() throws Exception {
747     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
748     mockModelService.addException(exception);
749 
750     try {
751       String name = "name3373707";
752       client.deleteModelVersionAsync(name).get();
753       Assert.fail("No exception raised");
754     } catch (ExecutionException e) {
755       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
756       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
757       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
758     }
759   }
760 
761   @Test
mergeVersionAliasesTest()762   public void mergeVersionAliasesTest() throws Exception {
763     Model expectedResponse =
764         Model.newBuilder()
765             .setName(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
766             .setVersionId("versionId-1407102957")
767             .addAllVersionAliases(new ArrayList<String>())
768             .setVersionCreateTime(Timestamp.newBuilder().build())
769             .setVersionUpdateTime(Timestamp.newBuilder().build())
770             .setDisplayName("displayName1714148973")
771             .setDescription("description-1724546052")
772             .setVersionDescription("versionDescription-1736173564")
773             .setPredictSchemata(PredictSchemata.newBuilder().build())
774             .setMetadataSchemaUri("metadataSchemaUri781971868")
775             .setMetadata(Value.newBuilder().setBoolValue(true).build())
776             .addAllSupportedExportFormats(new ArrayList<Model.ExportFormat>())
777             .setTrainingPipeline(
778                 TrainingPipelineName.of("[PROJECT]", "[LOCATION]", "[TRAINING_PIPELINE]")
779                     .toString())
780             .setContainerSpec(ModelContainerSpec.newBuilder().build())
781             .setArtifactUri("artifactUri-1130062278")
782             .addAllSupportedDeploymentResourcesTypes(new ArrayList<Model.DeploymentResourcesType>())
783             .addAllSupportedInputStorageFormats(new ArrayList<String>())
784             .addAllSupportedOutputStorageFormats(new ArrayList<String>())
785             .setCreateTime(Timestamp.newBuilder().build())
786             .setUpdateTime(Timestamp.newBuilder().build())
787             .addAllDeployedModels(new ArrayList<DeployedModelRef>())
788             .setExplanationSpec(ExplanationSpec.newBuilder().build())
789             .setEtag("etag3123477")
790             .putAllLabels(new HashMap<String, String>())
791             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
792             .setModelSourceInfo(ModelSourceInfo.newBuilder().build())
793             .setOriginalModelInfo(Model.OriginalModelInfo.newBuilder().build())
794             .setMetadataArtifact("metadataArtifact1018119713")
795             .build();
796     mockModelService.addResponse(expectedResponse);
797 
798     ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
799     List<String> versionAliases = new ArrayList<>();
800 
801     Model actualResponse = client.mergeVersionAliases(name, versionAliases);
802     Assert.assertEquals(expectedResponse, actualResponse);
803 
804     List<AbstractMessage> actualRequests = mockModelService.getRequests();
805     Assert.assertEquals(1, actualRequests.size());
806     MergeVersionAliasesRequest actualRequest = ((MergeVersionAliasesRequest) actualRequests.get(0));
807 
808     Assert.assertEquals(name.toString(), actualRequest.getName());
809     Assert.assertEquals(versionAliases, actualRequest.getVersionAliasesList());
810     Assert.assertTrue(
811         channelProvider.isHeaderSent(
812             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
813             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
814   }
815 
816   @Test
mergeVersionAliasesExceptionTest()817   public void mergeVersionAliasesExceptionTest() throws Exception {
818     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
819     mockModelService.addException(exception);
820 
821     try {
822       ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
823       List<String> versionAliases = new ArrayList<>();
824       client.mergeVersionAliases(name, versionAliases);
825       Assert.fail("No exception raised");
826     } catch (InvalidArgumentException e) {
827       // Expected exception.
828     }
829   }
830 
831   @Test
mergeVersionAliasesTest2()832   public void mergeVersionAliasesTest2() throws Exception {
833     Model expectedResponse =
834         Model.newBuilder()
835             .setName(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
836             .setVersionId("versionId-1407102957")
837             .addAllVersionAliases(new ArrayList<String>())
838             .setVersionCreateTime(Timestamp.newBuilder().build())
839             .setVersionUpdateTime(Timestamp.newBuilder().build())
840             .setDisplayName("displayName1714148973")
841             .setDescription("description-1724546052")
842             .setVersionDescription("versionDescription-1736173564")
843             .setPredictSchemata(PredictSchemata.newBuilder().build())
844             .setMetadataSchemaUri("metadataSchemaUri781971868")
845             .setMetadata(Value.newBuilder().setBoolValue(true).build())
846             .addAllSupportedExportFormats(new ArrayList<Model.ExportFormat>())
847             .setTrainingPipeline(
848                 TrainingPipelineName.of("[PROJECT]", "[LOCATION]", "[TRAINING_PIPELINE]")
849                     .toString())
850             .setContainerSpec(ModelContainerSpec.newBuilder().build())
851             .setArtifactUri("artifactUri-1130062278")
852             .addAllSupportedDeploymentResourcesTypes(new ArrayList<Model.DeploymentResourcesType>())
853             .addAllSupportedInputStorageFormats(new ArrayList<String>())
854             .addAllSupportedOutputStorageFormats(new ArrayList<String>())
855             .setCreateTime(Timestamp.newBuilder().build())
856             .setUpdateTime(Timestamp.newBuilder().build())
857             .addAllDeployedModels(new ArrayList<DeployedModelRef>())
858             .setExplanationSpec(ExplanationSpec.newBuilder().build())
859             .setEtag("etag3123477")
860             .putAllLabels(new HashMap<String, String>())
861             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
862             .setModelSourceInfo(ModelSourceInfo.newBuilder().build())
863             .setOriginalModelInfo(Model.OriginalModelInfo.newBuilder().build())
864             .setMetadataArtifact("metadataArtifact1018119713")
865             .build();
866     mockModelService.addResponse(expectedResponse);
867 
868     String name = "name3373707";
869     List<String> versionAliases = new ArrayList<>();
870 
871     Model actualResponse = client.mergeVersionAliases(name, versionAliases);
872     Assert.assertEquals(expectedResponse, actualResponse);
873 
874     List<AbstractMessage> actualRequests = mockModelService.getRequests();
875     Assert.assertEquals(1, actualRequests.size());
876     MergeVersionAliasesRequest actualRequest = ((MergeVersionAliasesRequest) actualRequests.get(0));
877 
878     Assert.assertEquals(name, actualRequest.getName());
879     Assert.assertEquals(versionAliases, actualRequest.getVersionAliasesList());
880     Assert.assertTrue(
881         channelProvider.isHeaderSent(
882             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
883             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
884   }
885 
886   @Test
mergeVersionAliasesExceptionTest2()887   public void mergeVersionAliasesExceptionTest2() throws Exception {
888     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
889     mockModelService.addException(exception);
890 
891     try {
892       String name = "name3373707";
893       List<String> versionAliases = new ArrayList<>();
894       client.mergeVersionAliases(name, versionAliases);
895       Assert.fail("No exception raised");
896     } catch (InvalidArgumentException e) {
897       // Expected exception.
898     }
899   }
900 
901   @Test
exportModelTest()902   public void exportModelTest() throws Exception {
903     ExportModelResponse expectedResponse = ExportModelResponse.newBuilder().build();
904     Operation resultOperation =
905         Operation.newBuilder()
906             .setName("exportModelTest")
907             .setDone(true)
908             .setResponse(Any.pack(expectedResponse))
909             .build();
910     mockModelService.addResponse(resultOperation);
911 
912     ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
913     ExportModelRequest.OutputConfig outputConfig =
914         ExportModelRequest.OutputConfig.newBuilder().build();
915 
916     ExportModelResponse actualResponse = client.exportModelAsync(name, outputConfig).get();
917     Assert.assertEquals(expectedResponse, actualResponse);
918 
919     List<AbstractMessage> actualRequests = mockModelService.getRequests();
920     Assert.assertEquals(1, actualRequests.size());
921     ExportModelRequest actualRequest = ((ExportModelRequest) actualRequests.get(0));
922 
923     Assert.assertEquals(name.toString(), actualRequest.getName());
924     Assert.assertEquals(outputConfig, actualRequest.getOutputConfig());
925     Assert.assertTrue(
926         channelProvider.isHeaderSent(
927             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
928             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
929   }
930 
931   @Test
exportModelExceptionTest()932   public void exportModelExceptionTest() throws Exception {
933     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
934     mockModelService.addException(exception);
935 
936     try {
937       ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
938       ExportModelRequest.OutputConfig outputConfig =
939           ExportModelRequest.OutputConfig.newBuilder().build();
940       client.exportModelAsync(name, outputConfig).get();
941       Assert.fail("No exception raised");
942     } catch (ExecutionException e) {
943       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
944       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
945       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
946     }
947   }
948 
949   @Test
exportModelTest2()950   public void exportModelTest2() throws Exception {
951     ExportModelResponse expectedResponse = ExportModelResponse.newBuilder().build();
952     Operation resultOperation =
953         Operation.newBuilder()
954             .setName("exportModelTest")
955             .setDone(true)
956             .setResponse(Any.pack(expectedResponse))
957             .build();
958     mockModelService.addResponse(resultOperation);
959 
960     String name = "name3373707";
961     ExportModelRequest.OutputConfig outputConfig =
962         ExportModelRequest.OutputConfig.newBuilder().build();
963 
964     ExportModelResponse actualResponse = client.exportModelAsync(name, outputConfig).get();
965     Assert.assertEquals(expectedResponse, actualResponse);
966 
967     List<AbstractMessage> actualRequests = mockModelService.getRequests();
968     Assert.assertEquals(1, actualRequests.size());
969     ExportModelRequest actualRequest = ((ExportModelRequest) actualRequests.get(0));
970 
971     Assert.assertEquals(name, actualRequest.getName());
972     Assert.assertEquals(outputConfig, actualRequest.getOutputConfig());
973     Assert.assertTrue(
974         channelProvider.isHeaderSent(
975             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
976             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
977   }
978 
979   @Test
exportModelExceptionTest2()980   public void exportModelExceptionTest2() throws Exception {
981     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
982     mockModelService.addException(exception);
983 
984     try {
985       String name = "name3373707";
986       ExportModelRequest.OutputConfig outputConfig =
987           ExportModelRequest.OutputConfig.newBuilder().build();
988       client.exportModelAsync(name, outputConfig).get();
989       Assert.fail("No exception raised");
990     } catch (ExecutionException e) {
991       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
992       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
993       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
994     }
995   }
996 
997   @Test
copyModelTest()998   public void copyModelTest() throws Exception {
999     CopyModelResponse expectedResponse =
1000         CopyModelResponse.newBuilder()
1001             .setModel(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
1002             .setModelVersionId("modelVersionId-2006125846")
1003             .build();
1004     Operation resultOperation =
1005         Operation.newBuilder()
1006             .setName("copyModelTest")
1007             .setDone(true)
1008             .setResponse(Any.pack(expectedResponse))
1009             .build();
1010     mockModelService.addResponse(resultOperation);
1011 
1012     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
1013     ModelName sourceModel = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1014 
1015     CopyModelResponse actualResponse = client.copyModelAsync(parent, sourceModel).get();
1016     Assert.assertEquals(expectedResponse, actualResponse);
1017 
1018     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1019     Assert.assertEquals(1, actualRequests.size());
1020     CopyModelRequest actualRequest = ((CopyModelRequest) actualRequests.get(0));
1021 
1022     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1023     Assert.assertEquals(sourceModel.toString(), actualRequest.getSourceModel());
1024     Assert.assertTrue(
1025         channelProvider.isHeaderSent(
1026             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1027             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1028   }
1029 
1030   @Test
copyModelExceptionTest()1031   public void copyModelExceptionTest() throws Exception {
1032     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1033     mockModelService.addException(exception);
1034 
1035     try {
1036       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
1037       ModelName sourceModel = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1038       client.copyModelAsync(parent, sourceModel).get();
1039       Assert.fail("No exception raised");
1040     } catch (ExecutionException e) {
1041       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1042       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1043       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1044     }
1045   }
1046 
1047   @Test
copyModelTest2()1048   public void copyModelTest2() throws Exception {
1049     CopyModelResponse expectedResponse =
1050         CopyModelResponse.newBuilder()
1051             .setModel(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
1052             .setModelVersionId("modelVersionId-2006125846")
1053             .build();
1054     Operation resultOperation =
1055         Operation.newBuilder()
1056             .setName("copyModelTest")
1057             .setDone(true)
1058             .setResponse(Any.pack(expectedResponse))
1059             .build();
1060     mockModelService.addResponse(resultOperation);
1061 
1062     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
1063     String sourceModel = "sourceModel-101418034";
1064 
1065     CopyModelResponse actualResponse = client.copyModelAsync(parent, sourceModel).get();
1066     Assert.assertEquals(expectedResponse, actualResponse);
1067 
1068     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1069     Assert.assertEquals(1, actualRequests.size());
1070     CopyModelRequest actualRequest = ((CopyModelRequest) actualRequests.get(0));
1071 
1072     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1073     Assert.assertEquals(sourceModel, actualRequest.getSourceModel());
1074     Assert.assertTrue(
1075         channelProvider.isHeaderSent(
1076             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1077             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1078   }
1079 
1080   @Test
copyModelExceptionTest2()1081   public void copyModelExceptionTest2() throws Exception {
1082     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1083     mockModelService.addException(exception);
1084 
1085     try {
1086       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
1087       String sourceModel = "sourceModel-101418034";
1088       client.copyModelAsync(parent, sourceModel).get();
1089       Assert.fail("No exception raised");
1090     } catch (ExecutionException e) {
1091       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1092       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1093       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1094     }
1095   }
1096 
1097   @Test
copyModelTest3()1098   public void copyModelTest3() throws Exception {
1099     CopyModelResponse expectedResponse =
1100         CopyModelResponse.newBuilder()
1101             .setModel(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
1102             .setModelVersionId("modelVersionId-2006125846")
1103             .build();
1104     Operation resultOperation =
1105         Operation.newBuilder()
1106             .setName("copyModelTest")
1107             .setDone(true)
1108             .setResponse(Any.pack(expectedResponse))
1109             .build();
1110     mockModelService.addResponse(resultOperation);
1111 
1112     String parent = "parent-995424086";
1113     ModelName sourceModel = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1114 
1115     CopyModelResponse actualResponse = client.copyModelAsync(parent, sourceModel).get();
1116     Assert.assertEquals(expectedResponse, actualResponse);
1117 
1118     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1119     Assert.assertEquals(1, actualRequests.size());
1120     CopyModelRequest actualRequest = ((CopyModelRequest) actualRequests.get(0));
1121 
1122     Assert.assertEquals(parent, actualRequest.getParent());
1123     Assert.assertEquals(sourceModel.toString(), actualRequest.getSourceModel());
1124     Assert.assertTrue(
1125         channelProvider.isHeaderSent(
1126             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1127             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1128   }
1129 
1130   @Test
copyModelExceptionTest3()1131   public void copyModelExceptionTest3() throws Exception {
1132     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1133     mockModelService.addException(exception);
1134 
1135     try {
1136       String parent = "parent-995424086";
1137       ModelName sourceModel = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1138       client.copyModelAsync(parent, sourceModel).get();
1139       Assert.fail("No exception raised");
1140     } catch (ExecutionException e) {
1141       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1142       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1143       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1144     }
1145   }
1146 
1147   @Test
copyModelTest4()1148   public void copyModelTest4() throws Exception {
1149     CopyModelResponse expectedResponse =
1150         CopyModelResponse.newBuilder()
1151             .setModel(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
1152             .setModelVersionId("modelVersionId-2006125846")
1153             .build();
1154     Operation resultOperation =
1155         Operation.newBuilder()
1156             .setName("copyModelTest")
1157             .setDone(true)
1158             .setResponse(Any.pack(expectedResponse))
1159             .build();
1160     mockModelService.addResponse(resultOperation);
1161 
1162     String parent = "parent-995424086";
1163     String sourceModel = "sourceModel-101418034";
1164 
1165     CopyModelResponse actualResponse = client.copyModelAsync(parent, sourceModel).get();
1166     Assert.assertEquals(expectedResponse, actualResponse);
1167 
1168     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1169     Assert.assertEquals(1, actualRequests.size());
1170     CopyModelRequest actualRequest = ((CopyModelRequest) actualRequests.get(0));
1171 
1172     Assert.assertEquals(parent, actualRequest.getParent());
1173     Assert.assertEquals(sourceModel, actualRequest.getSourceModel());
1174     Assert.assertTrue(
1175         channelProvider.isHeaderSent(
1176             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1177             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1178   }
1179 
1180   @Test
copyModelExceptionTest4()1181   public void copyModelExceptionTest4() throws Exception {
1182     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1183     mockModelService.addException(exception);
1184 
1185     try {
1186       String parent = "parent-995424086";
1187       String sourceModel = "sourceModel-101418034";
1188       client.copyModelAsync(parent, sourceModel).get();
1189       Assert.fail("No exception raised");
1190     } catch (ExecutionException e) {
1191       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1192       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1193       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1194     }
1195   }
1196 
1197   @Test
importModelEvaluationTest()1198   public void importModelEvaluationTest() throws Exception {
1199     ModelEvaluation expectedResponse =
1200         ModelEvaluation.newBuilder()
1201             .setName(
1202                 ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]")
1203                     .toString())
1204             .setDisplayName("displayName1714148973")
1205             .setMetricsSchemaUri("metricsSchemaUri-182209912")
1206             .setMetrics(Value.newBuilder().setBoolValue(true).build())
1207             .setCreateTime(Timestamp.newBuilder().build())
1208             .addAllSliceDimensions(new ArrayList<String>())
1209             .setDataItemSchemaUri("dataItemSchemaUri-154921298")
1210             .setAnnotationSchemaUri("annotationSchemaUri1480032668")
1211             .setModelExplanation(ModelExplanation.newBuilder().build())
1212             .addAllExplanationSpecs(new ArrayList<ModelEvaluation.ModelEvaluationExplanationSpec>())
1213             .setMetadata(Value.newBuilder().setBoolValue(true).build())
1214             .build();
1215     mockModelService.addResponse(expectedResponse);
1216 
1217     ModelName parent = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1218     ModelEvaluation modelEvaluation = ModelEvaluation.newBuilder().build();
1219 
1220     ModelEvaluation actualResponse = client.importModelEvaluation(parent, modelEvaluation);
1221     Assert.assertEquals(expectedResponse, actualResponse);
1222 
1223     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1224     Assert.assertEquals(1, actualRequests.size());
1225     ImportModelEvaluationRequest actualRequest =
1226         ((ImportModelEvaluationRequest) actualRequests.get(0));
1227 
1228     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1229     Assert.assertEquals(modelEvaluation, actualRequest.getModelEvaluation());
1230     Assert.assertTrue(
1231         channelProvider.isHeaderSent(
1232             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1233             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1234   }
1235 
1236   @Test
importModelEvaluationExceptionTest()1237   public void importModelEvaluationExceptionTest() throws Exception {
1238     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1239     mockModelService.addException(exception);
1240 
1241     try {
1242       ModelName parent = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1243       ModelEvaluation modelEvaluation = ModelEvaluation.newBuilder().build();
1244       client.importModelEvaluation(parent, modelEvaluation);
1245       Assert.fail("No exception raised");
1246     } catch (InvalidArgumentException e) {
1247       // Expected exception.
1248     }
1249   }
1250 
1251   @Test
importModelEvaluationTest2()1252   public void importModelEvaluationTest2() throws Exception {
1253     ModelEvaluation expectedResponse =
1254         ModelEvaluation.newBuilder()
1255             .setName(
1256                 ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]")
1257                     .toString())
1258             .setDisplayName("displayName1714148973")
1259             .setMetricsSchemaUri("metricsSchemaUri-182209912")
1260             .setMetrics(Value.newBuilder().setBoolValue(true).build())
1261             .setCreateTime(Timestamp.newBuilder().build())
1262             .addAllSliceDimensions(new ArrayList<String>())
1263             .setDataItemSchemaUri("dataItemSchemaUri-154921298")
1264             .setAnnotationSchemaUri("annotationSchemaUri1480032668")
1265             .setModelExplanation(ModelExplanation.newBuilder().build())
1266             .addAllExplanationSpecs(new ArrayList<ModelEvaluation.ModelEvaluationExplanationSpec>())
1267             .setMetadata(Value.newBuilder().setBoolValue(true).build())
1268             .build();
1269     mockModelService.addResponse(expectedResponse);
1270 
1271     String parent = "parent-995424086";
1272     ModelEvaluation modelEvaluation = ModelEvaluation.newBuilder().build();
1273 
1274     ModelEvaluation actualResponse = client.importModelEvaluation(parent, modelEvaluation);
1275     Assert.assertEquals(expectedResponse, actualResponse);
1276 
1277     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1278     Assert.assertEquals(1, actualRequests.size());
1279     ImportModelEvaluationRequest actualRequest =
1280         ((ImportModelEvaluationRequest) actualRequests.get(0));
1281 
1282     Assert.assertEquals(parent, actualRequest.getParent());
1283     Assert.assertEquals(modelEvaluation, actualRequest.getModelEvaluation());
1284     Assert.assertTrue(
1285         channelProvider.isHeaderSent(
1286             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1287             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1288   }
1289 
1290   @Test
importModelEvaluationExceptionTest2()1291   public void importModelEvaluationExceptionTest2() throws Exception {
1292     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1293     mockModelService.addException(exception);
1294 
1295     try {
1296       String parent = "parent-995424086";
1297       ModelEvaluation modelEvaluation = ModelEvaluation.newBuilder().build();
1298       client.importModelEvaluation(parent, modelEvaluation);
1299       Assert.fail("No exception raised");
1300     } catch (InvalidArgumentException e) {
1301       // Expected exception.
1302     }
1303   }
1304 
1305   @Test
batchImportModelEvaluationSlicesTest()1306   public void batchImportModelEvaluationSlicesTest() throws Exception {
1307     BatchImportModelEvaluationSlicesResponse expectedResponse =
1308         BatchImportModelEvaluationSlicesResponse.newBuilder()
1309             .addAllImportedModelEvaluationSlices(new ArrayList<String>())
1310             .build();
1311     mockModelService.addResponse(expectedResponse);
1312 
1313     ModelEvaluationName parent =
1314         ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]");
1315     List<ModelEvaluationSlice> modelEvaluationSlices = new ArrayList<>();
1316 
1317     BatchImportModelEvaluationSlicesResponse actualResponse =
1318         client.batchImportModelEvaluationSlices(parent, modelEvaluationSlices);
1319     Assert.assertEquals(expectedResponse, actualResponse);
1320 
1321     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1322     Assert.assertEquals(1, actualRequests.size());
1323     BatchImportModelEvaluationSlicesRequest actualRequest =
1324         ((BatchImportModelEvaluationSlicesRequest) actualRequests.get(0));
1325 
1326     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1327     Assert.assertEquals(modelEvaluationSlices, actualRequest.getModelEvaluationSlicesList());
1328     Assert.assertTrue(
1329         channelProvider.isHeaderSent(
1330             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1331             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1332   }
1333 
1334   @Test
batchImportModelEvaluationSlicesExceptionTest()1335   public void batchImportModelEvaluationSlicesExceptionTest() throws Exception {
1336     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1337     mockModelService.addException(exception);
1338 
1339     try {
1340       ModelEvaluationName parent =
1341           ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]");
1342       List<ModelEvaluationSlice> modelEvaluationSlices = new ArrayList<>();
1343       client.batchImportModelEvaluationSlices(parent, modelEvaluationSlices);
1344       Assert.fail("No exception raised");
1345     } catch (InvalidArgumentException e) {
1346       // Expected exception.
1347     }
1348   }
1349 
1350   @Test
batchImportModelEvaluationSlicesTest2()1351   public void batchImportModelEvaluationSlicesTest2() throws Exception {
1352     BatchImportModelEvaluationSlicesResponse expectedResponse =
1353         BatchImportModelEvaluationSlicesResponse.newBuilder()
1354             .addAllImportedModelEvaluationSlices(new ArrayList<String>())
1355             .build();
1356     mockModelService.addResponse(expectedResponse);
1357 
1358     String parent = "parent-995424086";
1359     List<ModelEvaluationSlice> modelEvaluationSlices = new ArrayList<>();
1360 
1361     BatchImportModelEvaluationSlicesResponse actualResponse =
1362         client.batchImportModelEvaluationSlices(parent, modelEvaluationSlices);
1363     Assert.assertEquals(expectedResponse, actualResponse);
1364 
1365     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1366     Assert.assertEquals(1, actualRequests.size());
1367     BatchImportModelEvaluationSlicesRequest actualRequest =
1368         ((BatchImportModelEvaluationSlicesRequest) actualRequests.get(0));
1369 
1370     Assert.assertEquals(parent, actualRequest.getParent());
1371     Assert.assertEquals(modelEvaluationSlices, actualRequest.getModelEvaluationSlicesList());
1372     Assert.assertTrue(
1373         channelProvider.isHeaderSent(
1374             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1375             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1376   }
1377 
1378   @Test
batchImportModelEvaluationSlicesExceptionTest2()1379   public void batchImportModelEvaluationSlicesExceptionTest2() throws Exception {
1380     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1381     mockModelService.addException(exception);
1382 
1383     try {
1384       String parent = "parent-995424086";
1385       List<ModelEvaluationSlice> modelEvaluationSlices = new ArrayList<>();
1386       client.batchImportModelEvaluationSlices(parent, modelEvaluationSlices);
1387       Assert.fail("No exception raised");
1388     } catch (InvalidArgumentException e) {
1389       // Expected exception.
1390     }
1391   }
1392 
1393   @Test
batchImportEvaluatedAnnotationsTest()1394   public void batchImportEvaluatedAnnotationsTest() throws Exception {
1395     BatchImportEvaluatedAnnotationsResponse expectedResponse =
1396         BatchImportEvaluatedAnnotationsResponse.newBuilder()
1397             .setImportedEvaluatedAnnotationsCount(-765638363)
1398             .build();
1399     mockModelService.addResponse(expectedResponse);
1400 
1401     ModelEvaluationSliceName parent =
1402         ModelEvaluationSliceName.of(
1403             "[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]", "[SLICE]");
1404     List<EvaluatedAnnotation> evaluatedAnnotations = new ArrayList<>();
1405 
1406     BatchImportEvaluatedAnnotationsResponse actualResponse =
1407         client.batchImportEvaluatedAnnotations(parent, evaluatedAnnotations);
1408     Assert.assertEquals(expectedResponse, actualResponse);
1409 
1410     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1411     Assert.assertEquals(1, actualRequests.size());
1412     BatchImportEvaluatedAnnotationsRequest actualRequest =
1413         ((BatchImportEvaluatedAnnotationsRequest) actualRequests.get(0));
1414 
1415     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1416     Assert.assertEquals(evaluatedAnnotations, actualRequest.getEvaluatedAnnotationsList());
1417     Assert.assertTrue(
1418         channelProvider.isHeaderSent(
1419             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1420             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1421   }
1422 
1423   @Test
batchImportEvaluatedAnnotationsExceptionTest()1424   public void batchImportEvaluatedAnnotationsExceptionTest() throws Exception {
1425     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1426     mockModelService.addException(exception);
1427 
1428     try {
1429       ModelEvaluationSliceName parent =
1430           ModelEvaluationSliceName.of(
1431               "[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]", "[SLICE]");
1432       List<EvaluatedAnnotation> evaluatedAnnotations = new ArrayList<>();
1433       client.batchImportEvaluatedAnnotations(parent, evaluatedAnnotations);
1434       Assert.fail("No exception raised");
1435     } catch (InvalidArgumentException e) {
1436       // Expected exception.
1437     }
1438   }
1439 
1440   @Test
batchImportEvaluatedAnnotationsTest2()1441   public void batchImportEvaluatedAnnotationsTest2() throws Exception {
1442     BatchImportEvaluatedAnnotationsResponse expectedResponse =
1443         BatchImportEvaluatedAnnotationsResponse.newBuilder()
1444             .setImportedEvaluatedAnnotationsCount(-765638363)
1445             .build();
1446     mockModelService.addResponse(expectedResponse);
1447 
1448     String parent = "parent-995424086";
1449     List<EvaluatedAnnotation> evaluatedAnnotations = new ArrayList<>();
1450 
1451     BatchImportEvaluatedAnnotationsResponse actualResponse =
1452         client.batchImportEvaluatedAnnotations(parent, evaluatedAnnotations);
1453     Assert.assertEquals(expectedResponse, actualResponse);
1454 
1455     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1456     Assert.assertEquals(1, actualRequests.size());
1457     BatchImportEvaluatedAnnotationsRequest actualRequest =
1458         ((BatchImportEvaluatedAnnotationsRequest) actualRequests.get(0));
1459 
1460     Assert.assertEquals(parent, actualRequest.getParent());
1461     Assert.assertEquals(evaluatedAnnotations, actualRequest.getEvaluatedAnnotationsList());
1462     Assert.assertTrue(
1463         channelProvider.isHeaderSent(
1464             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1465             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1466   }
1467 
1468   @Test
batchImportEvaluatedAnnotationsExceptionTest2()1469   public void batchImportEvaluatedAnnotationsExceptionTest2() throws Exception {
1470     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1471     mockModelService.addException(exception);
1472 
1473     try {
1474       String parent = "parent-995424086";
1475       List<EvaluatedAnnotation> evaluatedAnnotations = new ArrayList<>();
1476       client.batchImportEvaluatedAnnotations(parent, evaluatedAnnotations);
1477       Assert.fail("No exception raised");
1478     } catch (InvalidArgumentException e) {
1479       // Expected exception.
1480     }
1481   }
1482 
1483   @Test
getModelEvaluationTest()1484   public void getModelEvaluationTest() throws Exception {
1485     ModelEvaluation expectedResponse =
1486         ModelEvaluation.newBuilder()
1487             .setName(
1488                 ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]")
1489                     .toString())
1490             .setDisplayName("displayName1714148973")
1491             .setMetricsSchemaUri("metricsSchemaUri-182209912")
1492             .setMetrics(Value.newBuilder().setBoolValue(true).build())
1493             .setCreateTime(Timestamp.newBuilder().build())
1494             .addAllSliceDimensions(new ArrayList<String>())
1495             .setDataItemSchemaUri("dataItemSchemaUri-154921298")
1496             .setAnnotationSchemaUri("annotationSchemaUri1480032668")
1497             .setModelExplanation(ModelExplanation.newBuilder().build())
1498             .addAllExplanationSpecs(new ArrayList<ModelEvaluation.ModelEvaluationExplanationSpec>())
1499             .setMetadata(Value.newBuilder().setBoolValue(true).build())
1500             .build();
1501     mockModelService.addResponse(expectedResponse);
1502 
1503     ModelEvaluationName name =
1504         ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]");
1505 
1506     ModelEvaluation actualResponse = client.getModelEvaluation(name);
1507     Assert.assertEquals(expectedResponse, actualResponse);
1508 
1509     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1510     Assert.assertEquals(1, actualRequests.size());
1511     GetModelEvaluationRequest actualRequest = ((GetModelEvaluationRequest) actualRequests.get(0));
1512 
1513     Assert.assertEquals(name.toString(), actualRequest.getName());
1514     Assert.assertTrue(
1515         channelProvider.isHeaderSent(
1516             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1517             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1518   }
1519 
1520   @Test
getModelEvaluationExceptionTest()1521   public void getModelEvaluationExceptionTest() throws Exception {
1522     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1523     mockModelService.addException(exception);
1524 
1525     try {
1526       ModelEvaluationName name =
1527           ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]");
1528       client.getModelEvaluation(name);
1529       Assert.fail("No exception raised");
1530     } catch (InvalidArgumentException e) {
1531       // Expected exception.
1532     }
1533   }
1534 
1535   @Test
getModelEvaluationTest2()1536   public void getModelEvaluationTest2() throws Exception {
1537     ModelEvaluation expectedResponse =
1538         ModelEvaluation.newBuilder()
1539             .setName(
1540                 ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]")
1541                     .toString())
1542             .setDisplayName("displayName1714148973")
1543             .setMetricsSchemaUri("metricsSchemaUri-182209912")
1544             .setMetrics(Value.newBuilder().setBoolValue(true).build())
1545             .setCreateTime(Timestamp.newBuilder().build())
1546             .addAllSliceDimensions(new ArrayList<String>())
1547             .setDataItemSchemaUri("dataItemSchemaUri-154921298")
1548             .setAnnotationSchemaUri("annotationSchemaUri1480032668")
1549             .setModelExplanation(ModelExplanation.newBuilder().build())
1550             .addAllExplanationSpecs(new ArrayList<ModelEvaluation.ModelEvaluationExplanationSpec>())
1551             .setMetadata(Value.newBuilder().setBoolValue(true).build())
1552             .build();
1553     mockModelService.addResponse(expectedResponse);
1554 
1555     String name = "name3373707";
1556 
1557     ModelEvaluation actualResponse = client.getModelEvaluation(name);
1558     Assert.assertEquals(expectedResponse, actualResponse);
1559 
1560     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1561     Assert.assertEquals(1, actualRequests.size());
1562     GetModelEvaluationRequest actualRequest = ((GetModelEvaluationRequest) actualRequests.get(0));
1563 
1564     Assert.assertEquals(name, actualRequest.getName());
1565     Assert.assertTrue(
1566         channelProvider.isHeaderSent(
1567             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1568             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1569   }
1570 
1571   @Test
getModelEvaluationExceptionTest2()1572   public void getModelEvaluationExceptionTest2() throws Exception {
1573     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1574     mockModelService.addException(exception);
1575 
1576     try {
1577       String name = "name3373707";
1578       client.getModelEvaluation(name);
1579       Assert.fail("No exception raised");
1580     } catch (InvalidArgumentException e) {
1581       // Expected exception.
1582     }
1583   }
1584 
1585   @Test
listModelEvaluationsTest()1586   public void listModelEvaluationsTest() throws Exception {
1587     ModelEvaluation responsesElement = ModelEvaluation.newBuilder().build();
1588     ListModelEvaluationsResponse expectedResponse =
1589         ListModelEvaluationsResponse.newBuilder()
1590             .setNextPageToken("")
1591             .addAllModelEvaluations(Arrays.asList(responsesElement))
1592             .build();
1593     mockModelService.addResponse(expectedResponse);
1594 
1595     ModelName parent = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1596 
1597     ListModelEvaluationsPagedResponse pagedListResponse = client.listModelEvaluations(parent);
1598 
1599     List<ModelEvaluation> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1600 
1601     Assert.assertEquals(1, resources.size());
1602     Assert.assertEquals(expectedResponse.getModelEvaluationsList().get(0), resources.get(0));
1603 
1604     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1605     Assert.assertEquals(1, actualRequests.size());
1606     ListModelEvaluationsRequest actualRequest =
1607         ((ListModelEvaluationsRequest) actualRequests.get(0));
1608 
1609     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1610     Assert.assertTrue(
1611         channelProvider.isHeaderSent(
1612             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1613             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1614   }
1615 
1616   @Test
listModelEvaluationsExceptionTest()1617   public void listModelEvaluationsExceptionTest() throws Exception {
1618     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1619     mockModelService.addException(exception);
1620 
1621     try {
1622       ModelName parent = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1623       client.listModelEvaluations(parent);
1624       Assert.fail("No exception raised");
1625     } catch (InvalidArgumentException e) {
1626       // Expected exception.
1627     }
1628   }
1629 
1630   @Test
listModelEvaluationsTest2()1631   public void listModelEvaluationsTest2() throws Exception {
1632     ModelEvaluation responsesElement = ModelEvaluation.newBuilder().build();
1633     ListModelEvaluationsResponse expectedResponse =
1634         ListModelEvaluationsResponse.newBuilder()
1635             .setNextPageToken("")
1636             .addAllModelEvaluations(Arrays.asList(responsesElement))
1637             .build();
1638     mockModelService.addResponse(expectedResponse);
1639 
1640     String parent = "parent-995424086";
1641 
1642     ListModelEvaluationsPagedResponse pagedListResponse = client.listModelEvaluations(parent);
1643 
1644     List<ModelEvaluation> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1645 
1646     Assert.assertEquals(1, resources.size());
1647     Assert.assertEquals(expectedResponse.getModelEvaluationsList().get(0), resources.get(0));
1648 
1649     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1650     Assert.assertEquals(1, actualRequests.size());
1651     ListModelEvaluationsRequest actualRequest =
1652         ((ListModelEvaluationsRequest) actualRequests.get(0));
1653 
1654     Assert.assertEquals(parent, actualRequest.getParent());
1655     Assert.assertTrue(
1656         channelProvider.isHeaderSent(
1657             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1658             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1659   }
1660 
1661   @Test
listModelEvaluationsExceptionTest2()1662   public void listModelEvaluationsExceptionTest2() throws Exception {
1663     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1664     mockModelService.addException(exception);
1665 
1666     try {
1667       String parent = "parent-995424086";
1668       client.listModelEvaluations(parent);
1669       Assert.fail("No exception raised");
1670     } catch (InvalidArgumentException e) {
1671       // Expected exception.
1672     }
1673   }
1674 
1675   @Test
getModelEvaluationSliceTest()1676   public void getModelEvaluationSliceTest() throws Exception {
1677     ModelEvaluationSlice expectedResponse =
1678         ModelEvaluationSlice.newBuilder()
1679             .setName(
1680                 ModelEvaluationSliceName.of(
1681                         "[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]", "[SLICE]")
1682                     .toString())
1683             .setSlice(ModelEvaluationSlice.Slice.newBuilder().build())
1684             .setMetricsSchemaUri("metricsSchemaUri-182209912")
1685             .setMetrics(Value.newBuilder().setBoolValue(true).build())
1686             .setCreateTime(Timestamp.newBuilder().build())
1687             .setModelExplanation(ModelExplanation.newBuilder().build())
1688             .build();
1689     mockModelService.addResponse(expectedResponse);
1690 
1691     ModelEvaluationSliceName name =
1692         ModelEvaluationSliceName.of(
1693             "[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]", "[SLICE]");
1694 
1695     ModelEvaluationSlice actualResponse = client.getModelEvaluationSlice(name);
1696     Assert.assertEquals(expectedResponse, actualResponse);
1697 
1698     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1699     Assert.assertEquals(1, actualRequests.size());
1700     GetModelEvaluationSliceRequest actualRequest =
1701         ((GetModelEvaluationSliceRequest) actualRequests.get(0));
1702 
1703     Assert.assertEquals(name.toString(), actualRequest.getName());
1704     Assert.assertTrue(
1705         channelProvider.isHeaderSent(
1706             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1707             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1708   }
1709 
1710   @Test
getModelEvaluationSliceExceptionTest()1711   public void getModelEvaluationSliceExceptionTest() throws Exception {
1712     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1713     mockModelService.addException(exception);
1714 
1715     try {
1716       ModelEvaluationSliceName name =
1717           ModelEvaluationSliceName.of(
1718               "[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]", "[SLICE]");
1719       client.getModelEvaluationSlice(name);
1720       Assert.fail("No exception raised");
1721     } catch (InvalidArgumentException e) {
1722       // Expected exception.
1723     }
1724   }
1725 
1726   @Test
getModelEvaluationSliceTest2()1727   public void getModelEvaluationSliceTest2() throws Exception {
1728     ModelEvaluationSlice expectedResponse =
1729         ModelEvaluationSlice.newBuilder()
1730             .setName(
1731                 ModelEvaluationSliceName.of(
1732                         "[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]", "[SLICE]")
1733                     .toString())
1734             .setSlice(ModelEvaluationSlice.Slice.newBuilder().build())
1735             .setMetricsSchemaUri("metricsSchemaUri-182209912")
1736             .setMetrics(Value.newBuilder().setBoolValue(true).build())
1737             .setCreateTime(Timestamp.newBuilder().build())
1738             .setModelExplanation(ModelExplanation.newBuilder().build())
1739             .build();
1740     mockModelService.addResponse(expectedResponse);
1741 
1742     String name = "name3373707";
1743 
1744     ModelEvaluationSlice actualResponse = client.getModelEvaluationSlice(name);
1745     Assert.assertEquals(expectedResponse, actualResponse);
1746 
1747     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1748     Assert.assertEquals(1, actualRequests.size());
1749     GetModelEvaluationSliceRequest actualRequest =
1750         ((GetModelEvaluationSliceRequest) actualRequests.get(0));
1751 
1752     Assert.assertEquals(name, actualRequest.getName());
1753     Assert.assertTrue(
1754         channelProvider.isHeaderSent(
1755             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1756             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1757   }
1758 
1759   @Test
getModelEvaluationSliceExceptionTest2()1760   public void getModelEvaluationSliceExceptionTest2() throws Exception {
1761     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1762     mockModelService.addException(exception);
1763 
1764     try {
1765       String name = "name3373707";
1766       client.getModelEvaluationSlice(name);
1767       Assert.fail("No exception raised");
1768     } catch (InvalidArgumentException e) {
1769       // Expected exception.
1770     }
1771   }
1772 
1773   @Test
listModelEvaluationSlicesTest()1774   public void listModelEvaluationSlicesTest() throws Exception {
1775     ModelEvaluationSlice responsesElement = ModelEvaluationSlice.newBuilder().build();
1776     ListModelEvaluationSlicesResponse expectedResponse =
1777         ListModelEvaluationSlicesResponse.newBuilder()
1778             .setNextPageToken("")
1779             .addAllModelEvaluationSlices(Arrays.asList(responsesElement))
1780             .build();
1781     mockModelService.addResponse(expectedResponse);
1782 
1783     ModelEvaluationName parent =
1784         ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]");
1785 
1786     ListModelEvaluationSlicesPagedResponse pagedListResponse =
1787         client.listModelEvaluationSlices(parent);
1788 
1789     List<ModelEvaluationSlice> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1790 
1791     Assert.assertEquals(1, resources.size());
1792     Assert.assertEquals(expectedResponse.getModelEvaluationSlicesList().get(0), resources.get(0));
1793 
1794     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1795     Assert.assertEquals(1, actualRequests.size());
1796     ListModelEvaluationSlicesRequest actualRequest =
1797         ((ListModelEvaluationSlicesRequest) actualRequests.get(0));
1798 
1799     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1800     Assert.assertTrue(
1801         channelProvider.isHeaderSent(
1802             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1803             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1804   }
1805 
1806   @Test
listModelEvaluationSlicesExceptionTest()1807   public void listModelEvaluationSlicesExceptionTest() throws Exception {
1808     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1809     mockModelService.addException(exception);
1810 
1811     try {
1812       ModelEvaluationName parent =
1813           ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]");
1814       client.listModelEvaluationSlices(parent);
1815       Assert.fail("No exception raised");
1816     } catch (InvalidArgumentException e) {
1817       // Expected exception.
1818     }
1819   }
1820 
1821   @Test
listModelEvaluationSlicesTest2()1822   public void listModelEvaluationSlicesTest2() throws Exception {
1823     ModelEvaluationSlice responsesElement = ModelEvaluationSlice.newBuilder().build();
1824     ListModelEvaluationSlicesResponse expectedResponse =
1825         ListModelEvaluationSlicesResponse.newBuilder()
1826             .setNextPageToken("")
1827             .addAllModelEvaluationSlices(Arrays.asList(responsesElement))
1828             .build();
1829     mockModelService.addResponse(expectedResponse);
1830 
1831     String parent = "parent-995424086";
1832 
1833     ListModelEvaluationSlicesPagedResponse pagedListResponse =
1834         client.listModelEvaluationSlices(parent);
1835 
1836     List<ModelEvaluationSlice> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1837 
1838     Assert.assertEquals(1, resources.size());
1839     Assert.assertEquals(expectedResponse.getModelEvaluationSlicesList().get(0), resources.get(0));
1840 
1841     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1842     Assert.assertEquals(1, actualRequests.size());
1843     ListModelEvaluationSlicesRequest actualRequest =
1844         ((ListModelEvaluationSlicesRequest) actualRequests.get(0));
1845 
1846     Assert.assertEquals(parent, actualRequest.getParent());
1847     Assert.assertTrue(
1848         channelProvider.isHeaderSent(
1849             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1850             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1851   }
1852 
1853   @Test
listModelEvaluationSlicesExceptionTest2()1854   public void listModelEvaluationSlicesExceptionTest2() throws Exception {
1855     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1856     mockModelService.addException(exception);
1857 
1858     try {
1859       String parent = "parent-995424086";
1860       client.listModelEvaluationSlices(parent);
1861       Assert.fail("No exception raised");
1862     } catch (InvalidArgumentException e) {
1863       // Expected exception.
1864     }
1865   }
1866 
1867   @Test
listLocationsTest()1868   public void listLocationsTest() throws Exception {
1869     Location responsesElement = Location.newBuilder().build();
1870     ListLocationsResponse expectedResponse =
1871         ListLocationsResponse.newBuilder()
1872             .setNextPageToken("")
1873             .addAllLocations(Arrays.asList(responsesElement))
1874             .build();
1875     mockLocations.addResponse(expectedResponse);
1876 
1877     ListLocationsRequest request =
1878         ListLocationsRequest.newBuilder()
1879             .setName("name3373707")
1880             .setFilter("filter-1274492040")
1881             .setPageSize(883849137)
1882             .setPageToken("pageToken873572522")
1883             .build();
1884 
1885     ListLocationsPagedResponse pagedListResponse = client.listLocations(request);
1886 
1887     List<Location> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1888 
1889     Assert.assertEquals(1, resources.size());
1890     Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0));
1891 
1892     List<AbstractMessage> actualRequests = mockLocations.getRequests();
1893     Assert.assertEquals(1, actualRequests.size());
1894     ListLocationsRequest actualRequest = ((ListLocationsRequest) actualRequests.get(0));
1895 
1896     Assert.assertEquals(request.getName(), actualRequest.getName());
1897     Assert.assertEquals(request.getFilter(), actualRequest.getFilter());
1898     Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize());
1899     Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken());
1900     Assert.assertTrue(
1901         channelProvider.isHeaderSent(
1902             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1903             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1904   }
1905 
1906   @Test
listLocationsExceptionTest()1907   public void listLocationsExceptionTest() throws Exception {
1908     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1909     mockLocations.addException(exception);
1910 
1911     try {
1912       ListLocationsRequest request =
1913           ListLocationsRequest.newBuilder()
1914               .setName("name3373707")
1915               .setFilter("filter-1274492040")
1916               .setPageSize(883849137)
1917               .setPageToken("pageToken873572522")
1918               .build();
1919       client.listLocations(request);
1920       Assert.fail("No exception raised");
1921     } catch (InvalidArgumentException e) {
1922       // Expected exception.
1923     }
1924   }
1925 
1926   @Test
getLocationTest()1927   public void getLocationTest() throws Exception {
1928     Location expectedResponse =
1929         Location.newBuilder()
1930             .setName("name3373707")
1931             .setLocationId("locationId1541836720")
1932             .setDisplayName("displayName1714148973")
1933             .putAllLabels(new HashMap<String, String>())
1934             .setMetadata(Any.newBuilder().build())
1935             .build();
1936     mockLocations.addResponse(expectedResponse);
1937 
1938     GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
1939 
1940     Location actualResponse = client.getLocation(request);
1941     Assert.assertEquals(expectedResponse, actualResponse);
1942 
1943     List<AbstractMessage> actualRequests = mockLocations.getRequests();
1944     Assert.assertEquals(1, actualRequests.size());
1945     GetLocationRequest actualRequest = ((GetLocationRequest) actualRequests.get(0));
1946 
1947     Assert.assertEquals(request.getName(), actualRequest.getName());
1948     Assert.assertTrue(
1949         channelProvider.isHeaderSent(
1950             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1951             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1952   }
1953 
1954   @Test
getLocationExceptionTest()1955   public void getLocationExceptionTest() throws Exception {
1956     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1957     mockLocations.addException(exception);
1958 
1959     try {
1960       GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
1961       client.getLocation(request);
1962       Assert.fail("No exception raised");
1963     } catch (InvalidArgumentException e) {
1964       // Expected exception.
1965     }
1966   }
1967 
1968   @Test
setIamPolicyTest()1969   public void setIamPolicyTest() throws Exception {
1970     Policy expectedResponse =
1971         Policy.newBuilder()
1972             .setVersion(351608024)
1973             .addAllBindings(new ArrayList<Binding>())
1974             .addAllAuditConfigs(new ArrayList<AuditConfig>())
1975             .setEtag(ByteString.EMPTY)
1976             .build();
1977     mockIAMPolicy.addResponse(expectedResponse);
1978 
1979     SetIamPolicyRequest request =
1980         SetIamPolicyRequest.newBuilder()
1981             .setResource(
1982                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
1983                     .toString())
1984             .setPolicy(Policy.newBuilder().build())
1985             .setUpdateMask(FieldMask.newBuilder().build())
1986             .build();
1987 
1988     Policy actualResponse = client.setIamPolicy(request);
1989     Assert.assertEquals(expectedResponse, actualResponse);
1990 
1991     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
1992     Assert.assertEquals(1, actualRequests.size());
1993     SetIamPolicyRequest actualRequest = ((SetIamPolicyRequest) actualRequests.get(0));
1994 
1995     Assert.assertEquals(request.getResource(), actualRequest.getResource());
1996     Assert.assertEquals(request.getPolicy(), actualRequest.getPolicy());
1997     Assert.assertEquals(request.getUpdateMask(), actualRequest.getUpdateMask());
1998     Assert.assertTrue(
1999         channelProvider.isHeaderSent(
2000             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2001             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2002   }
2003 
2004   @Test
setIamPolicyExceptionTest()2005   public void setIamPolicyExceptionTest() throws Exception {
2006     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2007     mockIAMPolicy.addException(exception);
2008 
2009     try {
2010       SetIamPolicyRequest request =
2011           SetIamPolicyRequest.newBuilder()
2012               .setResource(
2013                   EndpointName.ofProjectLocationEndpointName(
2014                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2015                       .toString())
2016               .setPolicy(Policy.newBuilder().build())
2017               .setUpdateMask(FieldMask.newBuilder().build())
2018               .build();
2019       client.setIamPolicy(request);
2020       Assert.fail("No exception raised");
2021     } catch (InvalidArgumentException e) {
2022       // Expected exception.
2023     }
2024   }
2025 
2026   @Test
getIamPolicyTest()2027   public void getIamPolicyTest() throws Exception {
2028     Policy expectedResponse =
2029         Policy.newBuilder()
2030             .setVersion(351608024)
2031             .addAllBindings(new ArrayList<Binding>())
2032             .addAllAuditConfigs(new ArrayList<AuditConfig>())
2033             .setEtag(ByteString.EMPTY)
2034             .build();
2035     mockIAMPolicy.addResponse(expectedResponse);
2036 
2037     GetIamPolicyRequest request =
2038         GetIamPolicyRequest.newBuilder()
2039             .setResource(
2040                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2041                     .toString())
2042             .setOptions(GetPolicyOptions.newBuilder().build())
2043             .build();
2044 
2045     Policy actualResponse = client.getIamPolicy(request);
2046     Assert.assertEquals(expectedResponse, actualResponse);
2047 
2048     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
2049     Assert.assertEquals(1, actualRequests.size());
2050     GetIamPolicyRequest actualRequest = ((GetIamPolicyRequest) actualRequests.get(0));
2051 
2052     Assert.assertEquals(request.getResource(), actualRequest.getResource());
2053     Assert.assertEquals(request.getOptions(), actualRequest.getOptions());
2054     Assert.assertTrue(
2055         channelProvider.isHeaderSent(
2056             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2057             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2058   }
2059 
2060   @Test
getIamPolicyExceptionTest()2061   public void getIamPolicyExceptionTest() throws Exception {
2062     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2063     mockIAMPolicy.addException(exception);
2064 
2065     try {
2066       GetIamPolicyRequest request =
2067           GetIamPolicyRequest.newBuilder()
2068               .setResource(
2069                   EndpointName.ofProjectLocationEndpointName(
2070                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2071                       .toString())
2072               .setOptions(GetPolicyOptions.newBuilder().build())
2073               .build();
2074       client.getIamPolicy(request);
2075       Assert.fail("No exception raised");
2076     } catch (InvalidArgumentException e) {
2077       // Expected exception.
2078     }
2079   }
2080 
2081   @Test
testIamPermissionsTest()2082   public void testIamPermissionsTest() throws Exception {
2083     TestIamPermissionsResponse expectedResponse =
2084         TestIamPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build();
2085     mockIAMPolicy.addResponse(expectedResponse);
2086 
2087     TestIamPermissionsRequest request =
2088         TestIamPermissionsRequest.newBuilder()
2089             .setResource(
2090                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2091                     .toString())
2092             .addAllPermissions(new ArrayList<String>())
2093             .build();
2094 
2095     TestIamPermissionsResponse actualResponse = client.testIamPermissions(request);
2096     Assert.assertEquals(expectedResponse, actualResponse);
2097 
2098     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
2099     Assert.assertEquals(1, actualRequests.size());
2100     TestIamPermissionsRequest actualRequest = ((TestIamPermissionsRequest) actualRequests.get(0));
2101 
2102     Assert.assertEquals(request.getResource(), actualRequest.getResource());
2103     Assert.assertEquals(request.getPermissionsList(), actualRequest.getPermissionsList());
2104     Assert.assertTrue(
2105         channelProvider.isHeaderSent(
2106             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2107             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2108   }
2109 
2110   @Test
testIamPermissionsExceptionTest()2111   public void testIamPermissionsExceptionTest() throws Exception {
2112     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2113     mockIAMPolicy.addException(exception);
2114 
2115     try {
2116       TestIamPermissionsRequest request =
2117           TestIamPermissionsRequest.newBuilder()
2118               .setResource(
2119                   EndpointName.ofProjectLocationEndpointName(
2120                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2121                       .toString())
2122               .addAllPermissions(new ArrayList<String>())
2123               .build();
2124       client.testIamPermissions(request);
2125       Assert.fail("No exception raised");
2126     } catch (InvalidArgumentException e) {
2127       // Expected exception.
2128     }
2129   }
2130 }
2131