func TestVolumeTypesList(t *testing.T) { client, err := clients.NewBlockStorageV1Client() if err != nil { t.Fatalf("Unable to create a blockstorage client: %v", err) } allPages, err := volumetypes.List(client).AllPages() if err != nil { t.Fatalf("Unable to retrieve volume types: %v", err) } allVolumeTypes, err := volumetypes.ExtractVolumeTypes(allPages) if err != nil { t.Fatalf("Unable to extract volume types: %v", err) } for _, volumeType := range allVolumeTypes { PrintVolumeType(t, &volumeType) } }
func TestList(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() MockListResponse(t) count := 0 volumetypes.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) { count++ actual, err := volumetypes.ExtractVolumeTypes(page) if err != nil { t.Errorf("Failed to extract volume types: %v", err) return false, err } expected := []volumetypes.VolumeType{ { ID: "289da7f8-6440-407c-9fb4-7db01ec49164", Name: "vol-type-001", ExtraSpecs: map[string]interface{}{ "capabilities": "gpu", }, }, { ID: "96c3bda7-c82a-4f50-be73-ca7621794835", Name: "vol-type-002", ExtraSpecs: map[string]interface{}{}, }, } th.CheckDeepEquals(t, expected, actual) return true, nil }) if count != 1 { t.Errorf("Expected 1 page, got %d", count) } }