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