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  }