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