blob: 952f245eb7ee05e5c5cf3df92b54f0bbb7bf1771 [file] [log] [blame]
jrperritt3d966162016-06-06 14:08:54 -05001package testing
Jamie Hannafordaf4570f2015-02-12 13:33:25 +01002
3import (
4 "testing"
5
Jon Perritt27249f42016-02-18 10:35:59 -06006 db "github.com/gophercloud/gophercloud/openstack/db/v1/databases"
jrperritt3d966162016-06-06 14:08:54 -05007 "github.com/gophercloud/gophercloud/openstack/db/v1/users"
Jon Perritt27249f42016-02-18 10:35:59 -06008 "github.com/gophercloud/gophercloud/pagination"
9 th "github.com/gophercloud/gophercloud/testhelper"
10 fake "github.com/gophercloud/gophercloud/testhelper/client"
Jamie Hannafordd3a78ef2015-02-18 12:17:16 +010011)
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010012
13func TestCreate(t *testing.T) {
14 th.SetupHTTP()
15 defer th.TeardownHTTP()
Jamie Hannaford4a170282015-02-18 14:16:57 +010016 HandleCreate(t)
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010017
jrperritt3d966162016-06-06 14:08:54 -050018 opts := users.BatchCreateOpts{
19 {
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010020 Databases: db.BatchCreateOpts{
21 db.CreateOpts{Name: "databaseA"},
22 },
23 Name: "dbuser3",
24 Password: "secretsecret",
25 },
jrperritt3d966162016-06-06 14:08:54 -050026 {
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010027 Databases: db.BatchCreateOpts{
jrperritt3d966162016-06-06 14:08:54 -050028 {Name: "databaseB"},
29 {Name: "databaseC"},
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010030 },
31 Name: "dbuser4",
32 Password: "secretsecret",
33 },
34 }
35
jrperritt3d966162016-06-06 14:08:54 -050036 res := users.Create(fake.ServiceClient(), instanceID, opts)
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010037 th.AssertNoErr(t, res.Err)
38}
39
40func TestUserList(t *testing.T) {
41 th.SetupHTTP()
42 defer th.TeardownHTTP()
Jamie Hannaford4a170282015-02-18 14:16:57 +010043 HandleList(t)
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010044
jrperritt3d966162016-06-06 14:08:54 -050045 expectedUsers := []users.User{
46 {
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010047 Databases: []db.Database{
48 db.Database{Name: "databaseA"},
49 },
50 Name: "dbuser3",
51 },
jrperritt3d966162016-06-06 14:08:54 -050052 {
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010053 Databases: []db.Database{
jrperritt3d966162016-06-06 14:08:54 -050054 {Name: "databaseB"},
55 {Name: "databaseC"},
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010056 },
57 Name: "dbuser4",
58 },
59 }
60
61 pages := 0
jrperritt3d966162016-06-06 14:08:54 -050062 err := users.List(fake.ServiceClient(), instanceID).EachPage(func(page pagination.Page) (bool, error) {
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010063 pages++
64
jrperritt3d966162016-06-06 14:08:54 -050065 actual, err := users.ExtractUsers(page)
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010066 if err != nil {
67 return false, err
68 }
69
70 th.CheckDeepEquals(t, expectedUsers, actual)
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010071 return true, nil
72 })
73
74 th.AssertNoErr(t, err)
Jamie Hannafordd3a78ef2015-02-18 12:17:16 +010075 th.AssertEquals(t, 1, pages)
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010076}
77
Jamie Hannaford4a170282015-02-18 14:16:57 +010078func TestDelete(t *testing.T) {
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010079 th.SetupHTTP()
80 defer th.TeardownHTTP()
Jamie Hannaford4a170282015-02-18 14:16:57 +010081 HandleDelete(t)
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010082
jrperritt3d966162016-06-06 14:08:54 -050083 res := users.Delete(fake.ServiceClient(), instanceID, "{userName}")
Jamie Hannafordaf4570f2015-02-12 13:33:25 +010084 th.AssertNoErr(t, res.Err)
85}