github.com/gophercloud/gophercloud@v1.11.0/openstack/networking/v2/extensions/mtu/testing/results_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/mtu" 10 "github.com/gophercloud/gophercloud/openstack/networking/v2/networks" 11 nettest "github.com/gophercloud/gophercloud/openstack/networking/v2/networks/testing" 12 th "github.com/gophercloud/gophercloud/testhelper" 13 ) 14 15 type NetworkMTU struct { 16 networks.Network 17 mtu.NetworkMTUExt 18 } 19 20 func TestList(t *testing.T) { 21 th.SetupHTTP() 22 defer th.TeardownHTTP() 23 24 th.Mux.HandleFunc("/v2.0/networks", func(w http.ResponseWriter, r *http.Request) { 25 th.TestMethod(t, r, "GET") 26 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 27 28 w.Header().Add("Content-Type", "application/json") 29 w.WriteHeader(http.StatusOK) 30 31 fmt.Fprintf(w, nettest.ListResponse) 32 }) 33 34 type NetworkWithMTUExt struct { 35 networks.Network 36 mtu.NetworkMTUExt 37 } 38 var actual []NetworkWithMTUExt 39 40 allPages, err := networks.List(fake.ServiceClient(), networks.ListOpts{}).AllPages() 41 th.AssertNoErr(t, err) 42 43 err = networks.ExtractNetworksInto(allPages, &actual) 44 th.AssertNoErr(t, err) 45 46 th.AssertEquals(t, "d32019d3-bc6e-4319-9c1d-6722fc136a22", actual[0].ID) 47 th.AssertEquals(t, 1500, actual[0].MTU) 48 } 49 50 func TestGet(t *testing.T) { 51 th.SetupHTTP() 52 defer th.TeardownHTTP() 53 54 th.Mux.HandleFunc("/v2.0/networks/d32019d3-bc6e-4319-9c1d-6722fc136a22", 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, nettest.GetResponse) 62 }) 63 64 var s NetworkMTU 65 66 err := networks.Get(fake.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22").ExtractInto(&s) 67 th.AssertNoErr(t, err) 68 69 th.AssertEquals(t, "d32019d3-bc6e-4319-9c1d-6722fc136a22", s.ID) 70 th.AssertEquals(t, 1500, s.MTU) 71 } 72 73 func TestCreate(t *testing.T) { 74 th.SetupHTTP() 75 defer th.TeardownHTTP() 76 77 th.Mux.HandleFunc("/v2.0/networks", func(w http.ResponseWriter, r *http.Request) { 78 th.TestMethod(t, r, "POST") 79 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 80 th.TestHeader(t, r, "Content-Type", "application/json") 81 th.TestHeader(t, r, "Accept", "application/json") 82 th.TestJSONRequest(t, r, CreateRequest) 83 84 w.Header().Add("Content-Type", "application/json") 85 w.WriteHeader(http.StatusCreated) 86 87 fmt.Fprintf(w, CreateResponse) 88 }) 89 90 iTrue := true 91 networkCreateOpts := networks.CreateOpts{ 92 Name: "private", 93 AdminStateUp: &iTrue, 94 } 95 96 mtuCreateOpts := mtu.CreateOptsExt{ 97 CreateOptsBuilder: &networkCreateOpts, 98 MTU: 1500, 99 } 100 101 var s NetworkMTU 102 103 err := networks.Create(fake.ServiceClient(), mtuCreateOpts).ExtractInto(&s) 104 th.AssertNoErr(t, err) 105 106 th.AssertEquals(t, "db193ab3-96e3-4cb3-8fc5-05f4296d0324", s.ID) 107 th.AssertEquals(t, iTrue, s.AdminStateUp) 108 th.AssertEquals(t, 1500, s.MTU) 109 } 110 111 func TestUpdate(t *testing.T) { 112 th.SetupHTTP() 113 defer th.TeardownHTTP() 114 115 th.Mux.HandleFunc("/v2.0/networks/4e8e5957-649f-477b-9e5b-f1f75b21c03c", func(w http.ResponseWriter, r *http.Request) { 116 th.TestMethod(t, r, "PUT") 117 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 118 th.TestHeader(t, r, "Content-Type", "application/json") 119 th.TestHeader(t, r, "Accept", "application/json") 120 th.TestJSONRequest(t, r, UpdateRequest) 121 122 w.Header().Add("Content-Type", "application/json") 123 w.WriteHeader(http.StatusOK) 124 125 fmt.Fprintf(w, UpdateResponse) 126 }) 127 128 iTrue := true 129 iFalse := false 130 name := "new_network_name" 131 networkUpdateOpts := networks.UpdateOpts{ 132 Name: &name, 133 AdminStateUp: &iFalse, 134 Shared: &iTrue, 135 } 136 137 mtuUpdateOpts := mtu.UpdateOptsExt{ 138 UpdateOptsBuilder: &networkUpdateOpts, 139 MTU: 1350, 140 } 141 142 var s NetworkMTU 143 144 err := networks.Update(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", mtuUpdateOpts).ExtractInto(&s) 145 th.AssertNoErr(t, err) 146 147 th.AssertEquals(t, "4e8e5957-649f-477b-9e5b-f1f75b21c03c", s.ID) 148 th.AssertEquals(t, "new_network_name", s.Name) 149 th.AssertEquals(t, iFalse, s.AdminStateUp) 150 th.AssertEquals(t, iTrue, s.Shared) 151 th.AssertEquals(t, 1350, s.MTU) 152 }