github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/blockstorage/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/blockstorage/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 TestListServices(t *testing.T) { 14 th.SetupHTTP() 15 defer th.TeardownHTTP() 16 HandleListSuccessfully(t) 17 18 pages := 0 19 err := services.List(client.ServiceClient(), services.ListOpts{}).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) != 3 { 28 t.Fatalf("Expected 3 services, got %d", len(actual)) 29 } 30 th.CheckDeepEquals(t, FirstFakeService, actual[0]) 31 th.CheckDeepEquals(t, SecondFakeService, actual[1]) 32 th.CheckDeepEquals(t, ThirdFakeService, actual[2]) 33 34 return true, nil 35 }) 36 37 th.AssertNoErr(t, err) 38 39 if pages != 1 { 40 t.Errorf("Expected 1 page, saw %d", pages) 41 } 42 }