// Verifies that share networks list can be called with query parameters func TestPaginatedListDetail(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() MockFilteredListResponse(t) options := &sharenetworks.ListOpts{ Offset: 0, Limit: 1, } count := 0 err := sharenetworks.ListDetail(client.ServiceClient(), options).EachPage(func(page pagination.Page) (bool, error) { count++ _, err := sharenetworks.ExtractShareNetworks(page) if err != nil { t.Errorf("Failed to extract share networks: %v", err) return false, err } return true, nil }) th.AssertNoErr(t, err) th.AssertEquals(t, count, 3) }
func TestShareNetworkListDetail(t *testing.T) { client, err := clients.NewSharedFileSystemV2Client() if err != nil { t.Fatalf("Unable to create a shared file system client: %v", err) } allPages, err := sharenetworks.ListDetail(client, sharenetworks.ListOpts{}).AllPages() if err != nil { t.Fatalf("Unable to retrieve share networks: %v", err) } allShareNetworks, err := sharenetworks.ExtractShareNetworks(allPages) if err != nil { t.Fatalf("Unable to extract share networks: %v", err) } for _, shareNetwork := range allShareNetworks { PrintShareNetwork(t, &shareNetwork) } }
func TestShareNetworkListPagination(t *testing.T) { client, err := clients.NewSharedFileSystemV2Client() if err != nil { t.Fatalf("Unable to create a shared file system client: %v", err) } shareNetwork, err := CreateShareNetwork(t, client) if err != nil { t.Fatalf("Unable to create share network: %v", err) } defer DeleteShareNetwork(t, client, shareNetwork) shareNetwork, err = CreateShareNetwork(t, client) if err != nil { t.Fatalf("Unable to create share network: %v", err) } defer DeleteShareNetwork(t, client, shareNetwork) count := 0 err = sharenetworks.ListDetail(client, sharenetworks.ListOpts{Offset: 0, Limit: 1}).EachPage(func(page pagination.Page) (bool, error) { count++ _, err := sharenetworks.ExtractShareNetworks(page) if err != nil { t.Fatalf("Failed to extract share networks: %v", err) return false, err } return true, nil }) if err != nil { t.Fatalf("Unable to retrieve share networks: %v", err) } if count < 2 { t.Fatal("Expected to get at least 2 pages") } }
// The test creates 2 shared networks and verifies that only the one(s) with // a particular name are being listed func TestShareNetworkListFiltering(t *testing.T) { client, err := clients.NewSharedFileSystemV2Client() if err != nil { t.Fatalf("Unable to create a shared file system client: %v", err) } shareNetwork, err := CreateShareNetwork(t, client) if err != nil { t.Fatalf("Unable to create share network: %v", err) } defer DeleteShareNetwork(t, client, shareNetwork) shareNetwork, err = CreateShareNetwork(t, client) if err != nil { t.Fatalf("Unable to create share network: %v", err) } defer DeleteShareNetwork(t, client, shareNetwork) options := sharenetworks.ListOpts{ Name: shareNetwork.Name, } allPages, err := sharenetworks.ListDetail(client, options).AllPages() if err != nil { t.Fatalf("Unable to retrieve share networks: %v", err) } allShareNetworks, err := sharenetworks.ExtractShareNetworks(allPages) if err != nil { t.Fatalf("Unable to extract share networks: %v", err) } for _, listedShareNetwork := range allShareNetworks { if listedShareNetwork.Name != shareNetwork.Name { t.Fatalf("The name of the share network was expected to be %s", shareNetwork.Name) } PrintShareNetwork(t, &listedShareNetwork) } }
// Verifies that share networks can be listed correctly func TestListDetail(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() MockListResponse(t) allPages, err := sharenetworks.ListDetail(client.ServiceClient(), &sharenetworks.ListOpts{}).AllPages() th.AssertNoErr(t, err) actual, err := sharenetworks.ExtractShareNetworks(allPages) th.AssertNoErr(t, err) var nilTime time.Time expected := []sharenetworks.ShareNetwork{ { ID: "32763294-e3d4-456a-998d-60047677c2fb", Name: "net_my1", CreatedAt: gophercloud.JSONRFC3339MilliNoZ(time.Date(2015, 9, 4, 14, 57, 13, 0, time.UTC)), Description: "descr", NetworkType: "", CIDR: "", NovaNetID: "", NeutronNetID: "998b42ee-2cee-4d36-8b95-67b5ca1f2109", NeutronSubnetID: "53482b62-2c84-4a53-b6ab-30d9d9800d06", IPVersion: 0, SegmentationID: 0, UpdatedAt: gophercloud.JSONRFC3339MilliNoZ(nilTime), ProjectID: "16e1ab15c35a457e9c2b2aa189f544e1", }, { ID: "713df749-aac0-4a54-af52-10f6c991e80c", Name: "net_my", CreatedAt: gophercloud.JSONRFC3339MilliNoZ(time.Date(2015, 9, 4, 14, 54, 25, 0, time.UTC)), Description: "desecr", NetworkType: "", CIDR: "", NovaNetID: "", NeutronNetID: "998b42ee-2cee-4d36-8b95-67b5ca1f2109", NeutronSubnetID: "53482b62-2c84-4a53-b6ab-30d9d9800d06", IPVersion: 0, SegmentationID: 0, UpdatedAt: gophercloud.JSONRFC3339MilliNoZ(nilTime), ProjectID: "16e1ab15c35a457e9c2b2aa189f544e1", }, { ID: "fa158a3d-6d9f-4187-9ca5-abbb82646eb2", Name: "", CreatedAt: gophercloud.JSONRFC3339MilliNoZ(time.Date(2015, 9, 4, 14, 51, 41, 0, time.UTC)), Description: "", NetworkType: "", CIDR: "", NovaNetID: "", NeutronNetID: "", NeutronSubnetID: "", IPVersion: 0, SegmentationID: 0, UpdatedAt: gophercloud.JSONRFC3339MilliNoZ(nilTime), ProjectID: "16e1ab15c35a457e9c2b2aa189f544e1", }, } th.CheckDeepEquals(t, expected, actual) }