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