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