• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.cloud.aiplatform.v1beta1;
18 
19 import static com.google.cloud.aiplatform.v1beta1.ModelServiceClient.ListLocationsPagedResponse;
20 import static com.google.cloud.aiplatform.v1beta1.ModelServiceClient.ListModelEvaluationSlicesPagedResponse;
21 import static com.google.cloud.aiplatform.v1beta1.ModelServiceClient.ListModelEvaluationsPagedResponse;
22 import static com.google.cloud.aiplatform.v1beta1.ModelServiceClient.ListModelVersionsPagedResponse;
23 import static com.google.cloud.aiplatform.v1beta1.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
updateExplanationDatasetTest()594   public void updateExplanationDatasetTest() throws Exception {
595     UpdateExplanationDatasetResponse expectedResponse =
596         UpdateExplanationDatasetResponse.newBuilder().build();
597     Operation resultOperation =
598         Operation.newBuilder()
599             .setName("updateExplanationDatasetTest")
600             .setDone(true)
601             .setResponse(Any.pack(expectedResponse))
602             .build();
603     mockModelService.addResponse(resultOperation);
604 
605     ModelName model = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
606 
607     UpdateExplanationDatasetResponse actualResponse =
608         client.updateExplanationDatasetAsync(model).get();
609     Assert.assertEquals(expectedResponse, actualResponse);
610 
611     List<AbstractMessage> actualRequests = mockModelService.getRequests();
612     Assert.assertEquals(1, actualRequests.size());
613     UpdateExplanationDatasetRequest actualRequest =
614         ((UpdateExplanationDatasetRequest) actualRequests.get(0));
615 
616     Assert.assertEquals(model.toString(), actualRequest.getModel());
617     Assert.assertTrue(
618         channelProvider.isHeaderSent(
619             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
620             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
621   }
622 
623   @Test
updateExplanationDatasetExceptionTest()624   public void updateExplanationDatasetExceptionTest() throws Exception {
625     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
626     mockModelService.addException(exception);
627 
628     try {
629       ModelName model = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
630       client.updateExplanationDatasetAsync(model).get();
631       Assert.fail("No exception raised");
632     } catch (ExecutionException e) {
633       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
634       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
635       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
636     }
637   }
638 
639   @Test
updateExplanationDatasetTest2()640   public void updateExplanationDatasetTest2() throws Exception {
641     UpdateExplanationDatasetResponse expectedResponse =
642         UpdateExplanationDatasetResponse.newBuilder().build();
643     Operation resultOperation =
644         Operation.newBuilder()
645             .setName("updateExplanationDatasetTest")
646             .setDone(true)
647             .setResponse(Any.pack(expectedResponse))
648             .build();
649     mockModelService.addResponse(resultOperation);
650 
651     String model = "model104069929";
652 
653     UpdateExplanationDatasetResponse actualResponse =
654         client.updateExplanationDatasetAsync(model).get();
655     Assert.assertEquals(expectedResponse, actualResponse);
656 
657     List<AbstractMessage> actualRequests = mockModelService.getRequests();
658     Assert.assertEquals(1, actualRequests.size());
659     UpdateExplanationDatasetRequest actualRequest =
660         ((UpdateExplanationDatasetRequest) actualRequests.get(0));
661 
662     Assert.assertEquals(model, actualRequest.getModel());
663     Assert.assertTrue(
664         channelProvider.isHeaderSent(
665             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
666             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
667   }
668 
669   @Test
updateExplanationDatasetExceptionTest2()670   public void updateExplanationDatasetExceptionTest2() throws Exception {
671     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
672     mockModelService.addException(exception);
673 
674     try {
675       String model = "model104069929";
676       client.updateExplanationDatasetAsync(model).get();
677       Assert.fail("No exception raised");
678     } catch (ExecutionException e) {
679       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
680       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
681       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
682     }
683   }
684 
685   @Test
deleteModelTest()686   public void deleteModelTest() throws Exception {
687     Empty expectedResponse = Empty.newBuilder().build();
688     Operation resultOperation =
689         Operation.newBuilder()
690             .setName("deleteModelTest")
691             .setDone(true)
692             .setResponse(Any.pack(expectedResponse))
693             .build();
694     mockModelService.addResponse(resultOperation);
695 
696     ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
697 
698     client.deleteModelAsync(name).get();
699 
700     List<AbstractMessage> actualRequests = mockModelService.getRequests();
701     Assert.assertEquals(1, actualRequests.size());
702     DeleteModelRequest actualRequest = ((DeleteModelRequest) actualRequests.get(0));
703 
704     Assert.assertEquals(name.toString(), actualRequest.getName());
705     Assert.assertTrue(
706         channelProvider.isHeaderSent(
707             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
708             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
709   }
710 
711   @Test
deleteModelExceptionTest()712   public void deleteModelExceptionTest() throws Exception {
713     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
714     mockModelService.addException(exception);
715 
716     try {
717       ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
718       client.deleteModelAsync(name).get();
719       Assert.fail("No exception raised");
720     } catch (ExecutionException e) {
721       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
722       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
723       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
724     }
725   }
726 
727   @Test
deleteModelTest2()728   public void deleteModelTest2() throws Exception {
729     Empty expectedResponse = Empty.newBuilder().build();
730     Operation resultOperation =
731         Operation.newBuilder()
732             .setName("deleteModelTest")
733             .setDone(true)
734             .setResponse(Any.pack(expectedResponse))
735             .build();
736     mockModelService.addResponse(resultOperation);
737 
738     String name = "name3373707";
739 
740     client.deleteModelAsync(name).get();
741 
742     List<AbstractMessage> actualRequests = mockModelService.getRequests();
743     Assert.assertEquals(1, actualRequests.size());
744     DeleteModelRequest actualRequest = ((DeleteModelRequest) actualRequests.get(0));
745 
746     Assert.assertEquals(name, actualRequest.getName());
747     Assert.assertTrue(
748         channelProvider.isHeaderSent(
749             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
750             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
751   }
752 
753   @Test
deleteModelExceptionTest2()754   public void deleteModelExceptionTest2() throws Exception {
755     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
756     mockModelService.addException(exception);
757 
758     try {
759       String name = "name3373707";
760       client.deleteModelAsync(name).get();
761       Assert.fail("No exception raised");
762     } catch (ExecutionException e) {
763       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
764       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
765       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
766     }
767   }
768 
769   @Test
deleteModelVersionTest()770   public void deleteModelVersionTest() throws Exception {
771     Empty expectedResponse = Empty.newBuilder().build();
772     Operation resultOperation =
773         Operation.newBuilder()
774             .setName("deleteModelVersionTest")
775             .setDone(true)
776             .setResponse(Any.pack(expectedResponse))
777             .build();
778     mockModelService.addResponse(resultOperation);
779 
780     ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
781 
782     client.deleteModelVersionAsync(name).get();
783 
784     List<AbstractMessage> actualRequests = mockModelService.getRequests();
785     Assert.assertEquals(1, actualRequests.size());
786     DeleteModelVersionRequest actualRequest = ((DeleteModelVersionRequest) actualRequests.get(0));
787 
788     Assert.assertEquals(name.toString(), actualRequest.getName());
789     Assert.assertTrue(
790         channelProvider.isHeaderSent(
791             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
792             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
793   }
794 
795   @Test
deleteModelVersionExceptionTest()796   public void deleteModelVersionExceptionTest() throws Exception {
797     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
798     mockModelService.addException(exception);
799 
800     try {
801       ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
802       client.deleteModelVersionAsync(name).get();
803       Assert.fail("No exception raised");
804     } catch (ExecutionException e) {
805       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
806       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
807       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
808     }
809   }
810 
811   @Test
deleteModelVersionTest2()812   public void deleteModelVersionTest2() throws Exception {
813     Empty expectedResponse = Empty.newBuilder().build();
814     Operation resultOperation =
815         Operation.newBuilder()
816             .setName("deleteModelVersionTest")
817             .setDone(true)
818             .setResponse(Any.pack(expectedResponse))
819             .build();
820     mockModelService.addResponse(resultOperation);
821 
822     String name = "name3373707";
823 
824     client.deleteModelVersionAsync(name).get();
825 
826     List<AbstractMessage> actualRequests = mockModelService.getRequests();
827     Assert.assertEquals(1, actualRequests.size());
828     DeleteModelVersionRequest actualRequest = ((DeleteModelVersionRequest) actualRequests.get(0));
829 
830     Assert.assertEquals(name, actualRequest.getName());
831     Assert.assertTrue(
832         channelProvider.isHeaderSent(
833             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
834             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
835   }
836 
837   @Test
deleteModelVersionExceptionTest2()838   public void deleteModelVersionExceptionTest2() throws Exception {
839     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
840     mockModelService.addException(exception);
841 
842     try {
843       String name = "name3373707";
844       client.deleteModelVersionAsync(name).get();
845       Assert.fail("No exception raised");
846     } catch (ExecutionException e) {
847       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
848       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
849       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
850     }
851   }
852 
853   @Test
mergeVersionAliasesTest()854   public void mergeVersionAliasesTest() throws Exception {
855     Model expectedResponse =
856         Model.newBuilder()
857             .setName(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
858             .setVersionId("versionId-1407102957")
859             .addAllVersionAliases(new ArrayList<String>())
860             .setVersionCreateTime(Timestamp.newBuilder().build())
861             .setVersionUpdateTime(Timestamp.newBuilder().build())
862             .setDisplayName("displayName1714148973")
863             .setDescription("description-1724546052")
864             .setVersionDescription("versionDescription-1736173564")
865             .setPredictSchemata(PredictSchemata.newBuilder().build())
866             .setMetadataSchemaUri("metadataSchemaUri781971868")
867             .setMetadata(Value.newBuilder().setBoolValue(true).build())
868             .addAllSupportedExportFormats(new ArrayList<Model.ExportFormat>())
869             .setTrainingPipeline(
870                 TrainingPipelineName.of("[PROJECT]", "[LOCATION]", "[TRAINING_PIPELINE]")
871                     .toString())
872             .setContainerSpec(ModelContainerSpec.newBuilder().build())
873             .setArtifactUri("artifactUri-1130062278")
874             .addAllSupportedDeploymentResourcesTypes(new ArrayList<Model.DeploymentResourcesType>())
875             .addAllSupportedInputStorageFormats(new ArrayList<String>())
876             .addAllSupportedOutputStorageFormats(new ArrayList<String>())
877             .setCreateTime(Timestamp.newBuilder().build())
878             .setUpdateTime(Timestamp.newBuilder().build())
879             .addAllDeployedModels(new ArrayList<DeployedModelRef>())
880             .setExplanationSpec(ExplanationSpec.newBuilder().build())
881             .setEtag("etag3123477")
882             .putAllLabels(new HashMap<String, String>())
883             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
884             .setModelSourceInfo(ModelSourceInfo.newBuilder().build())
885             .setOriginalModelInfo(Model.OriginalModelInfo.newBuilder().build())
886             .setMetadataArtifact("metadataArtifact1018119713")
887             .build();
888     mockModelService.addResponse(expectedResponse);
889 
890     ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
891     List<String> versionAliases = new ArrayList<>();
892 
893     Model actualResponse = client.mergeVersionAliases(name, versionAliases);
894     Assert.assertEquals(expectedResponse, actualResponse);
895 
896     List<AbstractMessage> actualRequests = mockModelService.getRequests();
897     Assert.assertEquals(1, actualRequests.size());
898     MergeVersionAliasesRequest actualRequest = ((MergeVersionAliasesRequest) actualRequests.get(0));
899 
900     Assert.assertEquals(name.toString(), actualRequest.getName());
901     Assert.assertEquals(versionAliases, actualRequest.getVersionAliasesList());
902     Assert.assertTrue(
903         channelProvider.isHeaderSent(
904             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
905             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
906   }
907 
908   @Test
mergeVersionAliasesExceptionTest()909   public void mergeVersionAliasesExceptionTest() throws Exception {
910     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
911     mockModelService.addException(exception);
912 
913     try {
914       ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
915       List<String> versionAliases = new ArrayList<>();
916       client.mergeVersionAliases(name, versionAliases);
917       Assert.fail("No exception raised");
918     } catch (InvalidArgumentException e) {
919       // Expected exception.
920     }
921   }
922 
923   @Test
mergeVersionAliasesTest2()924   public void mergeVersionAliasesTest2() throws Exception {
925     Model expectedResponse =
926         Model.newBuilder()
927             .setName(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
928             .setVersionId("versionId-1407102957")
929             .addAllVersionAliases(new ArrayList<String>())
930             .setVersionCreateTime(Timestamp.newBuilder().build())
931             .setVersionUpdateTime(Timestamp.newBuilder().build())
932             .setDisplayName("displayName1714148973")
933             .setDescription("description-1724546052")
934             .setVersionDescription("versionDescription-1736173564")
935             .setPredictSchemata(PredictSchemata.newBuilder().build())
936             .setMetadataSchemaUri("metadataSchemaUri781971868")
937             .setMetadata(Value.newBuilder().setBoolValue(true).build())
938             .addAllSupportedExportFormats(new ArrayList<Model.ExportFormat>())
939             .setTrainingPipeline(
940                 TrainingPipelineName.of("[PROJECT]", "[LOCATION]", "[TRAINING_PIPELINE]")
941                     .toString())
942             .setContainerSpec(ModelContainerSpec.newBuilder().build())
943             .setArtifactUri("artifactUri-1130062278")
944             .addAllSupportedDeploymentResourcesTypes(new ArrayList<Model.DeploymentResourcesType>())
945             .addAllSupportedInputStorageFormats(new ArrayList<String>())
946             .addAllSupportedOutputStorageFormats(new ArrayList<String>())
947             .setCreateTime(Timestamp.newBuilder().build())
948             .setUpdateTime(Timestamp.newBuilder().build())
949             .addAllDeployedModels(new ArrayList<DeployedModelRef>())
950             .setExplanationSpec(ExplanationSpec.newBuilder().build())
951             .setEtag("etag3123477")
952             .putAllLabels(new HashMap<String, String>())
953             .setEncryptionSpec(EncryptionSpec.newBuilder().build())
954             .setModelSourceInfo(ModelSourceInfo.newBuilder().build())
955             .setOriginalModelInfo(Model.OriginalModelInfo.newBuilder().build())
956             .setMetadataArtifact("metadataArtifact1018119713")
957             .build();
958     mockModelService.addResponse(expectedResponse);
959 
960     String name = "name3373707";
961     List<String> versionAliases = new ArrayList<>();
962 
963     Model actualResponse = client.mergeVersionAliases(name, versionAliases);
964     Assert.assertEquals(expectedResponse, actualResponse);
965 
966     List<AbstractMessage> actualRequests = mockModelService.getRequests();
967     Assert.assertEquals(1, actualRequests.size());
968     MergeVersionAliasesRequest actualRequest = ((MergeVersionAliasesRequest) actualRequests.get(0));
969 
970     Assert.assertEquals(name, actualRequest.getName());
971     Assert.assertEquals(versionAliases, actualRequest.getVersionAliasesList());
972     Assert.assertTrue(
973         channelProvider.isHeaderSent(
974             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
975             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
976   }
977 
978   @Test
mergeVersionAliasesExceptionTest2()979   public void mergeVersionAliasesExceptionTest2() throws Exception {
980     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
981     mockModelService.addException(exception);
982 
983     try {
984       String name = "name3373707";
985       List<String> versionAliases = new ArrayList<>();
986       client.mergeVersionAliases(name, versionAliases);
987       Assert.fail("No exception raised");
988     } catch (InvalidArgumentException e) {
989       // Expected exception.
990     }
991   }
992 
993   @Test
exportModelTest()994   public void exportModelTest() throws Exception {
995     ExportModelResponse expectedResponse = ExportModelResponse.newBuilder().build();
996     Operation resultOperation =
997         Operation.newBuilder()
998             .setName("exportModelTest")
999             .setDone(true)
1000             .setResponse(Any.pack(expectedResponse))
1001             .build();
1002     mockModelService.addResponse(resultOperation);
1003 
1004     ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1005     ExportModelRequest.OutputConfig outputConfig =
1006         ExportModelRequest.OutputConfig.newBuilder().build();
1007 
1008     ExportModelResponse actualResponse = client.exportModelAsync(name, outputConfig).get();
1009     Assert.assertEquals(expectedResponse, actualResponse);
1010 
1011     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1012     Assert.assertEquals(1, actualRequests.size());
1013     ExportModelRequest actualRequest = ((ExportModelRequest) actualRequests.get(0));
1014 
1015     Assert.assertEquals(name.toString(), actualRequest.getName());
1016     Assert.assertEquals(outputConfig, actualRequest.getOutputConfig());
1017     Assert.assertTrue(
1018         channelProvider.isHeaderSent(
1019             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1020             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1021   }
1022 
1023   @Test
exportModelExceptionTest()1024   public void exportModelExceptionTest() throws Exception {
1025     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1026     mockModelService.addException(exception);
1027 
1028     try {
1029       ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1030       ExportModelRequest.OutputConfig outputConfig =
1031           ExportModelRequest.OutputConfig.newBuilder().build();
1032       client.exportModelAsync(name, outputConfig).get();
1033       Assert.fail("No exception raised");
1034     } catch (ExecutionException e) {
1035       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1036       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1037       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1038     }
1039   }
1040 
1041   @Test
exportModelTest2()1042   public void exportModelTest2() throws Exception {
1043     ExportModelResponse expectedResponse = ExportModelResponse.newBuilder().build();
1044     Operation resultOperation =
1045         Operation.newBuilder()
1046             .setName("exportModelTest")
1047             .setDone(true)
1048             .setResponse(Any.pack(expectedResponse))
1049             .build();
1050     mockModelService.addResponse(resultOperation);
1051 
1052     String name = "name3373707";
1053     ExportModelRequest.OutputConfig outputConfig =
1054         ExportModelRequest.OutputConfig.newBuilder().build();
1055 
1056     ExportModelResponse actualResponse = client.exportModelAsync(name, outputConfig).get();
1057     Assert.assertEquals(expectedResponse, actualResponse);
1058 
1059     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1060     Assert.assertEquals(1, actualRequests.size());
1061     ExportModelRequest actualRequest = ((ExportModelRequest) actualRequests.get(0));
1062 
1063     Assert.assertEquals(name, actualRequest.getName());
1064     Assert.assertEquals(outputConfig, actualRequest.getOutputConfig());
1065     Assert.assertTrue(
1066         channelProvider.isHeaderSent(
1067             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1068             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1069   }
1070 
1071   @Test
exportModelExceptionTest2()1072   public void exportModelExceptionTest2() throws Exception {
1073     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1074     mockModelService.addException(exception);
1075 
1076     try {
1077       String name = "name3373707";
1078       ExportModelRequest.OutputConfig outputConfig =
1079           ExportModelRequest.OutputConfig.newBuilder().build();
1080       client.exportModelAsync(name, outputConfig).get();
1081       Assert.fail("No exception raised");
1082     } catch (ExecutionException e) {
1083       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1084       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1085       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1086     }
1087   }
1088 
1089   @Test
copyModelTest()1090   public void copyModelTest() throws Exception {
1091     CopyModelResponse expectedResponse =
1092         CopyModelResponse.newBuilder()
1093             .setModel(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
1094             .setModelVersionId("modelVersionId-2006125846")
1095             .build();
1096     Operation resultOperation =
1097         Operation.newBuilder()
1098             .setName("copyModelTest")
1099             .setDone(true)
1100             .setResponse(Any.pack(expectedResponse))
1101             .build();
1102     mockModelService.addResponse(resultOperation);
1103 
1104     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
1105     ModelName sourceModel = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1106 
1107     CopyModelResponse actualResponse = client.copyModelAsync(parent, sourceModel).get();
1108     Assert.assertEquals(expectedResponse, actualResponse);
1109 
1110     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1111     Assert.assertEquals(1, actualRequests.size());
1112     CopyModelRequest actualRequest = ((CopyModelRequest) actualRequests.get(0));
1113 
1114     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1115     Assert.assertEquals(sourceModel.toString(), actualRequest.getSourceModel());
1116     Assert.assertTrue(
1117         channelProvider.isHeaderSent(
1118             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1119             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1120   }
1121 
1122   @Test
copyModelExceptionTest()1123   public void copyModelExceptionTest() throws Exception {
1124     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1125     mockModelService.addException(exception);
1126 
1127     try {
1128       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
1129       ModelName sourceModel = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1130       client.copyModelAsync(parent, sourceModel).get();
1131       Assert.fail("No exception raised");
1132     } catch (ExecutionException e) {
1133       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1134       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1135       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1136     }
1137   }
1138 
1139   @Test
copyModelTest2()1140   public void copyModelTest2() throws Exception {
1141     CopyModelResponse expectedResponse =
1142         CopyModelResponse.newBuilder()
1143             .setModel(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
1144             .setModelVersionId("modelVersionId-2006125846")
1145             .build();
1146     Operation resultOperation =
1147         Operation.newBuilder()
1148             .setName("copyModelTest")
1149             .setDone(true)
1150             .setResponse(Any.pack(expectedResponse))
1151             .build();
1152     mockModelService.addResponse(resultOperation);
1153 
1154     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
1155     String sourceModel = "sourceModel-101418034";
1156 
1157     CopyModelResponse actualResponse = client.copyModelAsync(parent, sourceModel).get();
1158     Assert.assertEquals(expectedResponse, actualResponse);
1159 
1160     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1161     Assert.assertEquals(1, actualRequests.size());
1162     CopyModelRequest actualRequest = ((CopyModelRequest) actualRequests.get(0));
1163 
1164     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1165     Assert.assertEquals(sourceModel, actualRequest.getSourceModel());
1166     Assert.assertTrue(
1167         channelProvider.isHeaderSent(
1168             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1169             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1170   }
1171 
1172   @Test
copyModelExceptionTest2()1173   public void copyModelExceptionTest2() throws Exception {
1174     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1175     mockModelService.addException(exception);
1176 
1177     try {
1178       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
1179       String sourceModel = "sourceModel-101418034";
1180       client.copyModelAsync(parent, sourceModel).get();
1181       Assert.fail("No exception raised");
1182     } catch (ExecutionException e) {
1183       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1184       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1185       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1186     }
1187   }
1188 
1189   @Test
copyModelTest3()1190   public void copyModelTest3() throws Exception {
1191     CopyModelResponse expectedResponse =
1192         CopyModelResponse.newBuilder()
1193             .setModel(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
1194             .setModelVersionId("modelVersionId-2006125846")
1195             .build();
1196     Operation resultOperation =
1197         Operation.newBuilder()
1198             .setName("copyModelTest")
1199             .setDone(true)
1200             .setResponse(Any.pack(expectedResponse))
1201             .build();
1202     mockModelService.addResponse(resultOperation);
1203 
1204     String parent = "parent-995424086";
1205     ModelName sourceModel = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1206 
1207     CopyModelResponse actualResponse = client.copyModelAsync(parent, sourceModel).get();
1208     Assert.assertEquals(expectedResponse, actualResponse);
1209 
1210     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1211     Assert.assertEquals(1, actualRequests.size());
1212     CopyModelRequest actualRequest = ((CopyModelRequest) actualRequests.get(0));
1213 
1214     Assert.assertEquals(parent, actualRequest.getParent());
1215     Assert.assertEquals(sourceModel.toString(), actualRequest.getSourceModel());
1216     Assert.assertTrue(
1217         channelProvider.isHeaderSent(
1218             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1219             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1220   }
1221 
1222   @Test
copyModelExceptionTest3()1223   public void copyModelExceptionTest3() throws Exception {
1224     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1225     mockModelService.addException(exception);
1226 
1227     try {
1228       String parent = "parent-995424086";
1229       ModelName sourceModel = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1230       client.copyModelAsync(parent, sourceModel).get();
1231       Assert.fail("No exception raised");
1232     } catch (ExecutionException e) {
1233       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1234       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1235       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1236     }
1237   }
1238 
1239   @Test
copyModelTest4()1240   public void copyModelTest4() throws Exception {
1241     CopyModelResponse expectedResponse =
1242         CopyModelResponse.newBuilder()
1243             .setModel(ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]").toString())
1244             .setModelVersionId("modelVersionId-2006125846")
1245             .build();
1246     Operation resultOperation =
1247         Operation.newBuilder()
1248             .setName("copyModelTest")
1249             .setDone(true)
1250             .setResponse(Any.pack(expectedResponse))
1251             .build();
1252     mockModelService.addResponse(resultOperation);
1253 
1254     String parent = "parent-995424086";
1255     String sourceModel = "sourceModel-101418034";
1256 
1257     CopyModelResponse actualResponse = client.copyModelAsync(parent, sourceModel).get();
1258     Assert.assertEquals(expectedResponse, actualResponse);
1259 
1260     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1261     Assert.assertEquals(1, actualRequests.size());
1262     CopyModelRequest actualRequest = ((CopyModelRequest) actualRequests.get(0));
1263 
1264     Assert.assertEquals(parent, actualRequest.getParent());
1265     Assert.assertEquals(sourceModel, actualRequest.getSourceModel());
1266     Assert.assertTrue(
1267         channelProvider.isHeaderSent(
1268             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1269             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1270   }
1271 
1272   @Test
copyModelExceptionTest4()1273   public void copyModelExceptionTest4() throws Exception {
1274     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1275     mockModelService.addException(exception);
1276 
1277     try {
1278       String parent = "parent-995424086";
1279       String sourceModel = "sourceModel-101418034";
1280       client.copyModelAsync(parent, sourceModel).get();
1281       Assert.fail("No exception raised");
1282     } catch (ExecutionException e) {
1283       Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
1284       InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause());
1285       Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
1286     }
1287   }
1288 
1289   @Test
importModelEvaluationTest()1290   public void importModelEvaluationTest() throws Exception {
1291     ModelEvaluation expectedResponse =
1292         ModelEvaluation.newBuilder()
1293             .setName(
1294                 ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]")
1295                     .toString())
1296             .setDisplayName("displayName1714148973")
1297             .setMetricsSchemaUri("metricsSchemaUri-182209912")
1298             .setMetrics(Value.newBuilder().setBoolValue(true).build())
1299             .setCreateTime(Timestamp.newBuilder().build())
1300             .addAllSliceDimensions(new ArrayList<String>())
1301             .setModelExplanation(ModelExplanation.newBuilder().build())
1302             .addAllExplanationSpecs(new ArrayList<ModelEvaluation.ModelEvaluationExplanationSpec>())
1303             .setMetadata(Value.newBuilder().setBoolValue(true).build())
1304             .build();
1305     mockModelService.addResponse(expectedResponse);
1306 
1307     ModelName parent = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1308     ModelEvaluation modelEvaluation = ModelEvaluation.newBuilder().build();
1309 
1310     ModelEvaluation actualResponse = client.importModelEvaluation(parent, modelEvaluation);
1311     Assert.assertEquals(expectedResponse, actualResponse);
1312 
1313     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1314     Assert.assertEquals(1, actualRequests.size());
1315     ImportModelEvaluationRequest actualRequest =
1316         ((ImportModelEvaluationRequest) actualRequests.get(0));
1317 
1318     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1319     Assert.assertEquals(modelEvaluation, actualRequest.getModelEvaluation());
1320     Assert.assertTrue(
1321         channelProvider.isHeaderSent(
1322             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1323             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1324   }
1325 
1326   @Test
importModelEvaluationExceptionTest()1327   public void importModelEvaluationExceptionTest() throws Exception {
1328     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1329     mockModelService.addException(exception);
1330 
1331     try {
1332       ModelName parent = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1333       ModelEvaluation modelEvaluation = ModelEvaluation.newBuilder().build();
1334       client.importModelEvaluation(parent, modelEvaluation);
1335       Assert.fail("No exception raised");
1336     } catch (InvalidArgumentException e) {
1337       // Expected exception.
1338     }
1339   }
1340 
1341   @Test
importModelEvaluationTest2()1342   public void importModelEvaluationTest2() throws Exception {
1343     ModelEvaluation expectedResponse =
1344         ModelEvaluation.newBuilder()
1345             .setName(
1346                 ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]")
1347                     .toString())
1348             .setDisplayName("displayName1714148973")
1349             .setMetricsSchemaUri("metricsSchemaUri-182209912")
1350             .setMetrics(Value.newBuilder().setBoolValue(true).build())
1351             .setCreateTime(Timestamp.newBuilder().build())
1352             .addAllSliceDimensions(new ArrayList<String>())
1353             .setModelExplanation(ModelExplanation.newBuilder().build())
1354             .addAllExplanationSpecs(new ArrayList<ModelEvaluation.ModelEvaluationExplanationSpec>())
1355             .setMetadata(Value.newBuilder().setBoolValue(true).build())
1356             .build();
1357     mockModelService.addResponse(expectedResponse);
1358 
1359     String parent = "parent-995424086";
1360     ModelEvaluation modelEvaluation = ModelEvaluation.newBuilder().build();
1361 
1362     ModelEvaluation actualResponse = client.importModelEvaluation(parent, modelEvaluation);
1363     Assert.assertEquals(expectedResponse, actualResponse);
1364 
1365     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1366     Assert.assertEquals(1, actualRequests.size());
1367     ImportModelEvaluationRequest actualRequest =
1368         ((ImportModelEvaluationRequest) actualRequests.get(0));
1369 
1370     Assert.assertEquals(parent, actualRequest.getParent());
1371     Assert.assertEquals(modelEvaluation, actualRequest.getModelEvaluation());
1372     Assert.assertTrue(
1373         channelProvider.isHeaderSent(
1374             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1375             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1376   }
1377 
1378   @Test
importModelEvaluationExceptionTest2()1379   public void importModelEvaluationExceptionTest2() 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       ModelEvaluation modelEvaluation = ModelEvaluation.newBuilder().build();
1386       client.importModelEvaluation(parent, modelEvaluation);
1387       Assert.fail("No exception raised");
1388     } catch (InvalidArgumentException e) {
1389       // Expected exception.
1390     }
1391   }
1392 
1393   @Test
batchImportModelEvaluationSlicesTest()1394   public void batchImportModelEvaluationSlicesTest() throws Exception {
1395     BatchImportModelEvaluationSlicesResponse expectedResponse =
1396         BatchImportModelEvaluationSlicesResponse.newBuilder()
1397             .addAllImportedModelEvaluationSlices(new ArrayList<String>())
1398             .build();
1399     mockModelService.addResponse(expectedResponse);
1400 
1401     ModelEvaluationName parent =
1402         ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]");
1403     List<ModelEvaluationSlice> modelEvaluationSlices = new ArrayList<>();
1404 
1405     BatchImportModelEvaluationSlicesResponse actualResponse =
1406         client.batchImportModelEvaluationSlices(parent, modelEvaluationSlices);
1407     Assert.assertEquals(expectedResponse, actualResponse);
1408 
1409     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1410     Assert.assertEquals(1, actualRequests.size());
1411     BatchImportModelEvaluationSlicesRequest actualRequest =
1412         ((BatchImportModelEvaluationSlicesRequest) actualRequests.get(0));
1413 
1414     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1415     Assert.assertEquals(modelEvaluationSlices, actualRequest.getModelEvaluationSlicesList());
1416     Assert.assertTrue(
1417         channelProvider.isHeaderSent(
1418             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1419             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1420   }
1421 
1422   @Test
batchImportModelEvaluationSlicesExceptionTest()1423   public void batchImportModelEvaluationSlicesExceptionTest() throws Exception {
1424     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1425     mockModelService.addException(exception);
1426 
1427     try {
1428       ModelEvaluationName parent =
1429           ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]");
1430       List<ModelEvaluationSlice> modelEvaluationSlices = new ArrayList<>();
1431       client.batchImportModelEvaluationSlices(parent, modelEvaluationSlices);
1432       Assert.fail("No exception raised");
1433     } catch (InvalidArgumentException e) {
1434       // Expected exception.
1435     }
1436   }
1437 
1438   @Test
batchImportModelEvaluationSlicesTest2()1439   public void batchImportModelEvaluationSlicesTest2() throws Exception {
1440     BatchImportModelEvaluationSlicesResponse expectedResponse =
1441         BatchImportModelEvaluationSlicesResponse.newBuilder()
1442             .addAllImportedModelEvaluationSlices(new ArrayList<String>())
1443             .build();
1444     mockModelService.addResponse(expectedResponse);
1445 
1446     String parent = "parent-995424086";
1447     List<ModelEvaluationSlice> modelEvaluationSlices = new ArrayList<>();
1448 
1449     BatchImportModelEvaluationSlicesResponse actualResponse =
1450         client.batchImportModelEvaluationSlices(parent, modelEvaluationSlices);
1451     Assert.assertEquals(expectedResponse, actualResponse);
1452 
1453     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1454     Assert.assertEquals(1, actualRequests.size());
1455     BatchImportModelEvaluationSlicesRequest actualRequest =
1456         ((BatchImportModelEvaluationSlicesRequest) actualRequests.get(0));
1457 
1458     Assert.assertEquals(parent, actualRequest.getParent());
1459     Assert.assertEquals(modelEvaluationSlices, actualRequest.getModelEvaluationSlicesList());
1460     Assert.assertTrue(
1461         channelProvider.isHeaderSent(
1462             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1463             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1464   }
1465 
1466   @Test
batchImportModelEvaluationSlicesExceptionTest2()1467   public void batchImportModelEvaluationSlicesExceptionTest2() throws Exception {
1468     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1469     mockModelService.addException(exception);
1470 
1471     try {
1472       String parent = "parent-995424086";
1473       List<ModelEvaluationSlice> modelEvaluationSlices = new ArrayList<>();
1474       client.batchImportModelEvaluationSlices(parent, modelEvaluationSlices);
1475       Assert.fail("No exception raised");
1476     } catch (InvalidArgumentException e) {
1477       // Expected exception.
1478     }
1479   }
1480 
1481   @Test
batchImportEvaluatedAnnotationsTest()1482   public void batchImportEvaluatedAnnotationsTest() throws Exception {
1483     BatchImportEvaluatedAnnotationsResponse expectedResponse =
1484         BatchImportEvaluatedAnnotationsResponse.newBuilder()
1485             .setImportedEvaluatedAnnotationsCount(-765638363)
1486             .build();
1487     mockModelService.addResponse(expectedResponse);
1488 
1489     ModelEvaluationSliceName parent =
1490         ModelEvaluationSliceName.of(
1491             "[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]", "[SLICE]");
1492     List<EvaluatedAnnotation> evaluatedAnnotations = new ArrayList<>();
1493 
1494     BatchImportEvaluatedAnnotationsResponse actualResponse =
1495         client.batchImportEvaluatedAnnotations(parent, evaluatedAnnotations);
1496     Assert.assertEquals(expectedResponse, actualResponse);
1497 
1498     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1499     Assert.assertEquals(1, actualRequests.size());
1500     BatchImportEvaluatedAnnotationsRequest actualRequest =
1501         ((BatchImportEvaluatedAnnotationsRequest) actualRequests.get(0));
1502 
1503     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1504     Assert.assertEquals(evaluatedAnnotations, actualRequest.getEvaluatedAnnotationsList());
1505     Assert.assertTrue(
1506         channelProvider.isHeaderSent(
1507             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1508             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1509   }
1510 
1511   @Test
batchImportEvaluatedAnnotationsExceptionTest()1512   public void batchImportEvaluatedAnnotationsExceptionTest() throws Exception {
1513     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1514     mockModelService.addException(exception);
1515 
1516     try {
1517       ModelEvaluationSliceName parent =
1518           ModelEvaluationSliceName.of(
1519               "[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]", "[SLICE]");
1520       List<EvaluatedAnnotation> evaluatedAnnotations = new ArrayList<>();
1521       client.batchImportEvaluatedAnnotations(parent, evaluatedAnnotations);
1522       Assert.fail("No exception raised");
1523     } catch (InvalidArgumentException e) {
1524       // Expected exception.
1525     }
1526   }
1527 
1528   @Test
batchImportEvaluatedAnnotationsTest2()1529   public void batchImportEvaluatedAnnotationsTest2() throws Exception {
1530     BatchImportEvaluatedAnnotationsResponse expectedResponse =
1531         BatchImportEvaluatedAnnotationsResponse.newBuilder()
1532             .setImportedEvaluatedAnnotationsCount(-765638363)
1533             .build();
1534     mockModelService.addResponse(expectedResponse);
1535 
1536     String parent = "parent-995424086";
1537     List<EvaluatedAnnotation> evaluatedAnnotations = new ArrayList<>();
1538 
1539     BatchImportEvaluatedAnnotationsResponse actualResponse =
1540         client.batchImportEvaluatedAnnotations(parent, evaluatedAnnotations);
1541     Assert.assertEquals(expectedResponse, actualResponse);
1542 
1543     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1544     Assert.assertEquals(1, actualRequests.size());
1545     BatchImportEvaluatedAnnotationsRequest actualRequest =
1546         ((BatchImportEvaluatedAnnotationsRequest) actualRequests.get(0));
1547 
1548     Assert.assertEquals(parent, actualRequest.getParent());
1549     Assert.assertEquals(evaluatedAnnotations, actualRequest.getEvaluatedAnnotationsList());
1550     Assert.assertTrue(
1551         channelProvider.isHeaderSent(
1552             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1553             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1554   }
1555 
1556   @Test
batchImportEvaluatedAnnotationsExceptionTest2()1557   public void batchImportEvaluatedAnnotationsExceptionTest2() throws Exception {
1558     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1559     mockModelService.addException(exception);
1560 
1561     try {
1562       String parent = "parent-995424086";
1563       List<EvaluatedAnnotation> evaluatedAnnotations = new ArrayList<>();
1564       client.batchImportEvaluatedAnnotations(parent, evaluatedAnnotations);
1565       Assert.fail("No exception raised");
1566     } catch (InvalidArgumentException e) {
1567       // Expected exception.
1568     }
1569   }
1570 
1571   @Test
getModelEvaluationTest()1572   public void getModelEvaluationTest() throws Exception {
1573     ModelEvaluation expectedResponse =
1574         ModelEvaluation.newBuilder()
1575             .setName(
1576                 ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]")
1577                     .toString())
1578             .setDisplayName("displayName1714148973")
1579             .setMetricsSchemaUri("metricsSchemaUri-182209912")
1580             .setMetrics(Value.newBuilder().setBoolValue(true).build())
1581             .setCreateTime(Timestamp.newBuilder().build())
1582             .addAllSliceDimensions(new ArrayList<String>())
1583             .setModelExplanation(ModelExplanation.newBuilder().build())
1584             .addAllExplanationSpecs(new ArrayList<ModelEvaluation.ModelEvaluationExplanationSpec>())
1585             .setMetadata(Value.newBuilder().setBoolValue(true).build())
1586             .build();
1587     mockModelService.addResponse(expectedResponse);
1588 
1589     ModelEvaluationName name =
1590         ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]");
1591 
1592     ModelEvaluation actualResponse = client.getModelEvaluation(name);
1593     Assert.assertEquals(expectedResponse, actualResponse);
1594 
1595     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1596     Assert.assertEquals(1, actualRequests.size());
1597     GetModelEvaluationRequest actualRequest = ((GetModelEvaluationRequest) actualRequests.get(0));
1598 
1599     Assert.assertEquals(name.toString(), actualRequest.getName());
1600     Assert.assertTrue(
1601         channelProvider.isHeaderSent(
1602             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1603             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1604   }
1605 
1606   @Test
getModelEvaluationExceptionTest()1607   public void getModelEvaluationExceptionTest() throws Exception {
1608     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1609     mockModelService.addException(exception);
1610 
1611     try {
1612       ModelEvaluationName name =
1613           ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]");
1614       client.getModelEvaluation(name);
1615       Assert.fail("No exception raised");
1616     } catch (InvalidArgumentException e) {
1617       // Expected exception.
1618     }
1619   }
1620 
1621   @Test
getModelEvaluationTest2()1622   public void getModelEvaluationTest2() throws Exception {
1623     ModelEvaluation expectedResponse =
1624         ModelEvaluation.newBuilder()
1625             .setName(
1626                 ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]")
1627                     .toString())
1628             .setDisplayName("displayName1714148973")
1629             .setMetricsSchemaUri("metricsSchemaUri-182209912")
1630             .setMetrics(Value.newBuilder().setBoolValue(true).build())
1631             .setCreateTime(Timestamp.newBuilder().build())
1632             .addAllSliceDimensions(new ArrayList<String>())
1633             .setModelExplanation(ModelExplanation.newBuilder().build())
1634             .addAllExplanationSpecs(new ArrayList<ModelEvaluation.ModelEvaluationExplanationSpec>())
1635             .setMetadata(Value.newBuilder().setBoolValue(true).build())
1636             .build();
1637     mockModelService.addResponse(expectedResponse);
1638 
1639     String name = "name3373707";
1640 
1641     ModelEvaluation actualResponse = client.getModelEvaluation(name);
1642     Assert.assertEquals(expectedResponse, actualResponse);
1643 
1644     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1645     Assert.assertEquals(1, actualRequests.size());
1646     GetModelEvaluationRequest actualRequest = ((GetModelEvaluationRequest) actualRequests.get(0));
1647 
1648     Assert.assertEquals(name, actualRequest.getName());
1649     Assert.assertTrue(
1650         channelProvider.isHeaderSent(
1651             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1652             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1653   }
1654 
1655   @Test
getModelEvaluationExceptionTest2()1656   public void getModelEvaluationExceptionTest2() throws Exception {
1657     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1658     mockModelService.addException(exception);
1659 
1660     try {
1661       String name = "name3373707";
1662       client.getModelEvaluation(name);
1663       Assert.fail("No exception raised");
1664     } catch (InvalidArgumentException e) {
1665       // Expected exception.
1666     }
1667   }
1668 
1669   @Test
listModelEvaluationsTest()1670   public void listModelEvaluationsTest() throws Exception {
1671     ModelEvaluation responsesElement = ModelEvaluation.newBuilder().build();
1672     ListModelEvaluationsResponse expectedResponse =
1673         ListModelEvaluationsResponse.newBuilder()
1674             .setNextPageToken("")
1675             .addAllModelEvaluations(Arrays.asList(responsesElement))
1676             .build();
1677     mockModelService.addResponse(expectedResponse);
1678 
1679     ModelName parent = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1680 
1681     ListModelEvaluationsPagedResponse pagedListResponse = client.listModelEvaluations(parent);
1682 
1683     List<ModelEvaluation> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1684 
1685     Assert.assertEquals(1, resources.size());
1686     Assert.assertEquals(expectedResponse.getModelEvaluationsList().get(0), resources.get(0));
1687 
1688     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1689     Assert.assertEquals(1, actualRequests.size());
1690     ListModelEvaluationsRequest actualRequest =
1691         ((ListModelEvaluationsRequest) actualRequests.get(0));
1692 
1693     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1694     Assert.assertTrue(
1695         channelProvider.isHeaderSent(
1696             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1697             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1698   }
1699 
1700   @Test
listModelEvaluationsExceptionTest()1701   public void listModelEvaluationsExceptionTest() throws Exception {
1702     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1703     mockModelService.addException(exception);
1704 
1705     try {
1706       ModelName parent = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
1707       client.listModelEvaluations(parent);
1708       Assert.fail("No exception raised");
1709     } catch (InvalidArgumentException e) {
1710       // Expected exception.
1711     }
1712   }
1713 
1714   @Test
listModelEvaluationsTest2()1715   public void listModelEvaluationsTest2() throws Exception {
1716     ModelEvaluation responsesElement = ModelEvaluation.newBuilder().build();
1717     ListModelEvaluationsResponse expectedResponse =
1718         ListModelEvaluationsResponse.newBuilder()
1719             .setNextPageToken("")
1720             .addAllModelEvaluations(Arrays.asList(responsesElement))
1721             .build();
1722     mockModelService.addResponse(expectedResponse);
1723 
1724     String parent = "parent-995424086";
1725 
1726     ListModelEvaluationsPagedResponse pagedListResponse = client.listModelEvaluations(parent);
1727 
1728     List<ModelEvaluation> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1729 
1730     Assert.assertEquals(1, resources.size());
1731     Assert.assertEquals(expectedResponse.getModelEvaluationsList().get(0), resources.get(0));
1732 
1733     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1734     Assert.assertEquals(1, actualRequests.size());
1735     ListModelEvaluationsRequest actualRequest =
1736         ((ListModelEvaluationsRequest) actualRequests.get(0));
1737 
1738     Assert.assertEquals(parent, actualRequest.getParent());
1739     Assert.assertTrue(
1740         channelProvider.isHeaderSent(
1741             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1742             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1743   }
1744 
1745   @Test
listModelEvaluationsExceptionTest2()1746   public void listModelEvaluationsExceptionTest2() throws Exception {
1747     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1748     mockModelService.addException(exception);
1749 
1750     try {
1751       String parent = "parent-995424086";
1752       client.listModelEvaluations(parent);
1753       Assert.fail("No exception raised");
1754     } catch (InvalidArgumentException e) {
1755       // Expected exception.
1756     }
1757   }
1758 
1759   @Test
getModelEvaluationSliceTest()1760   public void getModelEvaluationSliceTest() throws Exception {
1761     ModelEvaluationSlice expectedResponse =
1762         ModelEvaluationSlice.newBuilder()
1763             .setName(
1764                 ModelEvaluationSliceName.of(
1765                         "[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]", "[SLICE]")
1766                     .toString())
1767             .setSlice(ModelEvaluationSlice.Slice.newBuilder().build())
1768             .setMetricsSchemaUri("metricsSchemaUri-182209912")
1769             .setMetrics(Value.newBuilder().setBoolValue(true).build())
1770             .setCreateTime(Timestamp.newBuilder().build())
1771             .setModelExplanation(ModelExplanation.newBuilder().build())
1772             .build();
1773     mockModelService.addResponse(expectedResponse);
1774 
1775     ModelEvaluationSliceName name =
1776         ModelEvaluationSliceName.of(
1777             "[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]", "[SLICE]");
1778 
1779     ModelEvaluationSlice actualResponse = client.getModelEvaluationSlice(name);
1780     Assert.assertEquals(expectedResponse, actualResponse);
1781 
1782     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1783     Assert.assertEquals(1, actualRequests.size());
1784     GetModelEvaluationSliceRequest actualRequest =
1785         ((GetModelEvaluationSliceRequest) actualRequests.get(0));
1786 
1787     Assert.assertEquals(name.toString(), actualRequest.getName());
1788     Assert.assertTrue(
1789         channelProvider.isHeaderSent(
1790             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1791             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1792   }
1793 
1794   @Test
getModelEvaluationSliceExceptionTest()1795   public void getModelEvaluationSliceExceptionTest() throws Exception {
1796     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1797     mockModelService.addException(exception);
1798 
1799     try {
1800       ModelEvaluationSliceName name =
1801           ModelEvaluationSliceName.of(
1802               "[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]", "[SLICE]");
1803       client.getModelEvaluationSlice(name);
1804       Assert.fail("No exception raised");
1805     } catch (InvalidArgumentException e) {
1806       // Expected exception.
1807     }
1808   }
1809 
1810   @Test
getModelEvaluationSliceTest2()1811   public void getModelEvaluationSliceTest2() throws Exception {
1812     ModelEvaluationSlice expectedResponse =
1813         ModelEvaluationSlice.newBuilder()
1814             .setName(
1815                 ModelEvaluationSliceName.of(
1816                         "[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]", "[SLICE]")
1817                     .toString())
1818             .setSlice(ModelEvaluationSlice.Slice.newBuilder().build())
1819             .setMetricsSchemaUri("metricsSchemaUri-182209912")
1820             .setMetrics(Value.newBuilder().setBoolValue(true).build())
1821             .setCreateTime(Timestamp.newBuilder().build())
1822             .setModelExplanation(ModelExplanation.newBuilder().build())
1823             .build();
1824     mockModelService.addResponse(expectedResponse);
1825 
1826     String name = "name3373707";
1827 
1828     ModelEvaluationSlice actualResponse = client.getModelEvaluationSlice(name);
1829     Assert.assertEquals(expectedResponse, actualResponse);
1830 
1831     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1832     Assert.assertEquals(1, actualRequests.size());
1833     GetModelEvaluationSliceRequest actualRequest =
1834         ((GetModelEvaluationSliceRequest) actualRequests.get(0));
1835 
1836     Assert.assertEquals(name, actualRequest.getName());
1837     Assert.assertTrue(
1838         channelProvider.isHeaderSent(
1839             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1840             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1841   }
1842 
1843   @Test
getModelEvaluationSliceExceptionTest2()1844   public void getModelEvaluationSliceExceptionTest2() throws Exception {
1845     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1846     mockModelService.addException(exception);
1847 
1848     try {
1849       String name = "name3373707";
1850       client.getModelEvaluationSlice(name);
1851       Assert.fail("No exception raised");
1852     } catch (InvalidArgumentException e) {
1853       // Expected exception.
1854     }
1855   }
1856 
1857   @Test
listModelEvaluationSlicesTest()1858   public void listModelEvaluationSlicesTest() throws Exception {
1859     ModelEvaluationSlice responsesElement = ModelEvaluationSlice.newBuilder().build();
1860     ListModelEvaluationSlicesResponse expectedResponse =
1861         ListModelEvaluationSlicesResponse.newBuilder()
1862             .setNextPageToken("")
1863             .addAllModelEvaluationSlices(Arrays.asList(responsesElement))
1864             .build();
1865     mockModelService.addResponse(expectedResponse);
1866 
1867     ModelEvaluationName parent =
1868         ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]");
1869 
1870     ListModelEvaluationSlicesPagedResponse pagedListResponse =
1871         client.listModelEvaluationSlices(parent);
1872 
1873     List<ModelEvaluationSlice> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1874 
1875     Assert.assertEquals(1, resources.size());
1876     Assert.assertEquals(expectedResponse.getModelEvaluationSlicesList().get(0), resources.get(0));
1877 
1878     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1879     Assert.assertEquals(1, actualRequests.size());
1880     ListModelEvaluationSlicesRequest actualRequest =
1881         ((ListModelEvaluationSlicesRequest) actualRequests.get(0));
1882 
1883     Assert.assertEquals(parent.toString(), actualRequest.getParent());
1884     Assert.assertTrue(
1885         channelProvider.isHeaderSent(
1886             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1887             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1888   }
1889 
1890   @Test
listModelEvaluationSlicesExceptionTest()1891   public void listModelEvaluationSlicesExceptionTest() throws Exception {
1892     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1893     mockModelService.addException(exception);
1894 
1895     try {
1896       ModelEvaluationName parent =
1897           ModelEvaluationName.of("[PROJECT]", "[LOCATION]", "[MODEL]", "[EVALUATION]");
1898       client.listModelEvaluationSlices(parent);
1899       Assert.fail("No exception raised");
1900     } catch (InvalidArgumentException e) {
1901       // Expected exception.
1902     }
1903   }
1904 
1905   @Test
listModelEvaluationSlicesTest2()1906   public void listModelEvaluationSlicesTest2() throws Exception {
1907     ModelEvaluationSlice responsesElement = ModelEvaluationSlice.newBuilder().build();
1908     ListModelEvaluationSlicesResponse expectedResponse =
1909         ListModelEvaluationSlicesResponse.newBuilder()
1910             .setNextPageToken("")
1911             .addAllModelEvaluationSlices(Arrays.asList(responsesElement))
1912             .build();
1913     mockModelService.addResponse(expectedResponse);
1914 
1915     String parent = "parent-995424086";
1916 
1917     ListModelEvaluationSlicesPagedResponse pagedListResponse =
1918         client.listModelEvaluationSlices(parent);
1919 
1920     List<ModelEvaluationSlice> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1921 
1922     Assert.assertEquals(1, resources.size());
1923     Assert.assertEquals(expectedResponse.getModelEvaluationSlicesList().get(0), resources.get(0));
1924 
1925     List<AbstractMessage> actualRequests = mockModelService.getRequests();
1926     Assert.assertEquals(1, actualRequests.size());
1927     ListModelEvaluationSlicesRequest actualRequest =
1928         ((ListModelEvaluationSlicesRequest) actualRequests.get(0));
1929 
1930     Assert.assertEquals(parent, actualRequest.getParent());
1931     Assert.assertTrue(
1932         channelProvider.isHeaderSent(
1933             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1934             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1935   }
1936 
1937   @Test
listModelEvaluationSlicesExceptionTest2()1938   public void listModelEvaluationSlicesExceptionTest2() throws Exception {
1939     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1940     mockModelService.addException(exception);
1941 
1942     try {
1943       String parent = "parent-995424086";
1944       client.listModelEvaluationSlices(parent);
1945       Assert.fail("No exception raised");
1946     } catch (InvalidArgumentException e) {
1947       // Expected exception.
1948     }
1949   }
1950 
1951   @Test
listLocationsTest()1952   public void listLocationsTest() throws Exception {
1953     Location responsesElement = Location.newBuilder().build();
1954     ListLocationsResponse expectedResponse =
1955         ListLocationsResponse.newBuilder()
1956             .setNextPageToken("")
1957             .addAllLocations(Arrays.asList(responsesElement))
1958             .build();
1959     mockLocations.addResponse(expectedResponse);
1960 
1961     ListLocationsRequest request =
1962         ListLocationsRequest.newBuilder()
1963             .setName("name3373707")
1964             .setFilter("filter-1274492040")
1965             .setPageSize(883849137)
1966             .setPageToken("pageToken873572522")
1967             .build();
1968 
1969     ListLocationsPagedResponse pagedListResponse = client.listLocations(request);
1970 
1971     List<Location> resources = Lists.newArrayList(pagedListResponse.iterateAll());
1972 
1973     Assert.assertEquals(1, resources.size());
1974     Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0));
1975 
1976     List<AbstractMessage> actualRequests = mockLocations.getRequests();
1977     Assert.assertEquals(1, actualRequests.size());
1978     ListLocationsRequest actualRequest = ((ListLocationsRequest) actualRequests.get(0));
1979 
1980     Assert.assertEquals(request.getName(), actualRequest.getName());
1981     Assert.assertEquals(request.getFilter(), actualRequest.getFilter());
1982     Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize());
1983     Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken());
1984     Assert.assertTrue(
1985         channelProvider.isHeaderSent(
1986             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
1987             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
1988   }
1989 
1990   @Test
listLocationsExceptionTest()1991   public void listLocationsExceptionTest() throws Exception {
1992     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
1993     mockLocations.addException(exception);
1994 
1995     try {
1996       ListLocationsRequest request =
1997           ListLocationsRequest.newBuilder()
1998               .setName("name3373707")
1999               .setFilter("filter-1274492040")
2000               .setPageSize(883849137)
2001               .setPageToken("pageToken873572522")
2002               .build();
2003       client.listLocations(request);
2004       Assert.fail("No exception raised");
2005     } catch (InvalidArgumentException e) {
2006       // Expected exception.
2007     }
2008   }
2009 
2010   @Test
getLocationTest()2011   public void getLocationTest() throws Exception {
2012     Location expectedResponse =
2013         Location.newBuilder()
2014             .setName("name3373707")
2015             .setLocationId("locationId1541836720")
2016             .setDisplayName("displayName1714148973")
2017             .putAllLabels(new HashMap<String, String>())
2018             .setMetadata(Any.newBuilder().build())
2019             .build();
2020     mockLocations.addResponse(expectedResponse);
2021 
2022     GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
2023 
2024     Location actualResponse = client.getLocation(request);
2025     Assert.assertEquals(expectedResponse, actualResponse);
2026 
2027     List<AbstractMessage> actualRequests = mockLocations.getRequests();
2028     Assert.assertEquals(1, actualRequests.size());
2029     GetLocationRequest actualRequest = ((GetLocationRequest) actualRequests.get(0));
2030 
2031     Assert.assertEquals(request.getName(), actualRequest.getName());
2032     Assert.assertTrue(
2033         channelProvider.isHeaderSent(
2034             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2035             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2036   }
2037 
2038   @Test
getLocationExceptionTest()2039   public void getLocationExceptionTest() throws Exception {
2040     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2041     mockLocations.addException(exception);
2042 
2043     try {
2044       GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
2045       client.getLocation(request);
2046       Assert.fail("No exception raised");
2047     } catch (InvalidArgumentException e) {
2048       // Expected exception.
2049     }
2050   }
2051 
2052   @Test
setIamPolicyTest()2053   public void setIamPolicyTest() throws Exception {
2054     Policy expectedResponse =
2055         Policy.newBuilder()
2056             .setVersion(351608024)
2057             .addAllBindings(new ArrayList<Binding>())
2058             .addAllAuditConfigs(new ArrayList<AuditConfig>())
2059             .setEtag(ByteString.EMPTY)
2060             .build();
2061     mockIAMPolicy.addResponse(expectedResponse);
2062 
2063     SetIamPolicyRequest request =
2064         SetIamPolicyRequest.newBuilder()
2065             .setResource(
2066                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2067                     .toString())
2068             .setPolicy(Policy.newBuilder().build())
2069             .setUpdateMask(FieldMask.newBuilder().build())
2070             .build();
2071 
2072     Policy actualResponse = client.setIamPolicy(request);
2073     Assert.assertEquals(expectedResponse, actualResponse);
2074 
2075     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
2076     Assert.assertEquals(1, actualRequests.size());
2077     SetIamPolicyRequest actualRequest = ((SetIamPolicyRequest) actualRequests.get(0));
2078 
2079     Assert.assertEquals(request.getResource(), actualRequest.getResource());
2080     Assert.assertEquals(request.getPolicy(), actualRequest.getPolicy());
2081     Assert.assertEquals(request.getUpdateMask(), actualRequest.getUpdateMask());
2082     Assert.assertTrue(
2083         channelProvider.isHeaderSent(
2084             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2085             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2086   }
2087 
2088   @Test
setIamPolicyExceptionTest()2089   public void setIamPolicyExceptionTest() throws Exception {
2090     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2091     mockIAMPolicy.addException(exception);
2092 
2093     try {
2094       SetIamPolicyRequest request =
2095           SetIamPolicyRequest.newBuilder()
2096               .setResource(
2097                   EndpointName.ofProjectLocationEndpointName(
2098                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2099                       .toString())
2100               .setPolicy(Policy.newBuilder().build())
2101               .setUpdateMask(FieldMask.newBuilder().build())
2102               .build();
2103       client.setIamPolicy(request);
2104       Assert.fail("No exception raised");
2105     } catch (InvalidArgumentException e) {
2106       // Expected exception.
2107     }
2108   }
2109 
2110   @Test
getIamPolicyTest()2111   public void getIamPolicyTest() throws Exception {
2112     Policy expectedResponse =
2113         Policy.newBuilder()
2114             .setVersion(351608024)
2115             .addAllBindings(new ArrayList<Binding>())
2116             .addAllAuditConfigs(new ArrayList<AuditConfig>())
2117             .setEtag(ByteString.EMPTY)
2118             .build();
2119     mockIAMPolicy.addResponse(expectedResponse);
2120 
2121     GetIamPolicyRequest request =
2122         GetIamPolicyRequest.newBuilder()
2123             .setResource(
2124                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2125                     .toString())
2126             .setOptions(GetPolicyOptions.newBuilder().build())
2127             .build();
2128 
2129     Policy actualResponse = client.getIamPolicy(request);
2130     Assert.assertEquals(expectedResponse, actualResponse);
2131 
2132     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
2133     Assert.assertEquals(1, actualRequests.size());
2134     GetIamPolicyRequest actualRequest = ((GetIamPolicyRequest) actualRequests.get(0));
2135 
2136     Assert.assertEquals(request.getResource(), actualRequest.getResource());
2137     Assert.assertEquals(request.getOptions(), actualRequest.getOptions());
2138     Assert.assertTrue(
2139         channelProvider.isHeaderSent(
2140             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2141             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2142   }
2143 
2144   @Test
getIamPolicyExceptionTest()2145   public void getIamPolicyExceptionTest() throws Exception {
2146     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2147     mockIAMPolicy.addException(exception);
2148 
2149     try {
2150       GetIamPolicyRequest request =
2151           GetIamPolicyRequest.newBuilder()
2152               .setResource(
2153                   EndpointName.ofProjectLocationEndpointName(
2154                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2155                       .toString())
2156               .setOptions(GetPolicyOptions.newBuilder().build())
2157               .build();
2158       client.getIamPolicy(request);
2159       Assert.fail("No exception raised");
2160     } catch (InvalidArgumentException e) {
2161       // Expected exception.
2162     }
2163   }
2164 
2165   @Test
testIamPermissionsTest()2166   public void testIamPermissionsTest() throws Exception {
2167     TestIamPermissionsResponse expectedResponse =
2168         TestIamPermissionsResponse.newBuilder().addAllPermissions(new ArrayList<String>()).build();
2169     mockIAMPolicy.addResponse(expectedResponse);
2170 
2171     TestIamPermissionsRequest request =
2172         TestIamPermissionsRequest.newBuilder()
2173             .setResource(
2174                 EndpointName.ofProjectLocationEndpointName("[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2175                     .toString())
2176             .addAllPermissions(new ArrayList<String>())
2177             .build();
2178 
2179     TestIamPermissionsResponse actualResponse = client.testIamPermissions(request);
2180     Assert.assertEquals(expectedResponse, actualResponse);
2181 
2182     List<AbstractMessage> actualRequests = mockIAMPolicy.getRequests();
2183     Assert.assertEquals(1, actualRequests.size());
2184     TestIamPermissionsRequest actualRequest = ((TestIamPermissionsRequest) actualRequests.get(0));
2185 
2186     Assert.assertEquals(request.getResource(), actualRequest.getResource());
2187     Assert.assertEquals(request.getPermissionsList(), actualRequest.getPermissionsList());
2188     Assert.assertTrue(
2189         channelProvider.isHeaderSent(
2190             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
2191             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
2192   }
2193 
2194   @Test
testIamPermissionsExceptionTest()2195   public void testIamPermissionsExceptionTest() throws Exception {
2196     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
2197     mockIAMPolicy.addException(exception);
2198 
2199     try {
2200       TestIamPermissionsRequest request =
2201           TestIamPermissionsRequest.newBuilder()
2202               .setResource(
2203                   EndpointName.ofProjectLocationEndpointName(
2204                           "[PROJECT]", "[LOCATION]", "[ENDPOINT]")
2205                       .toString())
2206               .addAllPermissions(new ArrayList<String>())
2207               .build();
2208       client.testIamPermissions(request);
2209       Assert.fail("No exception raised");
2210     } catch (InvalidArgumentException e) {
2211       // Expected exception.
2212     }
2213   }
2214 }
2215