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 15// Code generated by gapic-generator. DO NOT EDIT. 16 17package database 18 19import ( 20 "context" 21 "flag" 22 "fmt" 23 "io" 24 "log" 25 "net" 26 "os" 27 "strings" 28 "testing" 29 30 "github.com/golang/protobuf/proto" 31 "github.com/golang/protobuf/ptypes" 32 emptypb "github.com/golang/protobuf/ptypes/empty" 33 "google.golang.org/api/option" 34 iampb "google.golang.org/genproto/googleapis/iam/v1" 35 longrunningpb "google.golang.org/genproto/googleapis/longrunning" 36 databasepb "google.golang.org/genproto/googleapis/spanner/admin/database/v1" 37 38 status "google.golang.org/genproto/googleapis/rpc/status" 39 "google.golang.org/grpc" 40 "google.golang.org/grpc/codes" 41 "google.golang.org/grpc/metadata" 42 43 gstatus "google.golang.org/grpc/status" 44) 45 46var _ = io.EOF 47var _ = ptypes.MarshalAny 48var _ status.Status 49 50type mockDatabaseAdminServer struct { 51 // Embed for forward compatibility. 52 // Tests will keep working if more methods are added 53 // in the future. 54 databasepb.DatabaseAdminServer 55 56 reqs []proto.Message 57 58 // If set, all calls return this error. 59 err error 60 61 // responses to return if err == nil 62 resps []proto.Message 63} 64 65func (s *mockDatabaseAdminServer) ListDatabases(ctx context.Context, req *databasepb.ListDatabasesRequest) (*databasepb.ListDatabasesResponse, error) { 66 md, _ := metadata.FromIncomingContext(ctx) 67 if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { 68 return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) 69 } 70 s.reqs = append(s.reqs, req) 71 if s.err != nil { 72 return nil, s.err 73 } 74 return s.resps[0].(*databasepb.ListDatabasesResponse), nil 75} 76 77func (s *mockDatabaseAdminServer) CreateDatabase(ctx context.Context, req *databasepb.CreateDatabaseRequest) (*longrunningpb.Operation, error) { 78 md, _ := metadata.FromIncomingContext(ctx) 79 if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { 80 return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) 81 } 82 s.reqs = append(s.reqs, req) 83 if s.err != nil { 84 return nil, s.err 85 } 86 return s.resps[0].(*longrunningpb.Operation), nil 87} 88 89func (s *mockDatabaseAdminServer) GetDatabase(ctx context.Context, req *databasepb.GetDatabaseRequest) (*databasepb.Database, error) { 90 md, _ := metadata.FromIncomingContext(ctx) 91 if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { 92 return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) 93 } 94 s.reqs = append(s.reqs, req) 95 if s.err != nil { 96 return nil, s.err 97 } 98 return s.resps[0].(*databasepb.Database), nil 99} 100 101func (s *mockDatabaseAdminServer) UpdateDatabaseDdl(ctx context.Context, req *databasepb.UpdateDatabaseDdlRequest) (*longrunningpb.Operation, error) { 102 md, _ := metadata.FromIncomingContext(ctx) 103 if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { 104 return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) 105 } 106 s.reqs = append(s.reqs, req) 107 if s.err != nil { 108 return nil, s.err 109 } 110 return s.resps[0].(*longrunningpb.Operation), nil 111} 112 113func (s *mockDatabaseAdminServer) DropDatabase(ctx context.Context, req *databasepb.DropDatabaseRequest) (*emptypb.Empty, error) { 114 md, _ := metadata.FromIncomingContext(ctx) 115 if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { 116 return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) 117 } 118 s.reqs = append(s.reqs, req) 119 if s.err != nil { 120 return nil, s.err 121 } 122 return s.resps[0].(*emptypb.Empty), nil 123} 124 125func (s *mockDatabaseAdminServer) GetDatabaseDdl(ctx context.Context, req *databasepb.GetDatabaseDdlRequest) (*databasepb.GetDatabaseDdlResponse, error) { 126 md, _ := metadata.FromIncomingContext(ctx) 127 if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { 128 return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) 129 } 130 s.reqs = append(s.reqs, req) 131 if s.err != nil { 132 return nil, s.err 133 } 134 return s.resps[0].(*databasepb.GetDatabaseDdlResponse), nil 135} 136 137func (s *mockDatabaseAdminServer) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest) (*iampb.Policy, error) { 138 md, _ := metadata.FromIncomingContext(ctx) 139 if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { 140 return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) 141 } 142 s.reqs = append(s.reqs, req) 143 if s.err != nil { 144 return nil, s.err 145 } 146 return s.resps[0].(*iampb.Policy), nil 147} 148 149func (s *mockDatabaseAdminServer) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest) (*iampb.Policy, error) { 150 md, _ := metadata.FromIncomingContext(ctx) 151 if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { 152 return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) 153 } 154 s.reqs = append(s.reqs, req) 155 if s.err != nil { 156 return nil, s.err 157 } 158 return s.resps[0].(*iampb.Policy), nil 159} 160 161func (s *mockDatabaseAdminServer) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest) (*iampb.TestIamPermissionsResponse, error) { 162 md, _ := metadata.FromIncomingContext(ctx) 163 if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") { 164 return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg) 165 } 166 s.reqs = append(s.reqs, req) 167 if s.err != nil { 168 return nil, s.err 169 } 170 return s.resps[0].(*iampb.TestIamPermissionsResponse), nil 171} 172 173// clientOpt is the option tests should use to connect to the test server. 174// It is initialized by TestMain. 175var clientOpt option.ClientOption 176 177var ( 178 mockDatabaseAdmin mockDatabaseAdminServer 179) 180 181func TestMain(m *testing.M) { 182 flag.Parse() 183 184 serv := grpc.NewServer() 185 databasepb.RegisterDatabaseAdminServer(serv, &mockDatabaseAdmin) 186 187 lis, err := net.Listen("tcp", "localhost:0") 188 if err != nil { 189 log.Fatal(err) 190 } 191 go serv.Serve(lis) 192 193 conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure()) 194 if err != nil { 195 log.Fatal(err) 196 } 197 clientOpt = option.WithGRPCConn(conn) 198 199 os.Exit(m.Run()) 200} 201 202func TestDatabaseAdminCreateDatabase(t *testing.T) { 203 var name string = "name3373707" 204 var expectedResponse = &databasepb.Database{ 205 Name: name, 206 } 207 208 mockDatabaseAdmin.err = nil 209 mockDatabaseAdmin.reqs = nil 210 211 any, err := ptypes.MarshalAny(expectedResponse) 212 if err != nil { 213 t.Fatal(err) 214 } 215 mockDatabaseAdmin.resps = append(mockDatabaseAdmin.resps[:0], &longrunningpb.Operation{ 216 Name: "longrunning-test", 217 Done: true, 218 Result: &longrunningpb.Operation_Response{Response: any}, 219 }) 220 221 var formattedParent string = fmt.Sprintf("projects/%s/instances/%s", "[PROJECT]", "[INSTANCE]") 222 var createStatement string = "createStatement552974828" 223 var request = &databasepb.CreateDatabaseRequest{ 224 Parent: formattedParent, 225 CreateStatement: createStatement, 226 } 227 228 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 229 if err != nil { 230 t.Fatal(err) 231 } 232 233 respLRO, err := c.CreateDatabase(context.Background(), request) 234 if err != nil { 235 t.Fatal(err) 236 } 237 resp, err := respLRO.Wait(context.Background()) 238 239 if err != nil { 240 t.Fatal(err) 241 } 242 243 if want, got := request, mockDatabaseAdmin.reqs[0]; !proto.Equal(want, got) { 244 t.Errorf("wrong request %q, want %q", got, want) 245 } 246 247 if want, got := expectedResponse, resp; !proto.Equal(want, got) { 248 t.Errorf("wrong response %q, want %q)", got, want) 249 } 250} 251 252func TestDatabaseAdminCreateDatabaseError(t *testing.T) { 253 errCode := codes.PermissionDenied 254 mockDatabaseAdmin.err = nil 255 mockDatabaseAdmin.resps = append(mockDatabaseAdmin.resps[:0], &longrunningpb.Operation{ 256 Name: "longrunning-test", 257 Done: true, 258 Result: &longrunningpb.Operation_Error{ 259 Error: &status.Status{ 260 Code: int32(errCode), 261 Message: "test error", 262 }, 263 }, 264 }) 265 266 var formattedParent string = fmt.Sprintf("projects/%s/instances/%s", "[PROJECT]", "[INSTANCE]") 267 var createStatement string = "createStatement552974828" 268 var request = &databasepb.CreateDatabaseRequest{ 269 Parent: formattedParent, 270 CreateStatement: createStatement, 271 } 272 273 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 274 if err != nil { 275 t.Fatal(err) 276 } 277 278 respLRO, err := c.CreateDatabase(context.Background(), request) 279 if err != nil { 280 t.Fatal(err) 281 } 282 resp, err := respLRO.Wait(context.Background()) 283 284 if st, ok := gstatus.FromError(err); !ok { 285 t.Errorf("got error %v, expected grpc error", err) 286 } else if c := st.Code(); c != errCode { 287 t.Errorf("got error code %q, want %q", c, errCode) 288 } 289 _ = resp 290} 291func TestDatabaseAdminGetDatabase(t *testing.T) { 292 var name2 string = "name2-1052831874" 293 var expectedResponse = &databasepb.Database{ 294 Name: name2, 295 } 296 297 mockDatabaseAdmin.err = nil 298 mockDatabaseAdmin.reqs = nil 299 300 mockDatabaseAdmin.resps = append(mockDatabaseAdmin.resps[:0], expectedResponse) 301 302 var formattedName string = fmt.Sprintf("projects/%s/instances/%s/databases/%s", "[PROJECT]", "[INSTANCE]", "[DATABASE]") 303 var request = &databasepb.GetDatabaseRequest{ 304 Name: formattedName, 305 } 306 307 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 308 if err != nil { 309 t.Fatal(err) 310 } 311 312 resp, err := c.GetDatabase(context.Background(), request) 313 314 if err != nil { 315 t.Fatal(err) 316 } 317 318 if want, got := request, mockDatabaseAdmin.reqs[0]; !proto.Equal(want, got) { 319 t.Errorf("wrong request %q, want %q", got, want) 320 } 321 322 if want, got := expectedResponse, resp; !proto.Equal(want, got) { 323 t.Errorf("wrong response %q, want %q)", got, want) 324 } 325} 326 327func TestDatabaseAdminGetDatabaseError(t *testing.T) { 328 errCode := codes.PermissionDenied 329 mockDatabaseAdmin.err = gstatus.Error(errCode, "test error") 330 331 var formattedName string = fmt.Sprintf("projects/%s/instances/%s/databases/%s", "[PROJECT]", "[INSTANCE]", "[DATABASE]") 332 var request = &databasepb.GetDatabaseRequest{ 333 Name: formattedName, 334 } 335 336 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 337 if err != nil { 338 t.Fatal(err) 339 } 340 341 resp, err := c.GetDatabase(context.Background(), request) 342 343 if st, ok := gstatus.FromError(err); !ok { 344 t.Errorf("got error %v, expected grpc error", err) 345 } else if c := st.Code(); c != errCode { 346 t.Errorf("got error code %q, want %q", c, errCode) 347 } 348 _ = resp 349} 350func TestDatabaseAdminUpdateDatabaseDdl(t *testing.T) { 351 var expectedResponse *emptypb.Empty = &emptypb.Empty{} 352 353 mockDatabaseAdmin.err = nil 354 mockDatabaseAdmin.reqs = nil 355 356 any, err := ptypes.MarshalAny(expectedResponse) 357 if err != nil { 358 t.Fatal(err) 359 } 360 mockDatabaseAdmin.resps = append(mockDatabaseAdmin.resps[:0], &longrunningpb.Operation{ 361 Name: "longrunning-test", 362 Done: true, 363 Result: &longrunningpb.Operation_Response{Response: any}, 364 }) 365 366 var formattedDatabase string = fmt.Sprintf("projects/%s/instances/%s/databases/%s", "[PROJECT]", "[INSTANCE]", "[DATABASE]") 367 var statements []string = nil 368 var request = &databasepb.UpdateDatabaseDdlRequest{ 369 Database: formattedDatabase, 370 Statements: statements, 371 } 372 373 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 374 if err != nil { 375 t.Fatal(err) 376 } 377 378 respLRO, err := c.UpdateDatabaseDdl(context.Background(), request) 379 if err != nil { 380 t.Fatal(err) 381 } 382 err = respLRO.Wait(context.Background()) 383 384 if err != nil { 385 t.Fatal(err) 386 } 387 388 if want, got := request, mockDatabaseAdmin.reqs[0]; !proto.Equal(want, got) { 389 t.Errorf("wrong request %q, want %q", got, want) 390 } 391 392} 393 394func TestDatabaseAdminUpdateDatabaseDdlError(t *testing.T) { 395 errCode := codes.PermissionDenied 396 mockDatabaseAdmin.err = nil 397 mockDatabaseAdmin.resps = append(mockDatabaseAdmin.resps[:0], &longrunningpb.Operation{ 398 Name: "longrunning-test", 399 Done: true, 400 Result: &longrunningpb.Operation_Error{ 401 Error: &status.Status{ 402 Code: int32(errCode), 403 Message: "test error", 404 }, 405 }, 406 }) 407 408 var formattedDatabase string = fmt.Sprintf("projects/%s/instances/%s/databases/%s", "[PROJECT]", "[INSTANCE]", "[DATABASE]") 409 var statements []string = nil 410 var request = &databasepb.UpdateDatabaseDdlRequest{ 411 Database: formattedDatabase, 412 Statements: statements, 413 } 414 415 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 416 if err != nil { 417 t.Fatal(err) 418 } 419 420 respLRO, err := c.UpdateDatabaseDdl(context.Background(), request) 421 if err != nil { 422 t.Fatal(err) 423 } 424 err = respLRO.Wait(context.Background()) 425 426 if st, ok := gstatus.FromError(err); !ok { 427 t.Errorf("got error %v, expected grpc error", err) 428 } else if c := st.Code(); c != errCode { 429 t.Errorf("got error code %q, want %q", c, errCode) 430 } 431} 432func TestDatabaseAdminDropDatabase(t *testing.T) { 433 var expectedResponse *emptypb.Empty = &emptypb.Empty{} 434 435 mockDatabaseAdmin.err = nil 436 mockDatabaseAdmin.reqs = nil 437 438 mockDatabaseAdmin.resps = append(mockDatabaseAdmin.resps[:0], expectedResponse) 439 440 var formattedDatabase string = fmt.Sprintf("projects/%s/instances/%s/databases/%s", "[PROJECT]", "[INSTANCE]", "[DATABASE]") 441 var request = &databasepb.DropDatabaseRequest{ 442 Database: formattedDatabase, 443 } 444 445 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 446 if err != nil { 447 t.Fatal(err) 448 } 449 450 err = c.DropDatabase(context.Background(), request) 451 452 if err != nil { 453 t.Fatal(err) 454 } 455 456 if want, got := request, mockDatabaseAdmin.reqs[0]; !proto.Equal(want, got) { 457 t.Errorf("wrong request %q, want %q", got, want) 458 } 459 460} 461 462func TestDatabaseAdminDropDatabaseError(t *testing.T) { 463 errCode := codes.PermissionDenied 464 mockDatabaseAdmin.err = gstatus.Error(errCode, "test error") 465 466 var formattedDatabase string = fmt.Sprintf("projects/%s/instances/%s/databases/%s", "[PROJECT]", "[INSTANCE]", "[DATABASE]") 467 var request = &databasepb.DropDatabaseRequest{ 468 Database: formattedDatabase, 469 } 470 471 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 472 if err != nil { 473 t.Fatal(err) 474 } 475 476 err = c.DropDatabase(context.Background(), request) 477 478 if st, ok := gstatus.FromError(err); !ok { 479 t.Errorf("got error %v, expected grpc error", err) 480 } else if c := st.Code(); c != errCode { 481 t.Errorf("got error code %q, want %q", c, errCode) 482 } 483} 484func TestDatabaseAdminGetDatabaseDdl(t *testing.T) { 485 var expectedResponse *databasepb.GetDatabaseDdlResponse = &databasepb.GetDatabaseDdlResponse{} 486 487 mockDatabaseAdmin.err = nil 488 mockDatabaseAdmin.reqs = nil 489 490 mockDatabaseAdmin.resps = append(mockDatabaseAdmin.resps[:0], expectedResponse) 491 492 var formattedDatabase string = fmt.Sprintf("projects/%s/instances/%s/databases/%s", "[PROJECT]", "[INSTANCE]", "[DATABASE]") 493 var request = &databasepb.GetDatabaseDdlRequest{ 494 Database: formattedDatabase, 495 } 496 497 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 498 if err != nil { 499 t.Fatal(err) 500 } 501 502 resp, err := c.GetDatabaseDdl(context.Background(), request) 503 504 if err != nil { 505 t.Fatal(err) 506 } 507 508 if want, got := request, mockDatabaseAdmin.reqs[0]; !proto.Equal(want, got) { 509 t.Errorf("wrong request %q, want %q", got, want) 510 } 511 512 if want, got := expectedResponse, resp; !proto.Equal(want, got) { 513 t.Errorf("wrong response %q, want %q)", got, want) 514 } 515} 516 517func TestDatabaseAdminGetDatabaseDdlError(t *testing.T) { 518 errCode := codes.PermissionDenied 519 mockDatabaseAdmin.err = gstatus.Error(errCode, "test error") 520 521 var formattedDatabase string = fmt.Sprintf("projects/%s/instances/%s/databases/%s", "[PROJECT]", "[INSTANCE]", "[DATABASE]") 522 var request = &databasepb.GetDatabaseDdlRequest{ 523 Database: formattedDatabase, 524 } 525 526 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 527 if err != nil { 528 t.Fatal(err) 529 } 530 531 resp, err := c.GetDatabaseDdl(context.Background(), request) 532 533 if st, ok := gstatus.FromError(err); !ok { 534 t.Errorf("got error %v, expected grpc error", err) 535 } else if c := st.Code(); c != errCode { 536 t.Errorf("got error code %q, want %q", c, errCode) 537 } 538 _ = resp 539} 540func TestDatabaseAdminSetIamPolicy(t *testing.T) { 541 var version int32 = 351608024 542 var etag []byte = []byte("21") 543 var expectedResponse = &iampb.Policy{ 544 Version: version, 545 Etag: etag, 546 } 547 548 mockDatabaseAdmin.err = nil 549 mockDatabaseAdmin.reqs = nil 550 551 mockDatabaseAdmin.resps = append(mockDatabaseAdmin.resps[:0], expectedResponse) 552 553 var resource string = "resource-341064690" 554 var policy *iampb.Policy = &iampb.Policy{} 555 var request = &iampb.SetIamPolicyRequest{ 556 Resource: resource, 557 Policy: policy, 558 } 559 560 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 561 if err != nil { 562 t.Fatal(err) 563 } 564 565 resp, err := c.SetIamPolicy(context.Background(), request) 566 567 if err != nil { 568 t.Fatal(err) 569 } 570 571 if want, got := request, mockDatabaseAdmin.reqs[0]; !proto.Equal(want, got) { 572 t.Errorf("wrong request %q, want %q", got, want) 573 } 574 575 if want, got := expectedResponse, resp; !proto.Equal(want, got) { 576 t.Errorf("wrong response %q, want %q)", got, want) 577 } 578} 579 580func TestDatabaseAdminSetIamPolicyError(t *testing.T) { 581 errCode := codes.PermissionDenied 582 mockDatabaseAdmin.err = gstatus.Error(errCode, "test error") 583 584 var resource string = "resource-341064690" 585 var policy *iampb.Policy = &iampb.Policy{} 586 var request = &iampb.SetIamPolicyRequest{ 587 Resource: resource, 588 Policy: policy, 589 } 590 591 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 592 if err != nil { 593 t.Fatal(err) 594 } 595 596 resp, err := c.SetIamPolicy(context.Background(), request) 597 598 if st, ok := gstatus.FromError(err); !ok { 599 t.Errorf("got error %v, expected grpc error", err) 600 } else if c := st.Code(); c != errCode { 601 t.Errorf("got error code %q, want %q", c, errCode) 602 } 603 _ = resp 604} 605func TestDatabaseAdminGetIamPolicy(t *testing.T) { 606 var version int32 = 351608024 607 var etag []byte = []byte("21") 608 var expectedResponse = &iampb.Policy{ 609 Version: version, 610 Etag: etag, 611 } 612 613 mockDatabaseAdmin.err = nil 614 mockDatabaseAdmin.reqs = nil 615 616 mockDatabaseAdmin.resps = append(mockDatabaseAdmin.resps[:0], expectedResponse) 617 618 var resource string = "resource-341064690" 619 var request = &iampb.GetIamPolicyRequest{ 620 Resource: resource, 621 } 622 623 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 624 if err != nil { 625 t.Fatal(err) 626 } 627 628 resp, err := c.GetIamPolicy(context.Background(), request) 629 630 if err != nil { 631 t.Fatal(err) 632 } 633 634 if want, got := request, mockDatabaseAdmin.reqs[0]; !proto.Equal(want, got) { 635 t.Errorf("wrong request %q, want %q", got, want) 636 } 637 638 if want, got := expectedResponse, resp; !proto.Equal(want, got) { 639 t.Errorf("wrong response %q, want %q)", got, want) 640 } 641} 642 643func TestDatabaseAdminGetIamPolicyError(t *testing.T) { 644 errCode := codes.PermissionDenied 645 mockDatabaseAdmin.err = gstatus.Error(errCode, "test error") 646 647 var resource string = "resource-341064690" 648 var request = &iampb.GetIamPolicyRequest{ 649 Resource: resource, 650 } 651 652 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 653 if err != nil { 654 t.Fatal(err) 655 } 656 657 resp, err := c.GetIamPolicy(context.Background(), request) 658 659 if st, ok := gstatus.FromError(err); !ok { 660 t.Errorf("got error %v, expected grpc error", err) 661 } else if c := st.Code(); c != errCode { 662 t.Errorf("got error code %q, want %q", c, errCode) 663 } 664 _ = resp 665} 666func TestDatabaseAdminTestIamPermissions(t *testing.T) { 667 var expectedResponse *iampb.TestIamPermissionsResponse = &iampb.TestIamPermissionsResponse{} 668 669 mockDatabaseAdmin.err = nil 670 mockDatabaseAdmin.reqs = nil 671 672 mockDatabaseAdmin.resps = append(mockDatabaseAdmin.resps[:0], expectedResponse) 673 674 var resource string = "resource-341064690" 675 var permissions []string = nil 676 var request = &iampb.TestIamPermissionsRequest{ 677 Resource: resource, 678 Permissions: permissions, 679 } 680 681 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 682 if err != nil { 683 t.Fatal(err) 684 } 685 686 resp, err := c.TestIamPermissions(context.Background(), request) 687 688 if err != nil { 689 t.Fatal(err) 690 } 691 692 if want, got := request, mockDatabaseAdmin.reqs[0]; !proto.Equal(want, got) { 693 t.Errorf("wrong request %q, want %q", got, want) 694 } 695 696 if want, got := expectedResponse, resp; !proto.Equal(want, got) { 697 t.Errorf("wrong response %q, want %q)", got, want) 698 } 699} 700 701func TestDatabaseAdminTestIamPermissionsError(t *testing.T) { 702 errCode := codes.PermissionDenied 703 mockDatabaseAdmin.err = gstatus.Error(errCode, "test error") 704 705 var resource string = "resource-341064690" 706 var permissions []string = nil 707 var request = &iampb.TestIamPermissionsRequest{ 708 Resource: resource, 709 Permissions: permissions, 710 } 711 712 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 713 if err != nil { 714 t.Fatal(err) 715 } 716 717 resp, err := c.TestIamPermissions(context.Background(), request) 718 719 if st, ok := gstatus.FromError(err); !ok { 720 t.Errorf("got error %v, expected grpc error", err) 721 } else if c := st.Code(); c != errCode { 722 t.Errorf("got error code %q, want %q", c, errCode) 723 } 724 _ = resp 725} 726func TestDatabaseAdminListDatabases(t *testing.T) { 727 var nextPageToken string = "" 728 var databasesElement *databasepb.Database = &databasepb.Database{} 729 var databases = []*databasepb.Database{databasesElement} 730 var expectedResponse = &databasepb.ListDatabasesResponse{ 731 NextPageToken: nextPageToken, 732 Databases: databases, 733 } 734 735 mockDatabaseAdmin.err = nil 736 mockDatabaseAdmin.reqs = nil 737 738 mockDatabaseAdmin.resps = append(mockDatabaseAdmin.resps[:0], expectedResponse) 739 740 var formattedParent string = fmt.Sprintf("projects/%s/instances/%s", "[PROJECT]", "[INSTANCE]") 741 var request = &databasepb.ListDatabasesRequest{ 742 Parent: formattedParent, 743 } 744 745 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 746 if err != nil { 747 t.Fatal(err) 748 } 749 750 resp, err := c.ListDatabases(context.Background(), request).Next() 751 752 if err != nil { 753 t.Fatal(err) 754 } 755 756 if want, got := request, mockDatabaseAdmin.reqs[0]; !proto.Equal(want, got) { 757 t.Errorf("wrong request %q, want %q", got, want) 758 } 759 760 want := (interface{})(expectedResponse.Databases[0]) 761 got := (interface{})(resp) 762 var ok bool 763 764 switch want := (want).(type) { 765 case proto.Message: 766 ok = proto.Equal(want, got.(proto.Message)) 767 default: 768 ok = want == got 769 } 770 if !ok { 771 t.Errorf("wrong response %q, want %q)", got, want) 772 } 773} 774 775func TestDatabaseAdminListDatabasesError(t *testing.T) { 776 errCode := codes.PermissionDenied 777 mockDatabaseAdmin.err = gstatus.Error(errCode, "test error") 778 779 var formattedParent string = fmt.Sprintf("projects/%s/instances/%s", "[PROJECT]", "[INSTANCE]") 780 var request = &databasepb.ListDatabasesRequest{ 781 Parent: formattedParent, 782 } 783 784 c, err := NewDatabaseAdminClient(context.Background(), clientOpt) 785 if err != nil { 786 t.Fatal(err) 787 } 788 789 resp, err := c.ListDatabases(context.Background(), request).Next() 790 791 if st, ok := gstatus.FromError(err); !ok { 792 t.Errorf("got error %v, expected grpc error", err) 793 } else if c := st.Code(); c != errCode { 794 t.Errorf("got error code %q, want %q", c, errCode) 795 } 796 _ = resp 797} 798