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