github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/db/v1/users/testing/requests_test.go (about) 1 package testing 2 3 import ( 4 "context" 5 "testing" 6 7 db "github.com/vnpaycloud-console/gophercloud/v2/openstack/db/v1/databases" 8 "github.com/vnpaycloud-console/gophercloud/v2/openstack/db/v1/users" 9 "github.com/vnpaycloud-console/gophercloud/v2/pagination" 10 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 11 fake "github.com/vnpaycloud-console/gophercloud/v2/testhelper/client" 12 ) 13 14 func TestCreate(t *testing.T) { 15 th.SetupHTTP() 16 defer th.TeardownHTTP() 17 HandleCreate(t) 18 19 opts := users.BatchCreateOpts{ 20 { 21 Databases: db.BatchCreateOpts{ 22 db.CreateOpts{Name: "databaseA"}, 23 }, 24 Name: "dbuser3", 25 Password: "secretsecret", 26 }, 27 { 28 Databases: db.BatchCreateOpts{ 29 {Name: "databaseB"}, 30 {Name: "databaseC"}, 31 }, 32 Name: "dbuser4", 33 Password: "secretsecret", 34 }, 35 } 36 37 res := users.Create(context.TODO(), fake.ServiceClient(), instanceID, opts) 38 th.AssertNoErr(t, res.Err) 39 } 40 41 func TestUserList(t *testing.T) { 42 th.SetupHTTP() 43 defer th.TeardownHTTP() 44 HandleList(t) 45 46 expectedUsers := []users.User{ 47 { 48 Databases: []db.Database{ 49 {Name: "databaseA"}, 50 }, 51 Name: "dbuser3", 52 }, 53 { 54 Databases: []db.Database{ 55 {Name: "databaseB"}, 56 {Name: "databaseC"}, 57 }, 58 Name: "dbuser4", 59 }, 60 } 61 62 pages := 0 63 err := users.List(fake.ServiceClient(), instanceID).EachPage(context.TODO(), func(_ context.Context, page pagination.Page) (bool, error) { 64 pages++ 65 66 actual, err := users.ExtractUsers(page) 67 if err != nil { 68 return false, err 69 } 70 71 th.CheckDeepEquals(t, expectedUsers, actual) 72 return true, nil 73 }) 74 75 th.AssertNoErr(t, err) 76 th.AssertEquals(t, 1, pages) 77 } 78 79 func TestDelete(t *testing.T) { 80 th.SetupHTTP() 81 defer th.TeardownHTTP() 82 HandleDelete(t) 83 84 res := users.Delete(context.TODO(), fake.ServiceClient(), instanceID, "{userName}") 85 th.AssertNoErr(t, res.Err) 86 }