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 }