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  }