github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/networking/v2/extensions/bgp/peers/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/bgp/peers" 11 "github.com/vnpaycloud-console/gophercloud/v2/pagination" 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/bgp-peers", 20 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 fmt.Fprint(w, ListBGPPeersResult) 27 }) 28 count := 0 29 30 err := peers.List(fake.ServiceClient()).EachPage( 31 context.TODO(), 32 func(_ context.Context, page pagination.Page) (bool, error) { 33 count++ 34 actual, err := peers.ExtractBGPPeers(page) 35 36 if err != nil { 37 t.Errorf("Failed to extract BGP Peers: %v", err) 38 return false, nil 39 } 40 expected := []peers.BGPPeer{BGPPeer1, BGPPeer2} 41 th.CheckDeepEquals(t, expected, actual) 42 return true, nil 43 }) 44 th.AssertNoErr(t, err) 45 } 46 47 func TestGet(t *testing.T) { 48 th.SetupHTTP() 49 defer th.TeardownHTTP() 50 51 bgpPeerID := "afacc0e8-6b66-44e4-be53-a1ef16033ceb" 52 th.Mux.HandleFunc("/v2.0/bgp-peers/"+bgpPeerID, func(w http.ResponseWriter, r *http.Request) { 53 th.TestMethod(t, r, "GET") 54 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 55 w.Header().Add("Content-Type", "application/json") 56 w.WriteHeader(http.StatusOK) 57 fmt.Fprint(w, GetBGPPeerResult) 58 }) 59 60 s, err := peers.Get(context.TODO(), fake.ServiceClient(), bgpPeerID).Extract() 61 th.AssertNoErr(t, err) 62 th.CheckDeepEquals(t, *s, BGPPeer1) 63 } 64 65 func TestCreate(t *testing.T) { 66 th.SetupHTTP() 67 defer th.TeardownHTTP() 68 69 th.Mux.HandleFunc("/v2.0/bgp-peers", func(w http.ResponseWriter, r *http.Request) { 70 th.TestMethod(t, r, "POST") 71 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 72 th.TestHeader(t, r, "Content-Type", "application/json") 73 th.TestHeader(t, r, "Accept", "application/json") 74 th.TestJSONRequest(t, r, CreateRequest) 75 w.Header().Add("Content-Type", "application/json") 76 w.WriteHeader(http.StatusCreated) 77 fmt.Fprint(w, CreateResponse) 78 }) 79 80 var opts peers.CreateOpts 81 opts.AuthType = "md5" 82 opts.Password = "notSoStrong" 83 opts.RemoteAS = 20000 84 opts.Name = "gophercloud-testing-bgp-peer" 85 opts.PeerIP = "192.168.0.1" 86 87 r, err := peers.Create(context.TODO(), fake.ServiceClient(), opts).Extract() 88 th.AssertNoErr(t, err) 89 th.AssertEquals(t, r.AuthType, opts.AuthType) 90 th.AssertEquals(t, r.RemoteAS, opts.RemoteAS) 91 th.AssertEquals(t, r.PeerIP, opts.PeerIP) 92 } 93 94 func TestDelete(t *testing.T) { 95 bgpPeerID := "afacc0e8-6b66-44e4-be53-a1ef16033ceb" 96 th.SetupHTTP() 97 defer th.TeardownHTTP() 98 99 th.Mux.HandleFunc("/v2.0/bgp-peers/"+bgpPeerID, func(w http.ResponseWriter, r *http.Request) { 100 th.TestMethod(t, r, "DELETE") 101 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 102 th.TestHeader(t, r, "Accept", "application/json") 103 104 w.Header().Add("Content-Type", "application/json") 105 w.WriteHeader(http.StatusNoContent) 106 }) 107 108 err := peers.Delete(context.TODO(), fake.ServiceClient(), bgpPeerID).ExtractErr() 109 th.AssertNoErr(t, err) 110 } 111 112 func TestUpdate(t *testing.T) { 113 bgpPeerID := "afacc0e8-6b66-44e4-be53-a1ef16033ceb" 114 th.SetupHTTP() 115 defer th.TeardownHTTP() 116 117 th.Mux.HandleFunc("/v2.0/bgp-peers/"+bgpPeerID, func(w http.ResponseWriter, r *http.Request) { 118 th.TestMethod(t, r, "PUT") 119 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 120 th.TestHeader(t, r, "Content-Type", "application/json") 121 th.TestHeader(t, r, "Accept", "application/json") 122 th.TestJSONRequest(t, r, UpdateBGPPeerRequest) 123 124 w.Header().Add("Content-Type", "application/json") 125 w.WriteHeader(http.StatusOK) 126 127 fmt.Fprint(w, UpdateBGPPeerResponse) 128 }) 129 130 var opts peers.UpdateOpts 131 opts.Name = "test-rename-bgp-peer" 132 opts.Password = "superStrong" 133 134 r, err := peers.Update(context.TODO(), fake.ServiceClient(), bgpPeerID, opts).Extract() 135 th.AssertNoErr(t, err) 136 th.AssertEquals(t, r.Name, opts.Name) 137 }