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  }