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  }