• 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.scheduler.v1;
18 
19 import static com.google.cloud.scheduler.v1.CloudSchedulerClient.ListJobsPagedResponse;
20 import static com.google.cloud.scheduler.v1.CloudSchedulerClient.ListLocationsPagedResponse;
21 
22 import com.google.api.gax.core.NoCredentialsProvider;
23 import com.google.api.gax.grpc.GaxGrpcProperties;
24 import com.google.api.gax.grpc.testing.LocalChannelProvider;
25 import com.google.api.gax.grpc.testing.MockGrpcService;
26 import com.google.api.gax.grpc.testing.MockServiceHelper;
27 import com.google.api.gax.rpc.ApiClientHeaderProvider;
28 import com.google.api.gax.rpc.InvalidArgumentException;
29 import com.google.cloud.location.GetLocationRequest;
30 import com.google.cloud.location.ListLocationsRequest;
31 import com.google.cloud.location.ListLocationsResponse;
32 import com.google.cloud.location.Location;
33 import com.google.common.collect.Lists;
34 import com.google.protobuf.AbstractMessage;
35 import com.google.protobuf.Any;
36 import com.google.protobuf.Duration;
37 import com.google.protobuf.Empty;
38 import com.google.protobuf.FieldMask;
39 import com.google.protobuf.Timestamp;
40 import com.google.rpc.Status;
41 import io.grpc.StatusRuntimeException;
42 import java.io.IOException;
43 import java.util.Arrays;
44 import java.util.HashMap;
45 import java.util.List;
46 import java.util.UUID;
47 import javax.annotation.Generated;
48 import org.junit.After;
49 import org.junit.AfterClass;
50 import org.junit.Assert;
51 import org.junit.Before;
52 import org.junit.BeforeClass;
53 import org.junit.Test;
54 
55 @Generated("by gapic-generator-java")
56 public class CloudSchedulerClientTest {
57   private static MockCloudScheduler mockCloudScheduler;
58   private static MockLocations mockLocations;
59   private static MockServiceHelper mockServiceHelper;
60   private LocalChannelProvider channelProvider;
61   private CloudSchedulerClient client;
62 
63   @BeforeClass
startStaticServer()64   public static void startStaticServer() {
65     mockCloudScheduler = new MockCloudScheduler();
66     mockLocations = new MockLocations();
67     mockServiceHelper =
68         new MockServiceHelper(
69             UUID.randomUUID().toString(),
70             Arrays.<MockGrpcService>asList(mockCloudScheduler, mockLocations));
71     mockServiceHelper.start();
72   }
73 
74   @AfterClass
stopServer()75   public static void stopServer() {
76     mockServiceHelper.stop();
77   }
78 
79   @Before
setUp()80   public void setUp() throws IOException {
81     mockServiceHelper.reset();
82     channelProvider = mockServiceHelper.createChannelProvider();
83     CloudSchedulerSettings settings =
84         CloudSchedulerSettings.newBuilder()
85             .setTransportChannelProvider(channelProvider)
86             .setCredentialsProvider(NoCredentialsProvider.create())
87             .build();
88     client = CloudSchedulerClient.create(settings);
89   }
90 
91   @After
tearDown()92   public void tearDown() throws Exception {
93     client.close();
94   }
95 
96   @Test
listJobsTest()97   public void listJobsTest() throws Exception {
98     Job responsesElement = Job.newBuilder().build();
99     ListJobsResponse expectedResponse =
100         ListJobsResponse.newBuilder()
101             .setNextPageToken("")
102             .addAllJobs(Arrays.asList(responsesElement))
103             .build();
104     mockCloudScheduler.addResponse(expectedResponse);
105 
106     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
107 
108     ListJobsPagedResponse pagedListResponse = client.listJobs(parent);
109 
110     List<Job> resources = Lists.newArrayList(pagedListResponse.iterateAll());
111 
112     Assert.assertEquals(1, resources.size());
113     Assert.assertEquals(expectedResponse.getJobsList().get(0), resources.get(0));
114 
115     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
116     Assert.assertEquals(1, actualRequests.size());
117     ListJobsRequest actualRequest = ((ListJobsRequest) actualRequests.get(0));
118 
119     Assert.assertEquals(parent.toString(), actualRequest.getParent());
120     Assert.assertTrue(
121         channelProvider.isHeaderSent(
122             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
123             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
124   }
125 
126   @Test
listJobsExceptionTest()127   public void listJobsExceptionTest() throws Exception {
128     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
129     mockCloudScheduler.addException(exception);
130 
131     try {
132       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
133       client.listJobs(parent);
134       Assert.fail("No exception raised");
135     } catch (InvalidArgumentException e) {
136       // Expected exception.
137     }
138   }
139 
140   @Test
listJobsTest2()141   public void listJobsTest2() throws Exception {
142     Job responsesElement = Job.newBuilder().build();
143     ListJobsResponse expectedResponse =
144         ListJobsResponse.newBuilder()
145             .setNextPageToken("")
146             .addAllJobs(Arrays.asList(responsesElement))
147             .build();
148     mockCloudScheduler.addResponse(expectedResponse);
149 
150     String parent = "parent-995424086";
151 
152     ListJobsPagedResponse pagedListResponse = client.listJobs(parent);
153 
154     List<Job> resources = Lists.newArrayList(pagedListResponse.iterateAll());
155 
156     Assert.assertEquals(1, resources.size());
157     Assert.assertEquals(expectedResponse.getJobsList().get(0), resources.get(0));
158 
159     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
160     Assert.assertEquals(1, actualRequests.size());
161     ListJobsRequest actualRequest = ((ListJobsRequest) actualRequests.get(0));
162 
163     Assert.assertEquals(parent, actualRequest.getParent());
164     Assert.assertTrue(
165         channelProvider.isHeaderSent(
166             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
167             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
168   }
169 
170   @Test
listJobsExceptionTest2()171   public void listJobsExceptionTest2() throws Exception {
172     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
173     mockCloudScheduler.addException(exception);
174 
175     try {
176       String parent = "parent-995424086";
177       client.listJobs(parent);
178       Assert.fail("No exception raised");
179     } catch (InvalidArgumentException e) {
180       // Expected exception.
181     }
182   }
183 
184   @Test
getJobTest()185   public void getJobTest() throws Exception {
186     Job expectedResponse =
187         Job.newBuilder()
188             .setName(JobName.of("[PROJECT]", "[LOCATION]", "[JOB]").toString())
189             .setDescription("description-1724546052")
190             .setSchedule("schedule-697920873")
191             .setTimeZone("timeZone-2077180903")
192             .setUserUpdateTime(Timestamp.newBuilder().build())
193             .setStatus(Status.newBuilder().build())
194             .setScheduleTime(Timestamp.newBuilder().build())
195             .setLastAttemptTime(Timestamp.newBuilder().build())
196             .setRetryConfig(RetryConfig.newBuilder().build())
197             .setAttemptDeadline(Duration.newBuilder().build())
198             .build();
199     mockCloudScheduler.addResponse(expectedResponse);
200 
201     JobName name = JobName.of("[PROJECT]", "[LOCATION]", "[JOB]");
202 
203     Job actualResponse = client.getJob(name);
204     Assert.assertEquals(expectedResponse, actualResponse);
205 
206     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
207     Assert.assertEquals(1, actualRequests.size());
208     GetJobRequest actualRequest = ((GetJobRequest) actualRequests.get(0));
209 
210     Assert.assertEquals(name.toString(), actualRequest.getName());
211     Assert.assertTrue(
212         channelProvider.isHeaderSent(
213             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
214             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
215   }
216 
217   @Test
getJobExceptionTest()218   public void getJobExceptionTest() throws Exception {
219     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
220     mockCloudScheduler.addException(exception);
221 
222     try {
223       JobName name = JobName.of("[PROJECT]", "[LOCATION]", "[JOB]");
224       client.getJob(name);
225       Assert.fail("No exception raised");
226     } catch (InvalidArgumentException e) {
227       // Expected exception.
228     }
229   }
230 
231   @Test
getJobTest2()232   public void getJobTest2() throws Exception {
233     Job expectedResponse =
234         Job.newBuilder()
235             .setName(JobName.of("[PROJECT]", "[LOCATION]", "[JOB]").toString())
236             .setDescription("description-1724546052")
237             .setSchedule("schedule-697920873")
238             .setTimeZone("timeZone-2077180903")
239             .setUserUpdateTime(Timestamp.newBuilder().build())
240             .setStatus(Status.newBuilder().build())
241             .setScheduleTime(Timestamp.newBuilder().build())
242             .setLastAttemptTime(Timestamp.newBuilder().build())
243             .setRetryConfig(RetryConfig.newBuilder().build())
244             .setAttemptDeadline(Duration.newBuilder().build())
245             .build();
246     mockCloudScheduler.addResponse(expectedResponse);
247 
248     String name = "name3373707";
249 
250     Job actualResponse = client.getJob(name);
251     Assert.assertEquals(expectedResponse, actualResponse);
252 
253     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
254     Assert.assertEquals(1, actualRequests.size());
255     GetJobRequest actualRequest = ((GetJobRequest) actualRequests.get(0));
256 
257     Assert.assertEquals(name, actualRequest.getName());
258     Assert.assertTrue(
259         channelProvider.isHeaderSent(
260             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
261             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
262   }
263 
264   @Test
getJobExceptionTest2()265   public void getJobExceptionTest2() throws Exception {
266     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
267     mockCloudScheduler.addException(exception);
268 
269     try {
270       String name = "name3373707";
271       client.getJob(name);
272       Assert.fail("No exception raised");
273     } catch (InvalidArgumentException e) {
274       // Expected exception.
275     }
276   }
277 
278   @Test
createJobTest()279   public void createJobTest() throws Exception {
280     Job expectedResponse =
281         Job.newBuilder()
282             .setName(JobName.of("[PROJECT]", "[LOCATION]", "[JOB]").toString())
283             .setDescription("description-1724546052")
284             .setSchedule("schedule-697920873")
285             .setTimeZone("timeZone-2077180903")
286             .setUserUpdateTime(Timestamp.newBuilder().build())
287             .setStatus(Status.newBuilder().build())
288             .setScheduleTime(Timestamp.newBuilder().build())
289             .setLastAttemptTime(Timestamp.newBuilder().build())
290             .setRetryConfig(RetryConfig.newBuilder().build())
291             .setAttemptDeadline(Duration.newBuilder().build())
292             .build();
293     mockCloudScheduler.addResponse(expectedResponse);
294 
295     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
296     Job job = Job.newBuilder().build();
297 
298     Job actualResponse = client.createJob(parent, job);
299     Assert.assertEquals(expectedResponse, actualResponse);
300 
301     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
302     Assert.assertEquals(1, actualRequests.size());
303     CreateJobRequest actualRequest = ((CreateJobRequest) actualRequests.get(0));
304 
305     Assert.assertEquals(parent.toString(), actualRequest.getParent());
306     Assert.assertEquals(job, actualRequest.getJob());
307     Assert.assertTrue(
308         channelProvider.isHeaderSent(
309             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
310             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
311   }
312 
313   @Test
createJobExceptionTest()314   public void createJobExceptionTest() throws Exception {
315     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
316     mockCloudScheduler.addException(exception);
317 
318     try {
319       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
320       Job job = Job.newBuilder().build();
321       client.createJob(parent, job);
322       Assert.fail("No exception raised");
323     } catch (InvalidArgumentException e) {
324       // Expected exception.
325     }
326   }
327 
328   @Test
createJobTest2()329   public void createJobTest2() throws Exception {
330     Job expectedResponse =
331         Job.newBuilder()
332             .setName(JobName.of("[PROJECT]", "[LOCATION]", "[JOB]").toString())
333             .setDescription("description-1724546052")
334             .setSchedule("schedule-697920873")
335             .setTimeZone("timeZone-2077180903")
336             .setUserUpdateTime(Timestamp.newBuilder().build())
337             .setStatus(Status.newBuilder().build())
338             .setScheduleTime(Timestamp.newBuilder().build())
339             .setLastAttemptTime(Timestamp.newBuilder().build())
340             .setRetryConfig(RetryConfig.newBuilder().build())
341             .setAttemptDeadline(Duration.newBuilder().build())
342             .build();
343     mockCloudScheduler.addResponse(expectedResponse);
344 
345     String parent = "parent-995424086";
346     Job job = Job.newBuilder().build();
347 
348     Job actualResponse = client.createJob(parent, job);
349     Assert.assertEquals(expectedResponse, actualResponse);
350 
351     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
352     Assert.assertEquals(1, actualRequests.size());
353     CreateJobRequest actualRequest = ((CreateJobRequest) actualRequests.get(0));
354 
355     Assert.assertEquals(parent, actualRequest.getParent());
356     Assert.assertEquals(job, actualRequest.getJob());
357     Assert.assertTrue(
358         channelProvider.isHeaderSent(
359             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
360             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
361   }
362 
363   @Test
createJobExceptionTest2()364   public void createJobExceptionTest2() throws Exception {
365     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
366     mockCloudScheduler.addException(exception);
367 
368     try {
369       String parent = "parent-995424086";
370       Job job = Job.newBuilder().build();
371       client.createJob(parent, job);
372       Assert.fail("No exception raised");
373     } catch (InvalidArgumentException e) {
374       // Expected exception.
375     }
376   }
377 
378   @Test
updateJobTest()379   public void updateJobTest() throws Exception {
380     Job expectedResponse =
381         Job.newBuilder()
382             .setName(JobName.of("[PROJECT]", "[LOCATION]", "[JOB]").toString())
383             .setDescription("description-1724546052")
384             .setSchedule("schedule-697920873")
385             .setTimeZone("timeZone-2077180903")
386             .setUserUpdateTime(Timestamp.newBuilder().build())
387             .setStatus(Status.newBuilder().build())
388             .setScheduleTime(Timestamp.newBuilder().build())
389             .setLastAttemptTime(Timestamp.newBuilder().build())
390             .setRetryConfig(RetryConfig.newBuilder().build())
391             .setAttemptDeadline(Duration.newBuilder().build())
392             .build();
393     mockCloudScheduler.addResponse(expectedResponse);
394 
395     Job job = Job.newBuilder().build();
396     FieldMask updateMask = FieldMask.newBuilder().build();
397 
398     Job actualResponse = client.updateJob(job, updateMask);
399     Assert.assertEquals(expectedResponse, actualResponse);
400 
401     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
402     Assert.assertEquals(1, actualRequests.size());
403     UpdateJobRequest actualRequest = ((UpdateJobRequest) actualRequests.get(0));
404 
405     Assert.assertEquals(job, actualRequest.getJob());
406     Assert.assertEquals(updateMask, actualRequest.getUpdateMask());
407     Assert.assertTrue(
408         channelProvider.isHeaderSent(
409             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
410             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
411   }
412 
413   @Test
updateJobExceptionTest()414   public void updateJobExceptionTest() throws Exception {
415     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
416     mockCloudScheduler.addException(exception);
417 
418     try {
419       Job job = Job.newBuilder().build();
420       FieldMask updateMask = FieldMask.newBuilder().build();
421       client.updateJob(job, updateMask);
422       Assert.fail("No exception raised");
423     } catch (InvalidArgumentException e) {
424       // Expected exception.
425     }
426   }
427 
428   @Test
deleteJobTest()429   public void deleteJobTest() throws Exception {
430     Empty expectedResponse = Empty.newBuilder().build();
431     mockCloudScheduler.addResponse(expectedResponse);
432 
433     JobName name = JobName.of("[PROJECT]", "[LOCATION]", "[JOB]");
434 
435     client.deleteJob(name);
436 
437     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
438     Assert.assertEquals(1, actualRequests.size());
439     DeleteJobRequest actualRequest = ((DeleteJobRequest) actualRequests.get(0));
440 
441     Assert.assertEquals(name.toString(), actualRequest.getName());
442     Assert.assertTrue(
443         channelProvider.isHeaderSent(
444             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
445             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
446   }
447 
448   @Test
deleteJobExceptionTest()449   public void deleteJobExceptionTest() throws Exception {
450     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
451     mockCloudScheduler.addException(exception);
452 
453     try {
454       JobName name = JobName.of("[PROJECT]", "[LOCATION]", "[JOB]");
455       client.deleteJob(name);
456       Assert.fail("No exception raised");
457     } catch (InvalidArgumentException e) {
458       // Expected exception.
459     }
460   }
461 
462   @Test
deleteJobTest2()463   public void deleteJobTest2() throws Exception {
464     Empty expectedResponse = Empty.newBuilder().build();
465     mockCloudScheduler.addResponse(expectedResponse);
466 
467     String name = "name3373707";
468 
469     client.deleteJob(name);
470 
471     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
472     Assert.assertEquals(1, actualRequests.size());
473     DeleteJobRequest actualRequest = ((DeleteJobRequest) actualRequests.get(0));
474 
475     Assert.assertEquals(name, actualRequest.getName());
476     Assert.assertTrue(
477         channelProvider.isHeaderSent(
478             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
479             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
480   }
481 
482   @Test
deleteJobExceptionTest2()483   public void deleteJobExceptionTest2() throws Exception {
484     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
485     mockCloudScheduler.addException(exception);
486 
487     try {
488       String name = "name3373707";
489       client.deleteJob(name);
490       Assert.fail("No exception raised");
491     } catch (InvalidArgumentException e) {
492       // Expected exception.
493     }
494   }
495 
496   @Test
pauseJobTest()497   public void pauseJobTest() throws Exception {
498     Job expectedResponse =
499         Job.newBuilder()
500             .setName(JobName.of("[PROJECT]", "[LOCATION]", "[JOB]").toString())
501             .setDescription("description-1724546052")
502             .setSchedule("schedule-697920873")
503             .setTimeZone("timeZone-2077180903")
504             .setUserUpdateTime(Timestamp.newBuilder().build())
505             .setStatus(Status.newBuilder().build())
506             .setScheduleTime(Timestamp.newBuilder().build())
507             .setLastAttemptTime(Timestamp.newBuilder().build())
508             .setRetryConfig(RetryConfig.newBuilder().build())
509             .setAttemptDeadline(Duration.newBuilder().build())
510             .build();
511     mockCloudScheduler.addResponse(expectedResponse);
512 
513     JobName name = JobName.of("[PROJECT]", "[LOCATION]", "[JOB]");
514 
515     Job actualResponse = client.pauseJob(name);
516     Assert.assertEquals(expectedResponse, actualResponse);
517 
518     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
519     Assert.assertEquals(1, actualRequests.size());
520     PauseJobRequest actualRequest = ((PauseJobRequest) actualRequests.get(0));
521 
522     Assert.assertEquals(name.toString(), actualRequest.getName());
523     Assert.assertTrue(
524         channelProvider.isHeaderSent(
525             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
526             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
527   }
528 
529   @Test
pauseJobExceptionTest()530   public void pauseJobExceptionTest() throws Exception {
531     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
532     mockCloudScheduler.addException(exception);
533 
534     try {
535       JobName name = JobName.of("[PROJECT]", "[LOCATION]", "[JOB]");
536       client.pauseJob(name);
537       Assert.fail("No exception raised");
538     } catch (InvalidArgumentException e) {
539       // Expected exception.
540     }
541   }
542 
543   @Test
pauseJobTest2()544   public void pauseJobTest2() throws Exception {
545     Job expectedResponse =
546         Job.newBuilder()
547             .setName(JobName.of("[PROJECT]", "[LOCATION]", "[JOB]").toString())
548             .setDescription("description-1724546052")
549             .setSchedule("schedule-697920873")
550             .setTimeZone("timeZone-2077180903")
551             .setUserUpdateTime(Timestamp.newBuilder().build())
552             .setStatus(Status.newBuilder().build())
553             .setScheduleTime(Timestamp.newBuilder().build())
554             .setLastAttemptTime(Timestamp.newBuilder().build())
555             .setRetryConfig(RetryConfig.newBuilder().build())
556             .setAttemptDeadline(Duration.newBuilder().build())
557             .build();
558     mockCloudScheduler.addResponse(expectedResponse);
559 
560     String name = "name3373707";
561 
562     Job actualResponse = client.pauseJob(name);
563     Assert.assertEquals(expectedResponse, actualResponse);
564 
565     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
566     Assert.assertEquals(1, actualRequests.size());
567     PauseJobRequest actualRequest = ((PauseJobRequest) actualRequests.get(0));
568 
569     Assert.assertEquals(name, actualRequest.getName());
570     Assert.assertTrue(
571         channelProvider.isHeaderSent(
572             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
573             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
574   }
575 
576   @Test
pauseJobExceptionTest2()577   public void pauseJobExceptionTest2() throws Exception {
578     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
579     mockCloudScheduler.addException(exception);
580 
581     try {
582       String name = "name3373707";
583       client.pauseJob(name);
584       Assert.fail("No exception raised");
585     } catch (InvalidArgumentException e) {
586       // Expected exception.
587     }
588   }
589 
590   @Test
resumeJobTest()591   public void resumeJobTest() throws Exception {
592     Job expectedResponse =
593         Job.newBuilder()
594             .setName(JobName.of("[PROJECT]", "[LOCATION]", "[JOB]").toString())
595             .setDescription("description-1724546052")
596             .setSchedule("schedule-697920873")
597             .setTimeZone("timeZone-2077180903")
598             .setUserUpdateTime(Timestamp.newBuilder().build())
599             .setStatus(Status.newBuilder().build())
600             .setScheduleTime(Timestamp.newBuilder().build())
601             .setLastAttemptTime(Timestamp.newBuilder().build())
602             .setRetryConfig(RetryConfig.newBuilder().build())
603             .setAttemptDeadline(Duration.newBuilder().build())
604             .build();
605     mockCloudScheduler.addResponse(expectedResponse);
606 
607     JobName name = JobName.of("[PROJECT]", "[LOCATION]", "[JOB]");
608 
609     Job actualResponse = client.resumeJob(name);
610     Assert.assertEquals(expectedResponse, actualResponse);
611 
612     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
613     Assert.assertEquals(1, actualRequests.size());
614     ResumeJobRequest actualRequest = ((ResumeJobRequest) actualRequests.get(0));
615 
616     Assert.assertEquals(name.toString(), actualRequest.getName());
617     Assert.assertTrue(
618         channelProvider.isHeaderSent(
619             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
620             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
621   }
622 
623   @Test
resumeJobExceptionTest()624   public void resumeJobExceptionTest() throws Exception {
625     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
626     mockCloudScheduler.addException(exception);
627 
628     try {
629       JobName name = JobName.of("[PROJECT]", "[LOCATION]", "[JOB]");
630       client.resumeJob(name);
631       Assert.fail("No exception raised");
632     } catch (InvalidArgumentException e) {
633       // Expected exception.
634     }
635   }
636 
637   @Test
resumeJobTest2()638   public void resumeJobTest2() throws Exception {
639     Job expectedResponse =
640         Job.newBuilder()
641             .setName(JobName.of("[PROJECT]", "[LOCATION]", "[JOB]").toString())
642             .setDescription("description-1724546052")
643             .setSchedule("schedule-697920873")
644             .setTimeZone("timeZone-2077180903")
645             .setUserUpdateTime(Timestamp.newBuilder().build())
646             .setStatus(Status.newBuilder().build())
647             .setScheduleTime(Timestamp.newBuilder().build())
648             .setLastAttemptTime(Timestamp.newBuilder().build())
649             .setRetryConfig(RetryConfig.newBuilder().build())
650             .setAttemptDeadline(Duration.newBuilder().build())
651             .build();
652     mockCloudScheduler.addResponse(expectedResponse);
653 
654     String name = "name3373707";
655 
656     Job actualResponse = client.resumeJob(name);
657     Assert.assertEquals(expectedResponse, actualResponse);
658 
659     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
660     Assert.assertEquals(1, actualRequests.size());
661     ResumeJobRequest actualRequest = ((ResumeJobRequest) actualRequests.get(0));
662 
663     Assert.assertEquals(name, actualRequest.getName());
664     Assert.assertTrue(
665         channelProvider.isHeaderSent(
666             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
667             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
668   }
669 
670   @Test
resumeJobExceptionTest2()671   public void resumeJobExceptionTest2() throws Exception {
672     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
673     mockCloudScheduler.addException(exception);
674 
675     try {
676       String name = "name3373707";
677       client.resumeJob(name);
678       Assert.fail("No exception raised");
679     } catch (InvalidArgumentException e) {
680       // Expected exception.
681     }
682   }
683 
684   @Test
runJobTest()685   public void runJobTest() throws Exception {
686     Job expectedResponse =
687         Job.newBuilder()
688             .setName(JobName.of("[PROJECT]", "[LOCATION]", "[JOB]").toString())
689             .setDescription("description-1724546052")
690             .setSchedule("schedule-697920873")
691             .setTimeZone("timeZone-2077180903")
692             .setUserUpdateTime(Timestamp.newBuilder().build())
693             .setStatus(Status.newBuilder().build())
694             .setScheduleTime(Timestamp.newBuilder().build())
695             .setLastAttemptTime(Timestamp.newBuilder().build())
696             .setRetryConfig(RetryConfig.newBuilder().build())
697             .setAttemptDeadline(Duration.newBuilder().build())
698             .build();
699     mockCloudScheduler.addResponse(expectedResponse);
700 
701     JobName name = JobName.of("[PROJECT]", "[LOCATION]", "[JOB]");
702 
703     Job actualResponse = client.runJob(name);
704     Assert.assertEquals(expectedResponse, actualResponse);
705 
706     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
707     Assert.assertEquals(1, actualRequests.size());
708     RunJobRequest actualRequest = ((RunJobRequest) actualRequests.get(0));
709 
710     Assert.assertEquals(name.toString(), actualRequest.getName());
711     Assert.assertTrue(
712         channelProvider.isHeaderSent(
713             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
714             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
715   }
716 
717   @Test
runJobExceptionTest()718   public void runJobExceptionTest() throws Exception {
719     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
720     mockCloudScheduler.addException(exception);
721 
722     try {
723       JobName name = JobName.of("[PROJECT]", "[LOCATION]", "[JOB]");
724       client.runJob(name);
725       Assert.fail("No exception raised");
726     } catch (InvalidArgumentException e) {
727       // Expected exception.
728     }
729   }
730 
731   @Test
runJobTest2()732   public void runJobTest2() throws Exception {
733     Job expectedResponse =
734         Job.newBuilder()
735             .setName(JobName.of("[PROJECT]", "[LOCATION]", "[JOB]").toString())
736             .setDescription("description-1724546052")
737             .setSchedule("schedule-697920873")
738             .setTimeZone("timeZone-2077180903")
739             .setUserUpdateTime(Timestamp.newBuilder().build())
740             .setStatus(Status.newBuilder().build())
741             .setScheduleTime(Timestamp.newBuilder().build())
742             .setLastAttemptTime(Timestamp.newBuilder().build())
743             .setRetryConfig(RetryConfig.newBuilder().build())
744             .setAttemptDeadline(Duration.newBuilder().build())
745             .build();
746     mockCloudScheduler.addResponse(expectedResponse);
747 
748     String name = "name3373707";
749 
750     Job actualResponse = client.runJob(name);
751     Assert.assertEquals(expectedResponse, actualResponse);
752 
753     List<AbstractMessage> actualRequests = mockCloudScheduler.getRequests();
754     Assert.assertEquals(1, actualRequests.size());
755     RunJobRequest actualRequest = ((RunJobRequest) actualRequests.get(0));
756 
757     Assert.assertEquals(name, actualRequest.getName());
758     Assert.assertTrue(
759         channelProvider.isHeaderSent(
760             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
761             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
762   }
763 
764   @Test
runJobExceptionTest2()765   public void runJobExceptionTest2() throws Exception {
766     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
767     mockCloudScheduler.addException(exception);
768 
769     try {
770       String name = "name3373707";
771       client.runJob(name);
772       Assert.fail("No exception raised");
773     } catch (InvalidArgumentException e) {
774       // Expected exception.
775     }
776   }
777 
778   @Test
listLocationsTest()779   public void listLocationsTest() throws Exception {
780     Location responsesElement = Location.newBuilder().build();
781     ListLocationsResponse expectedResponse =
782         ListLocationsResponse.newBuilder()
783             .setNextPageToken("")
784             .addAllLocations(Arrays.asList(responsesElement))
785             .build();
786     mockLocations.addResponse(expectedResponse);
787 
788     ListLocationsRequest request =
789         ListLocationsRequest.newBuilder()
790             .setName("name3373707")
791             .setFilter("filter-1274492040")
792             .setPageSize(883849137)
793             .setPageToken("pageToken873572522")
794             .build();
795 
796     ListLocationsPagedResponse pagedListResponse = client.listLocations(request);
797 
798     List<Location> resources = Lists.newArrayList(pagedListResponse.iterateAll());
799 
800     Assert.assertEquals(1, resources.size());
801     Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0));
802 
803     List<AbstractMessage> actualRequests = mockLocations.getRequests();
804     Assert.assertEquals(1, actualRequests.size());
805     ListLocationsRequest actualRequest = ((ListLocationsRequest) actualRequests.get(0));
806 
807     Assert.assertEquals(request.getName(), actualRequest.getName());
808     Assert.assertEquals(request.getFilter(), actualRequest.getFilter());
809     Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize());
810     Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken());
811     Assert.assertTrue(
812         channelProvider.isHeaderSent(
813             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
814             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
815   }
816 
817   @Test
listLocationsExceptionTest()818   public void listLocationsExceptionTest() throws Exception {
819     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
820     mockLocations.addException(exception);
821 
822     try {
823       ListLocationsRequest request =
824           ListLocationsRequest.newBuilder()
825               .setName("name3373707")
826               .setFilter("filter-1274492040")
827               .setPageSize(883849137)
828               .setPageToken("pageToken873572522")
829               .build();
830       client.listLocations(request);
831       Assert.fail("No exception raised");
832     } catch (InvalidArgumentException e) {
833       // Expected exception.
834     }
835   }
836 
837   @Test
getLocationTest()838   public void getLocationTest() throws Exception {
839     Location expectedResponse =
840         Location.newBuilder()
841             .setName("name3373707")
842             .setLocationId("locationId1541836720")
843             .setDisplayName("displayName1714148973")
844             .putAllLabels(new HashMap<String, String>())
845             .setMetadata(Any.newBuilder().build())
846             .build();
847     mockLocations.addResponse(expectedResponse);
848 
849     GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
850 
851     Location actualResponse = client.getLocation(request);
852     Assert.assertEquals(expectedResponse, actualResponse);
853 
854     List<AbstractMessage> actualRequests = mockLocations.getRequests();
855     Assert.assertEquals(1, actualRequests.size());
856     GetLocationRequest actualRequest = ((GetLocationRequest) actualRequests.get(0));
857 
858     Assert.assertEquals(request.getName(), actualRequest.getName());
859     Assert.assertTrue(
860         channelProvider.isHeaderSent(
861             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
862             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
863   }
864 
865   @Test
getLocationExceptionTest()866   public void getLocationExceptionTest() throws Exception {
867     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
868     mockLocations.addException(exception);
869 
870     try {
871       GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
872       client.getLocation(request);
873       Assert.fail("No exception raised");
874     } catch (InvalidArgumentException e) {
875       // Expected exception.
876     }
877   }
878 }
879