github.com/gophercloud/gophercloud@v1.11.0/openstack/compute/v2/extensions/servergroups/testing/requests_test.go (about) 1 package testing 2 3 import ( 4 "testing" 5 6 "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/servergroups" 7 "github.com/gophercloud/gophercloud/pagination" 8 th "github.com/gophercloud/gophercloud/testhelper" 9 "github.com/gophercloud/gophercloud/testhelper/client" 10 ) 11 12 func TestList(t *testing.T) { 13 th.SetupHTTP() 14 defer th.TeardownHTTP() 15 HandleListSuccessfully(t) 16 17 count := 0 18 err := servergroups.List(client.ServiceClient(), &servergroups.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) { 19 count++ 20 actual, err := servergroups.ExtractServerGroups(page) 21 th.AssertNoErr(t, err) 22 th.CheckDeepEquals(t, ExpectedServerGroupSlice, actual) 23 24 return true, nil 25 }) 26 th.AssertNoErr(t, err) 27 th.CheckEquals(t, 1, count) 28 } 29 30 func TestCreate(t *testing.T) { 31 th.SetupHTTP() 32 defer th.TeardownHTTP() 33 HandleCreateSuccessfully(t) 34 35 actual, err := servergroups.Create(client.ServiceClient(), servergroups.CreateOpts{ 36 Name: "test", 37 Policies: []string{"anti-affinity"}, 38 }).Extract() 39 th.AssertNoErr(t, err) 40 th.CheckDeepEquals(t, &CreatedServerGroup, actual) 41 } 42 43 func TestCreateMicroversion(t *testing.T) { 44 th.SetupHTTP() 45 defer th.TeardownHTTP() 46 HandleCreateMicroversionSuccessfully(t) 47 48 policy := "anti-affinity" 49 rules := servergroups.Rules{ 50 MaxServerPerHost: 3, 51 } 52 CreatedServerGroup.Policy = &policy 53 CreatedServerGroup.Rules = &rules 54 55 result := servergroups.Create(client.ServiceClient(), servergroups.CreateOpts{ 56 Name: "test", 57 Policies: []string{"anti-affinity"}, 58 Policy: policy, 59 Rules: &rules, 60 }) 61 62 actual, err := result.Extract() 63 th.AssertNoErr(t, err) 64 th.CheckDeepEquals(t, &CreatedServerGroup, actual) 65 } 66 67 func TestGet(t *testing.T) { 68 th.SetupHTTP() 69 defer th.TeardownHTTP() 70 HandleGetSuccessfully(t) 71 72 actual, err := servergroups.Get(client.ServiceClient(), "4d8c3732-a248-40ed-bebc-539a6ffd25c0").Extract() 73 th.AssertNoErr(t, err) 74 th.CheckDeepEquals(t, &FirstServerGroup, actual) 75 } 76 77 func TestGetMicroversion(t *testing.T) { 78 th.SetupHTTP() 79 defer th.TeardownHTTP() 80 HandleGetMicroversionSuccessfully(t) 81 82 policy := "anti-affinity" 83 rules := servergroups.Rules{ 84 MaxServerPerHost: 3, 85 } 86 FirstServerGroup.Policy = &policy 87 FirstServerGroup.Rules = &rules 88 89 result := servergroups.Get(client.ServiceClient(), "4d8c3732-a248-40ed-bebc-539a6ffd25c0") 90 91 // Extract basic fields. 92 actual, err := result.Extract() 93 th.AssertNoErr(t, err) 94 th.CheckDeepEquals(t, &FirstServerGroup, actual) 95 } 96 97 func TestDelete(t *testing.T) { 98 th.SetupHTTP() 99 defer th.TeardownHTTP() 100 HandleDeleteSuccessfully(t) 101 102 err := servergroups.Delete(client.ServiceClient(), "616fb98f-46ca-475e-917e-2563e5a8cd19").ExtractErr() 103 th.AssertNoErr(t, err) 104 }