You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

707 lines
20 KiB

  1. // Copyright 2019 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // https://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. // Code generated by gapic-generator. DO NOT EDIT.
  15. package scheduler
  16. import (
  17. emptypb "github.com/golang/protobuf/ptypes/empty"
  18. schedulerpb "google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1"
  19. )
  20. import (
  21. "context"
  22. "flag"
  23. "fmt"
  24. "io"
  25. "log"
  26. "net"
  27. "os"
  28. "strings"
  29. "testing"
  30. "github.com/golang/protobuf/proto"
  31. "github.com/golang/protobuf/ptypes"
  32. "google.golang.org/api/option"
  33. status "google.golang.org/genproto/googleapis/rpc/status"
  34. "google.golang.org/grpc"
  35. "google.golang.org/grpc/codes"
  36. "google.golang.org/grpc/metadata"
  37. gstatus "google.golang.org/grpc/status"
  38. )
  39. var _ = io.EOF
  40. var _ = ptypes.MarshalAny
  41. var _ status.Status
  42. type mockCloudSchedulerServer struct {
  43. // Embed for forward compatibility.
  44. // Tests will keep working if more methods are added
  45. // in the future.
  46. schedulerpb.CloudSchedulerServer
  47. reqs []proto.Message
  48. // If set, all calls return this error.
  49. err error
  50. // responses to return if err == nil
  51. resps []proto.Message
  52. }
  53. func (s *mockCloudSchedulerServer) ListJobs(ctx context.Context, req *schedulerpb.ListJobsRequest) (*schedulerpb.ListJobsResponse, error) {
  54. md, _ := metadata.FromIncomingContext(ctx)
  55. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  56. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  57. }
  58. s.reqs = append(s.reqs, req)
  59. if s.err != nil {
  60. return nil, s.err
  61. }
  62. return s.resps[0].(*schedulerpb.ListJobsResponse), nil
  63. }
  64. func (s *mockCloudSchedulerServer) GetJob(ctx context.Context, req *schedulerpb.GetJobRequest) (*schedulerpb.Job, error) {
  65. md, _ := metadata.FromIncomingContext(ctx)
  66. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  67. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  68. }
  69. s.reqs = append(s.reqs, req)
  70. if s.err != nil {
  71. return nil, s.err
  72. }
  73. return s.resps[0].(*schedulerpb.Job), nil
  74. }
  75. func (s *mockCloudSchedulerServer) CreateJob(ctx context.Context, req *schedulerpb.CreateJobRequest) (*schedulerpb.Job, error) {
  76. md, _ := metadata.FromIncomingContext(ctx)
  77. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  78. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  79. }
  80. s.reqs = append(s.reqs, req)
  81. if s.err != nil {
  82. return nil, s.err
  83. }
  84. return s.resps[0].(*schedulerpb.Job), nil
  85. }
  86. func (s *mockCloudSchedulerServer) UpdateJob(ctx context.Context, req *schedulerpb.UpdateJobRequest) (*schedulerpb.Job, error) {
  87. md, _ := metadata.FromIncomingContext(ctx)
  88. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  89. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  90. }
  91. s.reqs = append(s.reqs, req)
  92. if s.err != nil {
  93. return nil, s.err
  94. }
  95. return s.resps[0].(*schedulerpb.Job), nil
  96. }
  97. func (s *mockCloudSchedulerServer) DeleteJob(ctx context.Context, req *schedulerpb.DeleteJobRequest) (*emptypb.Empty, error) {
  98. md, _ := metadata.FromIncomingContext(ctx)
  99. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  100. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  101. }
  102. s.reqs = append(s.reqs, req)
  103. if s.err != nil {
  104. return nil, s.err
  105. }
  106. return s.resps[0].(*emptypb.Empty), nil
  107. }
  108. func (s *mockCloudSchedulerServer) PauseJob(ctx context.Context, req *schedulerpb.PauseJobRequest) (*schedulerpb.Job, error) {
  109. md, _ := metadata.FromIncomingContext(ctx)
  110. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  111. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  112. }
  113. s.reqs = append(s.reqs, req)
  114. if s.err != nil {
  115. return nil, s.err
  116. }
  117. return s.resps[0].(*schedulerpb.Job), nil
  118. }
  119. func (s *mockCloudSchedulerServer) ResumeJob(ctx context.Context, req *schedulerpb.ResumeJobRequest) (*schedulerpb.Job, error) {
  120. md, _ := metadata.FromIncomingContext(ctx)
  121. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  122. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  123. }
  124. s.reqs = append(s.reqs, req)
  125. if s.err != nil {
  126. return nil, s.err
  127. }
  128. return s.resps[0].(*schedulerpb.Job), nil
  129. }
  130. func (s *mockCloudSchedulerServer) RunJob(ctx context.Context, req *schedulerpb.RunJobRequest) (*schedulerpb.Job, error) {
  131. md, _ := metadata.FromIncomingContext(ctx)
  132. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  133. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  134. }
  135. s.reqs = append(s.reqs, req)
  136. if s.err != nil {
  137. return nil, s.err
  138. }
  139. return s.resps[0].(*schedulerpb.Job), nil
  140. }
  141. // clientOpt is the option tests should use to connect to the test server.
  142. // It is initialized by TestMain.
  143. var clientOpt option.ClientOption
  144. var (
  145. mockCloudScheduler mockCloudSchedulerServer
  146. )
  147. func TestMain(m *testing.M) {
  148. flag.Parse()
  149. serv := grpc.NewServer()
  150. schedulerpb.RegisterCloudSchedulerServer(serv, &mockCloudScheduler)
  151. lis, err := net.Listen("tcp", "localhost:0")
  152. if err != nil {
  153. log.Fatal(err)
  154. }
  155. go serv.Serve(lis)
  156. conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure())
  157. if err != nil {
  158. log.Fatal(err)
  159. }
  160. clientOpt = option.WithGRPCConn(conn)
  161. os.Exit(m.Run())
  162. }
  163. func TestCloudSchedulerListJobs(t *testing.T) {
  164. var nextPageToken string = ""
  165. var jobsElement *schedulerpb.Job = &schedulerpb.Job{}
  166. var jobs = []*schedulerpb.Job{jobsElement}
  167. var expectedResponse = &schedulerpb.ListJobsResponse{
  168. NextPageToken: nextPageToken,
  169. Jobs: jobs,
  170. }
  171. mockCloudScheduler.err = nil
  172. mockCloudScheduler.reqs = nil
  173. mockCloudScheduler.resps = append(mockCloudScheduler.resps[:0], expectedResponse)
  174. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  175. var request = &schedulerpb.ListJobsRequest{
  176. Parent: formattedParent,
  177. }
  178. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  179. if err != nil {
  180. t.Fatal(err)
  181. }
  182. resp, err := c.ListJobs(context.Background(), request).Next()
  183. if err != nil {
  184. t.Fatal(err)
  185. }
  186. if want, got := request, mockCloudScheduler.reqs[0]; !proto.Equal(want, got) {
  187. t.Errorf("wrong request %q, want %q", got, want)
  188. }
  189. want := (interface{})(expectedResponse.Jobs[0])
  190. got := (interface{})(resp)
  191. var ok bool
  192. switch want := (want).(type) {
  193. case proto.Message:
  194. ok = proto.Equal(want, got.(proto.Message))
  195. default:
  196. ok = want == got
  197. }
  198. if !ok {
  199. t.Errorf("wrong response %q, want %q)", got, want)
  200. }
  201. }
  202. func TestCloudSchedulerListJobsError(t *testing.T) {
  203. errCode := codes.PermissionDenied
  204. mockCloudScheduler.err = gstatus.Error(errCode, "test error")
  205. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  206. var request = &schedulerpb.ListJobsRequest{
  207. Parent: formattedParent,
  208. }
  209. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  210. if err != nil {
  211. t.Fatal(err)
  212. }
  213. resp, err := c.ListJobs(context.Background(), request).Next()
  214. if st, ok := gstatus.FromError(err); !ok {
  215. t.Errorf("got error %v, expected grpc error", err)
  216. } else if c := st.Code(); c != errCode {
  217. t.Errorf("got error code %q, want %q", c, errCode)
  218. }
  219. _ = resp
  220. }
  221. func TestCloudSchedulerGetJob(t *testing.T) {
  222. var name2 string = "name2-1052831874"
  223. var description string = "description-1724546052"
  224. var schedule string = "schedule-697920873"
  225. var timeZone string = "timeZone36848094"
  226. var expectedResponse = &schedulerpb.Job{
  227. Name: name2,
  228. Description: description,
  229. Schedule: schedule,
  230. TimeZone: timeZone,
  231. }
  232. mockCloudScheduler.err = nil
  233. mockCloudScheduler.reqs = nil
  234. mockCloudScheduler.resps = append(mockCloudScheduler.resps[:0], expectedResponse)
  235. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/jobs/%s", "[PROJECT]", "[LOCATION]", "[JOB]")
  236. var request = &schedulerpb.GetJobRequest{
  237. Name: formattedName,
  238. }
  239. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  240. if err != nil {
  241. t.Fatal(err)
  242. }
  243. resp, err := c.GetJob(context.Background(), request)
  244. if err != nil {
  245. t.Fatal(err)
  246. }
  247. if want, got := request, mockCloudScheduler.reqs[0]; !proto.Equal(want, got) {
  248. t.Errorf("wrong request %q, want %q", got, want)
  249. }
  250. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  251. t.Errorf("wrong response %q, want %q)", got, want)
  252. }
  253. }
  254. func TestCloudSchedulerGetJobError(t *testing.T) {
  255. errCode := codes.PermissionDenied
  256. mockCloudScheduler.err = gstatus.Error(errCode, "test error")
  257. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/jobs/%s", "[PROJECT]", "[LOCATION]", "[JOB]")
  258. var request = &schedulerpb.GetJobRequest{
  259. Name: formattedName,
  260. }
  261. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  262. if err != nil {
  263. t.Fatal(err)
  264. }
  265. resp, err := c.GetJob(context.Background(), request)
  266. if st, ok := gstatus.FromError(err); !ok {
  267. t.Errorf("got error %v, expected grpc error", err)
  268. } else if c := st.Code(); c != errCode {
  269. t.Errorf("got error code %q, want %q", c, errCode)
  270. }
  271. _ = resp
  272. }
  273. func TestCloudSchedulerCreateJob(t *testing.T) {
  274. var name string = "name3373707"
  275. var description string = "description-1724546052"
  276. var schedule string = "schedule-697920873"
  277. var timeZone string = "timeZone36848094"
  278. var expectedResponse = &schedulerpb.Job{
  279. Name: name,
  280. Description: description,
  281. Schedule: schedule,
  282. TimeZone: timeZone,
  283. }
  284. mockCloudScheduler.err = nil
  285. mockCloudScheduler.reqs = nil
  286. mockCloudScheduler.resps = append(mockCloudScheduler.resps[:0], expectedResponse)
  287. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  288. var job *schedulerpb.Job = &schedulerpb.Job{}
  289. var request = &schedulerpb.CreateJobRequest{
  290. Parent: formattedParent,
  291. Job: job,
  292. }
  293. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  294. if err != nil {
  295. t.Fatal(err)
  296. }
  297. resp, err := c.CreateJob(context.Background(), request)
  298. if err != nil {
  299. t.Fatal(err)
  300. }
  301. if want, got := request, mockCloudScheduler.reqs[0]; !proto.Equal(want, got) {
  302. t.Errorf("wrong request %q, want %q", got, want)
  303. }
  304. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  305. t.Errorf("wrong response %q, want %q)", got, want)
  306. }
  307. }
  308. func TestCloudSchedulerCreateJobError(t *testing.T) {
  309. errCode := codes.PermissionDenied
  310. mockCloudScheduler.err = gstatus.Error(errCode, "test error")
  311. var formattedParent string = fmt.Sprintf("projects/%s/locations/%s", "[PROJECT]", "[LOCATION]")
  312. var job *schedulerpb.Job = &schedulerpb.Job{}
  313. var request = &schedulerpb.CreateJobRequest{
  314. Parent: formattedParent,
  315. Job: job,
  316. }
  317. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  318. if err != nil {
  319. t.Fatal(err)
  320. }
  321. resp, err := c.CreateJob(context.Background(), request)
  322. if st, ok := gstatus.FromError(err); !ok {
  323. t.Errorf("got error %v, expected grpc error", err)
  324. } else if c := st.Code(); c != errCode {
  325. t.Errorf("got error code %q, want %q", c, errCode)
  326. }
  327. _ = resp
  328. }
  329. func TestCloudSchedulerUpdateJob(t *testing.T) {
  330. var name string = "name3373707"
  331. var description string = "description-1724546052"
  332. var schedule string = "schedule-697920873"
  333. var timeZone string = "timeZone36848094"
  334. var expectedResponse = &schedulerpb.Job{
  335. Name: name,
  336. Description: description,
  337. Schedule: schedule,
  338. TimeZone: timeZone,
  339. }
  340. mockCloudScheduler.err = nil
  341. mockCloudScheduler.reqs = nil
  342. mockCloudScheduler.resps = append(mockCloudScheduler.resps[:0], expectedResponse)
  343. var job *schedulerpb.Job = &schedulerpb.Job{}
  344. var request = &schedulerpb.UpdateJobRequest{
  345. Job: job,
  346. }
  347. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  348. if err != nil {
  349. t.Fatal(err)
  350. }
  351. resp, err := c.UpdateJob(context.Background(), request)
  352. if err != nil {
  353. t.Fatal(err)
  354. }
  355. if want, got := request, mockCloudScheduler.reqs[0]; !proto.Equal(want, got) {
  356. t.Errorf("wrong request %q, want %q", got, want)
  357. }
  358. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  359. t.Errorf("wrong response %q, want %q)", got, want)
  360. }
  361. }
  362. func TestCloudSchedulerUpdateJobError(t *testing.T) {
  363. errCode := codes.PermissionDenied
  364. mockCloudScheduler.err = gstatus.Error(errCode, "test error")
  365. var job *schedulerpb.Job = &schedulerpb.Job{}
  366. var request = &schedulerpb.UpdateJobRequest{
  367. Job: job,
  368. }
  369. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  370. if err != nil {
  371. t.Fatal(err)
  372. }
  373. resp, err := c.UpdateJob(context.Background(), request)
  374. if st, ok := gstatus.FromError(err); !ok {
  375. t.Errorf("got error %v, expected grpc error", err)
  376. } else if c := st.Code(); c != errCode {
  377. t.Errorf("got error code %q, want %q", c, errCode)
  378. }
  379. _ = resp
  380. }
  381. func TestCloudSchedulerDeleteJob(t *testing.T) {
  382. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  383. mockCloudScheduler.err = nil
  384. mockCloudScheduler.reqs = nil
  385. mockCloudScheduler.resps = append(mockCloudScheduler.resps[:0], expectedResponse)
  386. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/jobs/%s", "[PROJECT]", "[LOCATION]", "[JOB]")
  387. var request = &schedulerpb.DeleteJobRequest{
  388. Name: formattedName,
  389. }
  390. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  391. if err != nil {
  392. t.Fatal(err)
  393. }
  394. err = c.DeleteJob(context.Background(), request)
  395. if err != nil {
  396. t.Fatal(err)
  397. }
  398. if want, got := request, mockCloudScheduler.reqs[0]; !proto.Equal(want, got) {
  399. t.Errorf("wrong request %q, want %q", got, want)
  400. }
  401. }
  402. func TestCloudSchedulerDeleteJobError(t *testing.T) {
  403. errCode := codes.PermissionDenied
  404. mockCloudScheduler.err = gstatus.Error(errCode, "test error")
  405. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/jobs/%s", "[PROJECT]", "[LOCATION]", "[JOB]")
  406. var request = &schedulerpb.DeleteJobRequest{
  407. Name: formattedName,
  408. }
  409. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  410. if err != nil {
  411. t.Fatal(err)
  412. }
  413. err = c.DeleteJob(context.Background(), request)
  414. if st, ok := gstatus.FromError(err); !ok {
  415. t.Errorf("got error %v, expected grpc error", err)
  416. } else if c := st.Code(); c != errCode {
  417. t.Errorf("got error code %q, want %q", c, errCode)
  418. }
  419. }
  420. func TestCloudSchedulerPauseJob(t *testing.T) {
  421. var name2 string = "name2-1052831874"
  422. var description string = "description-1724546052"
  423. var schedule string = "schedule-697920873"
  424. var timeZone string = "timeZone36848094"
  425. var expectedResponse = &schedulerpb.Job{
  426. Name: name2,
  427. Description: description,
  428. Schedule: schedule,
  429. TimeZone: timeZone,
  430. }
  431. mockCloudScheduler.err = nil
  432. mockCloudScheduler.reqs = nil
  433. mockCloudScheduler.resps = append(mockCloudScheduler.resps[:0], expectedResponse)
  434. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/jobs/%s", "[PROJECT]", "[LOCATION]", "[JOB]")
  435. var request = &schedulerpb.PauseJobRequest{
  436. Name: formattedName,
  437. }
  438. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  439. if err != nil {
  440. t.Fatal(err)
  441. }
  442. resp, err := c.PauseJob(context.Background(), request)
  443. if err != nil {
  444. t.Fatal(err)
  445. }
  446. if want, got := request, mockCloudScheduler.reqs[0]; !proto.Equal(want, got) {
  447. t.Errorf("wrong request %q, want %q", got, want)
  448. }
  449. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  450. t.Errorf("wrong response %q, want %q)", got, want)
  451. }
  452. }
  453. func TestCloudSchedulerPauseJobError(t *testing.T) {
  454. errCode := codes.PermissionDenied
  455. mockCloudScheduler.err = gstatus.Error(errCode, "test error")
  456. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/jobs/%s", "[PROJECT]", "[LOCATION]", "[JOB]")
  457. var request = &schedulerpb.PauseJobRequest{
  458. Name: formattedName,
  459. }
  460. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  461. if err != nil {
  462. t.Fatal(err)
  463. }
  464. resp, err := c.PauseJob(context.Background(), request)
  465. if st, ok := gstatus.FromError(err); !ok {
  466. t.Errorf("got error %v, expected grpc error", err)
  467. } else if c := st.Code(); c != errCode {
  468. t.Errorf("got error code %q, want %q", c, errCode)
  469. }
  470. _ = resp
  471. }
  472. func TestCloudSchedulerResumeJob(t *testing.T) {
  473. var name2 string = "name2-1052831874"
  474. var description string = "description-1724546052"
  475. var schedule string = "schedule-697920873"
  476. var timeZone string = "timeZone36848094"
  477. var expectedResponse = &schedulerpb.Job{
  478. Name: name2,
  479. Description: description,
  480. Schedule: schedule,
  481. TimeZone: timeZone,
  482. }
  483. mockCloudScheduler.err = nil
  484. mockCloudScheduler.reqs = nil
  485. mockCloudScheduler.resps = append(mockCloudScheduler.resps[:0], expectedResponse)
  486. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/jobs/%s", "[PROJECT]", "[LOCATION]", "[JOB]")
  487. var request = &schedulerpb.ResumeJobRequest{
  488. Name: formattedName,
  489. }
  490. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  491. if err != nil {
  492. t.Fatal(err)
  493. }
  494. resp, err := c.ResumeJob(context.Background(), request)
  495. if err != nil {
  496. t.Fatal(err)
  497. }
  498. if want, got := request, mockCloudScheduler.reqs[0]; !proto.Equal(want, got) {
  499. t.Errorf("wrong request %q, want %q", got, want)
  500. }
  501. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  502. t.Errorf("wrong response %q, want %q)", got, want)
  503. }
  504. }
  505. func TestCloudSchedulerResumeJobError(t *testing.T) {
  506. errCode := codes.PermissionDenied
  507. mockCloudScheduler.err = gstatus.Error(errCode, "test error")
  508. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/jobs/%s", "[PROJECT]", "[LOCATION]", "[JOB]")
  509. var request = &schedulerpb.ResumeJobRequest{
  510. Name: formattedName,
  511. }
  512. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  513. if err != nil {
  514. t.Fatal(err)
  515. }
  516. resp, err := c.ResumeJob(context.Background(), request)
  517. if st, ok := gstatus.FromError(err); !ok {
  518. t.Errorf("got error %v, expected grpc error", err)
  519. } else if c := st.Code(); c != errCode {
  520. t.Errorf("got error code %q, want %q", c, errCode)
  521. }
  522. _ = resp
  523. }
  524. func TestCloudSchedulerRunJob(t *testing.T) {
  525. var name2 string = "name2-1052831874"
  526. var description string = "description-1724546052"
  527. var schedule string = "schedule-697920873"
  528. var timeZone string = "timeZone36848094"
  529. var expectedResponse = &schedulerpb.Job{
  530. Name: name2,
  531. Description: description,
  532. Schedule: schedule,
  533. TimeZone: timeZone,
  534. }
  535. mockCloudScheduler.err = nil
  536. mockCloudScheduler.reqs = nil
  537. mockCloudScheduler.resps = append(mockCloudScheduler.resps[:0], expectedResponse)
  538. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/jobs/%s", "[PROJECT]", "[LOCATION]", "[JOB]")
  539. var request = &schedulerpb.RunJobRequest{
  540. Name: formattedName,
  541. }
  542. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  543. if err != nil {
  544. t.Fatal(err)
  545. }
  546. resp, err := c.RunJob(context.Background(), request)
  547. if err != nil {
  548. t.Fatal(err)
  549. }
  550. if want, got := request, mockCloudScheduler.reqs[0]; !proto.Equal(want, got) {
  551. t.Errorf("wrong request %q, want %q", got, want)
  552. }
  553. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  554. t.Errorf("wrong response %q, want %q)", got, want)
  555. }
  556. }
  557. func TestCloudSchedulerRunJobError(t *testing.T) {
  558. errCode := codes.PermissionDenied
  559. mockCloudScheduler.err = gstatus.Error(errCode, "test error")
  560. var formattedName string = fmt.Sprintf("projects/%s/locations/%s/jobs/%s", "[PROJECT]", "[LOCATION]", "[JOB]")
  561. var request = &schedulerpb.RunJobRequest{
  562. Name: formattedName,
  563. }
  564. c, err := NewCloudSchedulerClient(context.Background(), clientOpt)
  565. if err != nil {
  566. t.Fatal(err)
  567. }
  568. resp, err := c.RunJob(context.Background(), request)
  569. if st, ok := gstatus.FromError(err); !ok {
  570. t.Errorf("got error %v, expected grpc error", err)
  571. } else if c := st.Code(); c != errCode {
  572. t.Errorf("got error code %q, want %q", c, errCode)
  573. }
  574. _ = resp
  575. }