github.com/gophercloud/gophercloud@v1.11.0/openstack/orchestration/v1/stackresources/testing/requests_test.go (about)

     1  package testing
     2  
     3  import (
     4  	"sort"
     5  	"testing"
     6  
     7  	"github.com/gophercloud/gophercloud/openstack/orchestration/v1/stackresources"
     8  	"github.com/gophercloud/gophercloud/pagination"
     9  	th "github.com/gophercloud/gophercloud/testhelper"
    10  	fake "github.com/gophercloud/gophercloud/testhelper/client"
    11  )
    12  
    13  func TestFindResources(t *testing.T) {
    14  	th.SetupHTTP()
    15  	defer th.TeardownHTTP()
    16  	HandleFindSuccessfully(t, FindOutput)
    17  
    18  	actual, err := stackresources.Find(fake.ServiceClient(), "hello_world").Extract()
    19  	th.AssertNoErr(t, err)
    20  
    21  	expected := FindExpected
    22  	th.AssertDeepEquals(t, expected, actual)
    23  }
    24  
    25  func TestListResources(t *testing.T) {
    26  	th.SetupHTTP()
    27  	defer th.TeardownHTTP()
    28  	HandleListSuccessfully(t, ListOutput)
    29  
    30  	count := 0
    31  	err := stackresources.List(fake.ServiceClient(), "hello_world", "49181cd6-169a-4130-9455-31185bbfc5bf", nil).EachPage(func(page pagination.Page) (bool, error) {
    32  		count++
    33  		actual, err := stackresources.ExtractResources(page)
    34  		th.AssertNoErr(t, err)
    35  
    36  		th.CheckDeepEquals(t, ListExpected, actual)
    37  
    38  		return true, nil
    39  	})
    40  	th.AssertNoErr(t, err)
    41  	th.CheckEquals(t, count, 1)
    42  }
    43  
    44  func TestGetResource(t *testing.T) {
    45  	th.SetupHTTP()
    46  	defer th.TeardownHTTP()
    47  	HandleGetSuccessfully(t, GetOutput)
    48  
    49  	actual, err := stackresources.Get(fake.ServiceClient(), "teststack", "0b1771bd-9336-4f2b-ae86-a80f971faf1e", "wordpress_instance").Extract()
    50  	th.AssertNoErr(t, err)
    51  
    52  	expected := GetExpected
    53  	th.AssertDeepEquals(t, expected, actual)
    54  }
    55  
    56  func TestResourceMetadata(t *testing.T) {
    57  	th.SetupHTTP()
    58  	defer th.TeardownHTTP()
    59  	HandleMetadataSuccessfully(t, MetadataOutput)
    60  
    61  	actual, err := stackresources.Metadata(fake.ServiceClient(), "teststack", "0b1771bd-9336-4f2b-ae86-a80f971faf1e", "wordpress_instance").Extract()
    62  	th.AssertNoErr(t, err)
    63  
    64  	expected := MetadataExpected
    65  	th.AssertDeepEquals(t, expected, actual)
    66  }
    67  
    68  func TestListResourceTypes(t *testing.T) {
    69  	th.SetupHTTP()
    70  	defer th.TeardownHTTP()
    71  	HandleListTypesSuccessfully(t, ListTypesOutput)
    72  
    73  	count := 0
    74  	err := stackresources.ListTypes(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
    75  		count++
    76  		actual, err := stackresources.ExtractResourceTypes(page)
    77  		th.AssertNoErr(t, err)
    78  
    79  		th.CheckDeepEquals(t, ListTypesExpected, actual)
    80  		// test if sorting works
    81  		sort.Sort(actual)
    82  		th.CheckDeepEquals(t, SortedListTypesExpected, actual)
    83  
    84  		return true, nil
    85  	})
    86  	th.AssertNoErr(t, err)
    87  	th.CheckEquals(t, 1, count)
    88  }
    89  
    90  func TestGetResourceSchema(t *testing.T) {
    91  	th.SetupHTTP()
    92  	defer th.TeardownHTTP()
    93  	HandleGetSchemaSuccessfully(t, GetSchemaOutput)
    94  
    95  	actual, err := stackresources.Schema(fake.ServiceClient(), "OS::Heat::AResourceName").Extract()
    96  	th.AssertNoErr(t, err)
    97  
    98  	expected := GetSchemaExpected
    99  	th.AssertDeepEquals(t, expected, actual)
   100  }
   101  
   102  func TestGetResourceTemplate(t *testing.T) {
   103  	th.SetupHTTP()
   104  	defer th.TeardownHTTP()
   105  	HandleGetTemplateSuccessfully(t, GetTemplateOutput)
   106  
   107  	actual, err := stackresources.Template(fake.ServiceClient(), "OS::Heat::AResourceName").Extract()
   108  	th.AssertNoErr(t, err)
   109  
   110  	expected := GetTemplateExpected
   111  	th.AssertDeepEquals(t, expected, string(actual))
   112  }
   113  
   114  func TestMarkUnhealthyResource(t *testing.T) {
   115  	th.SetupHTTP()
   116  	defer th.TeardownHTTP()
   117  	HandleMarkUnhealthySuccessfully(t)
   118  
   119  	markUnhealthyOpts := &stackresources.MarkUnhealthyOpts{
   120  		MarkUnhealthy:        true,
   121  		ResourceStatusReason: "Kubelet.Ready is Unknown more than 10 mins.",
   122  	}
   123  	err := stackresources.MarkUnhealthy(fake.ServiceClient(), "teststack", "0b1771bd-9336-4f2b-ae86-a80f971faf1e", "wordpress_instance", markUnhealthyOpts).ExtractErr()
   124  	th.AssertNoErr(t, err)
   125  }