admin_test.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package bigtable
  2. import (
  3. "reflect"
  4. "sort"
  5. "testing"
  6. "time"
  7. "golang.org/x/net/context"
  8. "google.golang.org/cloud"
  9. "google.golang.org/cloud/bigtable/bttest"
  10. "google.golang.org/grpc"
  11. )
  12. func TestAdminIntegration(t *testing.T) {
  13. srv, err := bttest.NewServer()
  14. if err != nil {
  15. t.Fatal(err)
  16. }
  17. defer srv.Close()
  18. t.Logf("bttest.Server running on %s", srv.Addr)
  19. ctx, _ := context.WithTimeout(context.Background(), 2*time.Second)
  20. conn, err := grpc.Dial(srv.Addr, grpc.WithInsecure())
  21. if err != nil {
  22. t.Fatalf("grpc.Dial: %v", err)
  23. }
  24. adminClient, err := NewAdminClient(ctx, "proj", "zone", "cluster", cloud.WithBaseGRPC(conn))
  25. if err != nil {
  26. t.Fatalf("NewAdminClient: %v", err)
  27. }
  28. defer adminClient.Close()
  29. list := func() []string {
  30. tbls, err := adminClient.Tables(ctx)
  31. if err != nil {
  32. t.Fatalf("Fetching list of tables: %v", err)
  33. }
  34. sort.Strings(tbls)
  35. return tbls
  36. }
  37. if err := adminClient.CreateTable(ctx, "mytable"); err != nil {
  38. t.Fatalf("Creating table: %v", err)
  39. }
  40. if err := adminClient.CreateTable(ctx, "myothertable"); err != nil {
  41. t.Fatalf("Creating table: %v", err)
  42. }
  43. if got, want := list(), []string{"myothertable", "mytable"}; !reflect.DeepEqual(got, want) {
  44. t.Errorf("adminClient.Tables returned %#v, want %#v", got, want)
  45. }
  46. if err := adminClient.DeleteTable(ctx, "myothertable"); err != nil {
  47. t.Fatalf("Deleting table: %v", err)
  48. }
  49. if got, want := list(), []string{"mytable"}; !reflect.DeepEqual(got, want) {
  50. t.Errorf("adminClient.Tables returned %#v, want %#v", got, want)
  51. }
  52. }