github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/networking/v2/extensions/vlantransparent/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/vlantransparent"
    11  	"github.com/vnpaycloud-console/gophercloud/v2/openstack/networking/v2/networks"
    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/networks", 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  
    26  		fmt.Fprint(w, NetworksVLANTransparentListResult)
    27  	})
    28  
    29  	type networkVLANTransparentExt struct {
    30  		networks.Network
    31  		vlantransparent.TransparentExt
    32  	}
    33  	var actual []networkVLANTransparentExt
    34  
    35  	allPages, err := networks.List(fake.ServiceClient(), networks.ListOpts{}).AllPages(context.TODO())
    36  	th.AssertNoErr(t, err)
    37  
    38  	err = networks.ExtractNetworksInto(allPages, &actual)
    39  	th.AssertNoErr(t, err)
    40  
    41  	th.AssertEquals(t, "db193ab3-96e3-4cb3-8fc5-05f4296d0324", actual[0].ID)
    42  	th.AssertEquals(t, "private", actual[0].Name)
    43  	th.AssertEquals(t, true, actual[0].AdminStateUp)
    44  	th.AssertEquals(t, "ACTIVE", actual[0].Status)
    45  	th.AssertDeepEquals(t, []string{"08eae331-0402-425a-923c-34f7cfe39c1b"}, actual[0].Subnets)
    46  	th.AssertEquals(t, "26a7980765d0414dbc1fc1f88cdb7e6e", actual[0].TenantID)
    47  	th.AssertEquals(t, false, actual[0].Shared)
    48  	th.AssertEquals(t, true, actual[0].VLANTransparent)
    49  }
    50  
    51  func TestGet(t *testing.T) {
    52  	th.SetupHTTP()
    53  	defer th.TeardownHTTP()
    54  
    55  	th.Mux.HandleFunc("/v2.0/networks/db193ab3-96e3-4cb3-8fc5-05f4296d0324", 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, NetworksVLANTransparentGetResult)
    63  	})
    64  
    65  	var s struct {
    66  		networks.Network
    67  		vlantransparent.TransparentExt
    68  	}
    69  
    70  	err := networks.Get(context.TODO(), fake.ServiceClient(), "db193ab3-96e3-4cb3-8fc5-05f4296d0324").ExtractInto(&s)
    71  	th.AssertNoErr(t, err)
    72  
    73  	th.AssertEquals(t, "db193ab3-96e3-4cb3-8fc5-05f4296d0324", s.ID)
    74  	th.AssertEquals(t, "private", s.Name)
    75  	th.AssertEquals(t, true, s.AdminStateUp)
    76  	th.AssertEquals(t, "ACTIVE", s.Status)
    77  	th.AssertDeepEquals(t, []string{"08eae331-0402-425a-923c-34f7cfe39c1b"}, s.Subnets)
    78  	th.AssertEquals(t, "26a7980765d0414dbc1fc1f88cdb7e6e", s.TenantID)
    79  	th.AssertEquals(t, false, s.Shared)
    80  	th.AssertEquals(t, true, s.VLANTransparent)
    81  }
    82  
    83  func TestCreate(t *testing.T) {
    84  	th.SetupHTTP()
    85  	defer th.TeardownHTTP()
    86  
    87  	th.Mux.HandleFunc("/v2.0/networks", func(w http.ResponseWriter, r *http.Request) {
    88  		th.TestMethod(t, r, "POST")
    89  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
    90  		th.TestHeader(t, r, "Content-Type", "application/json")
    91  		th.TestHeader(t, r, "Accept", "application/json")
    92  		th.TestJSONRequest(t, r, NetworksVLANTransparentCreateRequest)
    93  
    94  		w.Header().Add("Content-Type", "application/json")
    95  		w.WriteHeader(http.StatusCreated)
    96  
    97  		fmt.Fprint(w, NetworksVLANTransparentCreateResult)
    98  	})
    99  
   100  	iTrue := true
   101  	networkCreateOpts := networks.CreateOpts{
   102  		Name:         "private",
   103  		AdminStateUp: &iTrue,
   104  	}
   105  	vlanTransparentCreateOpts := vlantransparent.CreateOptsExt{
   106  		CreateOptsBuilder: &networkCreateOpts,
   107  		VLANTransparent:   &iTrue,
   108  	}
   109  
   110  	var s struct {
   111  		networks.Network
   112  		vlantransparent.TransparentExt
   113  	}
   114  
   115  	err := networks.Create(context.TODO(), fake.ServiceClient(), vlanTransparentCreateOpts).ExtractInto(&s)
   116  	th.AssertNoErr(t, err)
   117  
   118  	th.AssertEquals(t, "db193ab3-96e3-4cb3-8fc5-05f4296d0324", s.ID)
   119  	th.AssertEquals(t, "private", s.Name)
   120  	th.AssertEquals(t, true, s.AdminStateUp)
   121  	th.AssertEquals(t, "ACTIVE", s.Status)
   122  	th.AssertDeepEquals(t, []string{"08eae331-0402-425a-923c-34f7cfe39c1b"}, s.Subnets)
   123  	th.AssertEquals(t, "26a7980765d0414dbc1fc1f88cdb7e6e", s.TenantID)
   124  	th.AssertEquals(t, false, s.Shared)
   125  	th.AssertEquals(t, true, s.VLANTransparent)
   126  }
   127  
   128  func TestUpdate(t *testing.T) {
   129  	th.SetupHTTP()
   130  	defer th.TeardownHTTP()
   131  
   132  	th.Mux.HandleFunc("/v2.0/networks/4e8e5957-649f-477b-9e5b-f1f75b21c03c", func(w http.ResponseWriter, r *http.Request) {
   133  		th.TestMethod(t, r, "PUT")
   134  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   135  		th.TestHeader(t, r, "Content-Type", "application/json")
   136  		th.TestHeader(t, r, "Accept", "application/json")
   137  		th.TestJSONRequest(t, r, NetworksVLANTransparentUpdateRequest)
   138  
   139  		w.Header().Add("Content-Type", "application/json")
   140  		w.WriteHeader(http.StatusOK)
   141  
   142  		fmt.Fprint(w, NetworksVLANTransparentUpdateResult)
   143  	})
   144  
   145  	iFalse := false
   146  	name := "new_network_name"
   147  	networkUpdateOpts := networks.UpdateOpts{
   148  		Name:         &name,
   149  		AdminStateUp: &iFalse,
   150  	}
   151  
   152  	vlanTransparentUpdateOpts := vlantransparent.UpdateOptsExt{
   153  		UpdateOptsBuilder: &networkUpdateOpts,
   154  		VLANTransparent:   &iFalse,
   155  	}
   156  
   157  	var s struct {
   158  		networks.Network
   159  		vlantransparent.TransparentExt
   160  	}
   161  
   162  	err := networks.Update(context.TODO(), fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", vlanTransparentUpdateOpts).ExtractInto(&s)
   163  	th.AssertNoErr(t, err)
   164  
   165  	th.AssertEquals(t, "db193ab3-96e3-4cb3-8fc5-05f4296d0324", s.ID)
   166  	th.AssertEquals(t, "new_network_name", s.Name)
   167  	th.AssertEquals(t, false, s.AdminStateUp)
   168  	th.AssertEquals(t, "ACTIVE", s.Status)
   169  	th.AssertDeepEquals(t, []string{"08eae331-0402-425a-923c-34f7cfe39c1b"}, s.Subnets)
   170  	th.AssertEquals(t, "26a7980765d0414dbc1fc1f88cdb7e6e", s.TenantID)
   171  	th.AssertEquals(t, false, s.Shared)
   172  	th.AssertEquals(t, false, s.VLANTransparent)
   173  }