github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/networking/v2/extensions/vlantransparent/testing/requests_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/vlantransparent" 11 "github.com/vnpaycloud-console/gophercloud/v2/openstack/networking/v2/networks" 12 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 13 ) 14 15 func TestList(t *testing.T) { 16 th.SetupHTTP() 17 defer th.TeardownHTTP() 18 19 th.Mux.HandleFunc("/v2.0/networks", func(w http.ResponseWriter, r *http.Request) { 20 th.TestMethod(t, r, "GET") 21 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 22 23 w.Header().Add("Content-Type", "application/json") 24 w.WriteHeader(http.StatusOK) 25 26 fmt.Fprint(w, NetworksVLANTransparentListResult) 27 }) 28 29 type networkVLANTransparentExt struct { 30 networks.Network 31 vlantransparent.TransparentExt 32 } 33 var actual []networkVLANTransparentExt 34 35 allPages, err := networks.List(fake.ServiceClient(), networks.ListOpts{}).AllPages(context.TODO()) 36 th.AssertNoErr(t, err) 37 38 err = networks.ExtractNetworksInto(allPages, &actual) 39 th.AssertNoErr(t, err) 40 41 th.AssertEquals(t, "db193ab3-96e3-4cb3-8fc5-05f4296d0324", actual[0].ID) 42 th.AssertEquals(t, "private", actual[0].Name) 43 th.AssertEquals(t, true, actual[0].AdminStateUp) 44 th.AssertEquals(t, "ACTIVE", actual[0].Status) 45 th.AssertDeepEquals(t, []string{"08eae331-0402-425a-923c-34f7cfe39c1b"}, actual[0].Subnets) 46 th.AssertEquals(t, "26a7980765d0414dbc1fc1f88cdb7e6e", actual[0].TenantID) 47 th.AssertEquals(t, false, actual[0].Shared) 48 th.AssertEquals(t, true, actual[0].VLANTransparent) 49 } 50 51 func TestGet(t *testing.T) { 52 th.SetupHTTP() 53 defer th.TeardownHTTP() 54 55 th.Mux.HandleFunc("/v2.0/networks/db193ab3-96e3-4cb3-8fc5-05f4296d0324", func(w http.ResponseWriter, r *http.Request) { 56 th.TestMethod(t, r, "GET") 57 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 58 59 w.Header().Add("Content-Type", "application/json") 60 w.WriteHeader(http.StatusOK) 61 62 fmt.Fprint(w, NetworksVLANTransparentGetResult) 63 }) 64 65 var s struct { 66 networks.Network 67 vlantransparent.TransparentExt 68 } 69 70 err := networks.Get(context.TODO(), fake.ServiceClient(), "db193ab3-96e3-4cb3-8fc5-05f4296d0324").ExtractInto(&s) 71 th.AssertNoErr(t, err) 72 73 th.AssertEquals(t, "db193ab3-96e3-4cb3-8fc5-05f4296d0324", s.ID) 74 th.AssertEquals(t, "private", s.Name) 75 th.AssertEquals(t, true, s.AdminStateUp) 76 th.AssertEquals(t, "ACTIVE", s.Status) 77 th.AssertDeepEquals(t, []string{"08eae331-0402-425a-923c-34f7cfe39c1b"}, s.Subnets) 78 th.AssertEquals(t, "26a7980765d0414dbc1fc1f88cdb7e6e", s.TenantID) 79 th.AssertEquals(t, false, s.Shared) 80 th.AssertEquals(t, true, s.VLANTransparent) 81 } 82 83 func TestCreate(t *testing.T) { 84 th.SetupHTTP() 85 defer th.TeardownHTTP() 86 87 th.Mux.HandleFunc("/v2.0/networks", func(w http.ResponseWriter, r *http.Request) { 88 th.TestMethod(t, r, "POST") 89 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 90 th.TestHeader(t, r, "Content-Type", "application/json") 91 th.TestHeader(t, r, "Accept", "application/json") 92 th.TestJSONRequest(t, r, NetworksVLANTransparentCreateRequest) 93 94 w.Header().Add("Content-Type", "application/json") 95 w.WriteHeader(http.StatusCreated) 96 97 fmt.Fprint(w, NetworksVLANTransparentCreateResult) 98 }) 99 100 iTrue := true 101 networkCreateOpts := networks.CreateOpts{ 102 Name: "private", 103 AdminStateUp: &iTrue, 104 } 105 vlanTransparentCreateOpts := vlantransparent.CreateOptsExt{ 106 CreateOptsBuilder: &networkCreateOpts, 107 VLANTransparent: &iTrue, 108 } 109 110 var s struct { 111 networks.Network 112 vlantransparent.TransparentExt 113 } 114 115 err := networks.Create(context.TODO(), fake.ServiceClient(), vlanTransparentCreateOpts).ExtractInto(&s) 116 th.AssertNoErr(t, err) 117 118 th.AssertEquals(t, "db193ab3-96e3-4cb3-8fc5-05f4296d0324", s.ID) 119 th.AssertEquals(t, "private", s.Name) 120 th.AssertEquals(t, true, s.AdminStateUp) 121 th.AssertEquals(t, "ACTIVE", s.Status) 122 th.AssertDeepEquals(t, []string{"08eae331-0402-425a-923c-34f7cfe39c1b"}, s.Subnets) 123 th.AssertEquals(t, "26a7980765d0414dbc1fc1f88cdb7e6e", s.TenantID) 124 th.AssertEquals(t, false, s.Shared) 125 th.AssertEquals(t, true, s.VLANTransparent) 126 } 127 128 func TestUpdate(t *testing.T) { 129 th.SetupHTTP() 130 defer th.TeardownHTTP() 131 132 th.Mux.HandleFunc("/v2.0/networks/4e8e5957-649f-477b-9e5b-f1f75b21c03c", func(w http.ResponseWriter, r *http.Request) { 133 th.TestMethod(t, r, "PUT") 134 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 135 th.TestHeader(t, r, "Content-Type", "application/json") 136 th.TestHeader(t, r, "Accept", "application/json") 137 th.TestJSONRequest(t, r, NetworksVLANTransparentUpdateRequest) 138 139 w.Header().Add("Content-Type", "application/json") 140 w.WriteHeader(http.StatusOK) 141 142 fmt.Fprint(w, NetworksVLANTransparentUpdateResult) 143 }) 144 145 iFalse := false 146 name := "new_network_name" 147 networkUpdateOpts := networks.UpdateOpts{ 148 Name: &name, 149 AdminStateUp: &iFalse, 150 } 151 152 vlanTransparentUpdateOpts := vlantransparent.UpdateOptsExt{ 153 UpdateOptsBuilder: &networkUpdateOpts, 154 VLANTransparent: &iFalse, 155 } 156 157 var s struct { 158 networks.Network 159 vlantransparent.TransparentExt 160 } 161 162 err := networks.Update(context.TODO(), fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", vlanTransparentUpdateOpts).ExtractInto(&s) 163 th.AssertNoErr(t, err) 164 165 th.AssertEquals(t, "db193ab3-96e3-4cb3-8fc5-05f4296d0324", s.ID) 166 th.AssertEquals(t, "new_network_name", s.Name) 167 th.AssertEquals(t, false, s.AdminStateUp) 168 th.AssertEquals(t, "ACTIVE", s.Status) 169 th.AssertDeepEquals(t, []string{"08eae331-0402-425a-923c-34f7cfe39c1b"}, s.Subnets) 170 th.AssertEquals(t, "26a7980765d0414dbc1fc1f88cdb7e6e", s.TenantID) 171 th.AssertEquals(t, false, s.Shared) 172 th.AssertEquals(t, false, s.VLANTransparent) 173 }