github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/compute/v2/services/testing/requests_test.go (about) 1 package testing 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/vnpaycloud-console/gophercloud/v2/openstack/compute/v2/services" 8 "github.com/vnpaycloud-console/gophercloud/v2/pagination" 9 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 10 "github.com/vnpaycloud-console/gophercloud/v2/testhelper/client" 11 ) 12 13 func TestListServicesPre253(t *testing.T) { 14 th.SetupHTTP() 15 defer th.TeardownHTTP() 16 HandleListPre253Successfully(t) 17 18 pages := 0 19 err := services.List(client.ServiceClient(), nil).EachPage(context.TODO(), func(_ context.Context, page pagination.Page) (bool, error) { 20 pages++ 21 22 actual, err := services.ExtractServices(page) 23 if err != nil { 24 return false, err 25 } 26 27 if len(actual) != 4 { 28 t.Fatalf("Expected 4 services, got %d", len(actual)) 29 } 30 th.CheckDeepEquals(t, FirstFakeServicePre253, actual[0]) 31 th.CheckDeepEquals(t, SecondFakeServicePre253, actual[1]) 32 th.CheckDeepEquals(t, ThirdFakeServicePre253, actual[2]) 33 th.CheckDeepEquals(t, FourthFakeServicePre253, actual[3]) 34 35 return true, nil 36 }) 37 38 th.AssertNoErr(t, err) 39 40 if pages != 1 { 41 t.Errorf("Expected 1 page, saw %d", pages) 42 } 43 } 44 45 func TestListServices(t *testing.T) { 46 th.SetupHTTP() 47 defer th.TeardownHTTP() 48 HandleListSuccessfully(t) 49 50 pages := 0 51 opts := services.ListOpts{ 52 Binary: "fake-binary", 53 Host: "host123", 54 } 55 err := services.List(client.ServiceClient(), opts).EachPage(context.TODO(), func(_ context.Context, page pagination.Page) (bool, error) { 56 pages++ 57 58 actual, err := services.ExtractServices(page) 59 if err != nil { 60 return false, err 61 } 62 63 if len(actual) != 4 { 64 t.Fatalf("Expected 4 services, got %d", len(actual)) 65 } 66 th.CheckDeepEquals(t, FirstFakeService, actual[0]) 67 th.CheckDeepEquals(t, SecondFakeService, actual[1]) 68 th.CheckDeepEquals(t, ThirdFakeService, actual[2]) 69 th.CheckDeepEquals(t, FourthFakeService, actual[3]) 70 71 return true, nil 72 }) 73 74 th.AssertNoErr(t, err) 75 76 if pages != 1 { 77 t.Errorf("Expected 1 page, saw %d", pages) 78 } 79 } 80 81 func TestUpdateService(t *testing.T) { 82 th.SetupHTTP() 83 defer th.TeardownHTTP() 84 HandleUpdateSuccessfully(t) 85 86 client := client.ServiceClient() 87 actual, err := services.Update(context.TODO(), client, "fake-service-id", services.UpdateOpts{Status: services.ServiceDisabled}).Extract() 88 if err != nil { 89 t.Fatalf("Unexpected Update error: %v", err) 90 } 91 92 th.CheckDeepEquals(t, FakeServiceUpdateBody, *actual) 93 } 94 95 func TestDeleteService(t *testing.T) { 96 th.SetupHTTP() 97 defer th.TeardownHTTP() 98 HandleDeleteSuccessfully(t) 99 100 client := client.ServiceClient() 101 res := services.Delete(context.TODO(), client, "fake-service-id") 102 103 th.AssertNoErr(t, res.Err) 104 }