github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/identity/v3/groups_test.go (about) 1 //go:build acceptance 2 // +build acceptance 3 4 package v3 5 6 import ( 7 "testing" 8 9 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 10 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools" 11 "github.com/opentelekomcloud/gophertelekomcloud/openstack/identity/v3/groups" 12 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 13 ) 14 15 func TestGroupCRUD(t *testing.T) { 16 client, err := clients.NewIdentityV3AdminClient() 17 th.AssertNoErr(t, err) 18 19 createOpts := groups.CreateOpts{ 20 Name: "testgroup", 21 DomainID: "default", 22 Extra: map[string]interface{}{ 23 "email": "testgroup@example.com", 24 }, 25 } 26 27 // Create Group in the default domain 28 group, err := CreateGroup(t, client, &createOpts) 29 th.AssertNoErr(t, err) 30 t.Cleanup(func() { 31 DeleteGroup(t, client, group.ID) 32 }) 33 34 tools.PrintResource(t, group) 35 tools.PrintResource(t, group.Extra) 36 37 updateOpts := groups.UpdateOpts{ 38 Description: "Test Users", 39 Extra: map[string]interface{}{ 40 "email": "thetestgroup@example.com", 41 }, 42 } 43 44 newGroup, err := groups.Update(client, group.ID, updateOpts).Extract() 45 th.AssertNoErr(t, err) 46 47 tools.PrintResource(t, newGroup) 48 tools.PrintResource(t, newGroup.Extra) 49 50 listOpts := groups.ListOpts{ 51 DomainID: "default", 52 } 53 54 // List all Groups in default domain 55 allPages, err := groups.List(client, listOpts).AllPages() 56 th.AssertNoErr(t, err) 57 58 allGroups, err := groups.ExtractGroups(allPages) 59 th.AssertNoErr(t, err) 60 61 for _, g := range allGroups { 62 tools.PrintResource(t, g) 63 tools.PrintResource(t, g.Extra) 64 } 65 66 // Get the recently created group by ID 67 p, err := groups.Get(client, group.ID).Extract() 68 th.AssertNoErr(t, err) 69 70 tools.PrintResource(t, p) 71 }