1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
package testing
import (
"fmt"
"net/http"
"testing"
"github.com/gophercloud/gophercloud"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/networkipavailabilities"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
func TestList(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
th.Mux.HandleFunc("/v2.0/network-ip-availabilities", func(w http.ResponseWriter, r *http.Request) {
th.TestMethod(t, r, "GET")
th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
w.Header().Add("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, NetworkIPAvailabilityListResult)
})
count := 0
networkipavailabilities.List(fake.ServiceClient(), networkipavailabilities.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
actual, err := networkipavailabilities.ExtractNetworkIPAvailabilities(page)
if err != nil {
t.Errorf("Failed to extract network IP availabilities: %v", err)
return false, nil
}
expected := []networkipavailabilities.NetworkIPAvailability{
NetworkIPAvailability1,
NetworkIPAvailability2,
}
th.CheckDeepEquals(t, expected, actual)
return true, nil
})
if count != 1 {
t.Errorf("Expected 1 page, got %d", count)
}
}
func TestGet(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
th.Mux.HandleFunc("/v2.0/network-ip-availabilities/cf11ab78-2302-49fa-870f-851a08c7afb8", func(w http.ResponseWriter, r *http.Request) {
th.TestMethod(t, r, "GET")
th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
w.Header().Add("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, NetworkIPAvailabilityGetResult)
})
s, err := networkipavailabilities.Get(fake.ServiceClient(), "cf11ab78-2302-49fa-870f-851a08c7afb8").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, s.NetworkID, "cf11ab78-2302-49fa-870f-851a08c7afb8")
th.AssertEquals(t, s.NetworkName, "public")
th.AssertEquals(t, s.ProjectID, "424e7cf0243c468ca61732ba45973b3e")
th.AssertEquals(t, s.TenantID, "424e7cf0243c468ca61732ba45973b3e")
th.AssertEquals(t, s.TotalIPs, 253)
th.AssertEquals(t, s.UsedIPs, 3)
th.AssertDeepEquals(t, s.SubnetIPAvailabilities, []networkipavailabilities.SubnetIPAvailability{
{
SubnetID: "4afe6e5f-9649-40db-b18f-64c7ead942bd",
SubnetName: "public-subnet",
CIDR: "203.0.113.0/24",
IPVersion: int(gophercloud.IPv4),
TotalIPs: 253,
UsedIPs: 3,
},
})
}
|