github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/networking/v2/extensions/external/testing/results_test.go (about) 1 package testing 2 3 import ( 4 "context" 5 "fmt" 6 "net/http" 7 "testing" 8 9 fake "github.com/vnpaycloud-console/gophercloud/v2/openstack/networking/v2/common" 10 "github.com/vnpaycloud-console/gophercloud/v2/openstack/networking/v2/extensions/external" 11 "github.com/vnpaycloud-console/gophercloud/v2/openstack/networking/v2/networks" 12 nettest "github.com/vnpaycloud-console/gophercloud/v2/openstack/networking/v2/networks/testing" 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/networks", 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, nettest.ListResponse) 28 }) 29 30 type NetworkWithExternalExt struct { 31 networks.Network 32 external.NetworkExternalExt 33 } 34 var actual []NetworkWithExternalExt 35 36 allPages, err := networks.List(fake.ServiceClient(), networks.ListOpts{}).AllPages(context.TODO()) 37 th.AssertNoErr(t, err) 38 39 err = networks.ExtractNetworksInto(allPages, &actual) 40 th.AssertNoErr(t, err) 41 42 th.AssertEquals(t, "d32019d3-bc6e-4319-9c1d-6722fc136a22", actual[0].ID) 43 th.AssertEquals(t, true, actual[0].External) 44 } 45 46 func TestGet(t *testing.T) { 47 th.SetupHTTP() 48 defer th.TeardownHTTP() 49 50 th.Mux.HandleFunc("/v2.0/networks/d32019d3-bc6e-4319-9c1d-6722fc136a22", func(w http.ResponseWriter, r *http.Request) { 51 th.TestMethod(t, r, "GET") 52 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 53 54 w.Header().Add("Content-Type", "application/json") 55 w.WriteHeader(http.StatusOK) 56 57 fmt.Fprint(w, nettest.GetResponse) 58 }) 59 60 var s struct { 61 networks.Network 62 external.NetworkExternalExt 63 } 64 65 err := networks.Get(context.TODO(), fake.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22").ExtractInto(&s) 66 th.AssertNoErr(t, err) 67 68 th.AssertEquals(t, "d32019d3-bc6e-4319-9c1d-6722fc136a22", s.ID) 69 th.AssertEquals(t, true, s.External) 70 } 71 72 func TestCreate(t *testing.T) { 73 th.SetupHTTP() 74 defer th.TeardownHTTP() 75 76 th.Mux.HandleFunc("/v2.0/networks", func(w http.ResponseWriter, r *http.Request) { 77 th.TestMethod(t, r, "POST") 78 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 79 th.TestHeader(t, r, "Content-Type", "application/json") 80 th.TestHeader(t, r, "Accept", "application/json") 81 th.TestJSONRequest(t, r, CreateRequest) 82 83 w.Header().Add("Content-Type", "application/json") 84 w.WriteHeader(http.StatusCreated) 85 86 fmt.Fprint(w, CreateResponse) 87 }) 88 89 iTrue := true 90 iFalse := false 91 networkCreateOpts := networks.CreateOpts{ 92 Name: "private", 93 AdminStateUp: &iTrue, 94 } 95 96 externalCreateOpts := external.CreateOptsExt{ 97 CreateOptsBuilder: &networkCreateOpts, 98 External: &iFalse, 99 } 100 101 _, err := networks.Create(context.TODO(), fake.ServiceClient(), externalCreateOpts).Extract() 102 th.AssertNoErr(t, err) 103 104 th.AssertNoErr(t, err) 105 } 106 107 func TestUpdate(t *testing.T) { 108 th.SetupHTTP() 109 defer th.TeardownHTTP() 110 111 th.Mux.HandleFunc("/v2.0/networks/4e8e5957-649f-477b-9e5b-f1f75b21c03c", func(w http.ResponseWriter, r *http.Request) { 112 th.TestMethod(t, r, "PUT") 113 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 114 th.TestHeader(t, r, "Content-Type", "application/json") 115 th.TestHeader(t, r, "Accept", "application/json") 116 th.TestJSONRequest(t, r, UpdateRequest) 117 118 w.Header().Add("Content-Type", "application/json") 119 w.WriteHeader(http.StatusOK) 120 121 fmt.Fprint(w, UpdateResponse) 122 }) 123 124 iTrue := true 125 iFalse := false 126 name := "new_network_name" 127 networkUpdateOpts := networks.UpdateOpts{ 128 Name: &name, 129 AdminStateUp: &iFalse, 130 Shared: &iTrue, 131 } 132 133 externalUpdateOpts := external.UpdateOptsExt{ 134 UpdateOptsBuilder: &networkUpdateOpts, 135 External: &iFalse, 136 } 137 138 _, err := networks.Update(context.TODO(), fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", externalUpdateOpts).Extract() 139 th.AssertNoErr(t, err) 140 }