github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/identity/v3/service_test.go (about) 1 //go:build acceptance 2 // +build acceptance 3 4 package v3 5 6 import ( 7 "testing" 8 9 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 10 "github.com/gophercloud/gophercloud/internal/acceptance/tools" 11 "github.com/gophercloud/gophercloud/openstack/identity/v3/services" 12 th "github.com/gophercloud/gophercloud/testhelper" 13 ) 14 15 func TestServicesList(t *testing.T) { 16 clients.RequireAdmin(t) 17 18 client, err := clients.NewIdentityV3Client() 19 th.AssertNoErr(t, err) 20 21 listOpts := services.ListOpts{ 22 ServiceType: "identity", 23 } 24 25 allPages, err := services.List(client, listOpts).AllPages() 26 th.AssertNoErr(t, err) 27 28 allServices, err := services.ExtractServices(allPages) 29 th.AssertNoErr(t, err) 30 31 var found bool 32 for _, service := range allServices { 33 tools.PrintResource(t, service) 34 35 if service.Type == "identity" { 36 found = true 37 } 38 } 39 40 th.AssertEquals(t, found, true) 41 } 42 43 func TestServicesCRUD(t *testing.T) { 44 clients.RequireAdmin(t) 45 46 client, err := clients.NewIdentityV3Client() 47 th.AssertNoErr(t, err) 48 49 createOpts := services.CreateOpts{ 50 Type: "testing", 51 Extra: map[string]interface{}{ 52 "email": "testservice@example.com", 53 }, 54 } 55 56 // Create service in the default domain 57 service, err := CreateService(t, client, &createOpts) 58 th.AssertNoErr(t, err) 59 defer DeleteService(t, client, service.ID) 60 61 tools.PrintResource(t, service) 62 tools.PrintResource(t, service.Extra) 63 64 updateOpts := services.UpdateOpts{ 65 Type: "testing2", 66 Extra: map[string]interface{}{ 67 "description": "Test Users", 68 "email": "thetestservice@example.com", 69 }, 70 } 71 72 newService, err := services.Update(client, service.ID, updateOpts).Extract() 73 th.AssertNoErr(t, err) 74 75 tools.PrintResource(t, newService) 76 tools.PrintResource(t, newService.Extra) 77 78 th.AssertEquals(t, newService.Extra["description"], "Test Users") 79 }