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  }