github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/identity/v3/federation/providers/testing/requests_test.go (about)

     1  package testing
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  	"testing"
     7  
     8  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/identity/v3/federation/providers"
     9  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    10  	fake "github.com/opentelekomcloud/gophertelekomcloud/testhelper/client"
    11  )
    12  
    13  func TestProviderCreateRequest(t *testing.T) {
    14  	th.SetupHTTP()
    15  	defer th.TeardownHTTP()
    16  
    17  	th.Mux.HandleFunc(providerURI, func(w http.ResponseWriter, r *http.Request) {
    18  		th.TestMethod(t, r, "PUT")
    19  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
    20  		th.TestHeader(t, r, "Content-Type", "application/json")
    21  		th.TestHeader(t, r, "Accept", "application/json")
    22  		w.WriteHeader(201)
    23  		_, _ = fmt.Fprint(w, providerResponse)
    24  	})
    25  
    26  	opts := providers.CreateOpts{
    27  		ID:          providerID,
    28  		Description: providerDescription,
    29  		Enabled:     true,
    30  	}
    31  	p, err := providers.Create(fake.ServiceClient(), opts).Extract()
    32  	th.AssertNoErr(t, err)
    33  	th.AssertEquals(t, opts.ID, p.ID)
    34  	th.AssertEquals(t, opts.Enabled, p.Enabled)
    35  	th.AssertEquals(t, 0, len(p.RemoteIDs))
    36  }
    37  
    38  func TestProviderGetRequest(t *testing.T) {
    39  	th.SetupHTTP()
    40  	defer th.TeardownHTTP()
    41  
    42  	th.Mux.HandleFunc(providerURI, func(w http.ResponseWriter, r *http.Request) {
    43  		th.TestMethod(t, r, "GET")
    44  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
    45  		th.TestHeader(t, r, "Accept", "application/json")
    46  		_, _ = fmt.Fprint(w, providerResponse)
    47  	})
    48  
    49  	p, err := providers.Get(fake.ServiceClient(), providerID).Extract()
    50  	th.AssertNoErr(t, err)
    51  	th.AssertEquals(t, true, p.Enabled)
    52  	th.AssertEquals(t, providerDescription, p.Description)
    53  }
    54  
    55  func TestProviderListRequest(t *testing.T) {
    56  	th.SetupHTTP()
    57  	defer th.TeardownHTTP()
    58  
    59  	th.Mux.HandleFunc(listURI, func(w http.ResponseWriter, r *http.Request) {
    60  		th.TestMethod(t, r, "GET")
    61  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
    62  
    63  		w.Header().Add("Content-Type", "application/json")
    64  		_, _ = fmt.Fprint(w, providerListResponse)
    65  	})
    66  
    67  	pages, err := providers.List(fake.ServiceClient()).AllPages()
    68  	th.AssertNoErr(t, err)
    69  
    70  	providerList, err := providers.ExtractProviders(pages)
    71  	th.AssertNoErr(t, err)
    72  	th.AssertEquals(t, 2, len(providerList))
    73  }
    74  
    75  func TestProviderUpdateRequest(t *testing.T) {
    76  	th.SetupHTTP()
    77  	defer th.TeardownHTTP()
    78  
    79  	th.Mux.HandleFunc(providerURI, func(w http.ResponseWriter, r *http.Request) {
    80  		th.TestMethod(t, r, "PATCH")
    81  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
    82  
    83  		w.Header().Add("Content-Type", "application/json")
    84  		_, _ = fmt.Fprint(w, updatedProviderResposnse)
    85  	})
    86  
    87  	iFalse := false
    88  	opts := providers.UpdateOpts{
    89  		Enabled: &iFalse,
    90  	}
    91  	p, err := providers.Update(fake.ServiceClient(), providerID, opts).Extract()
    92  
    93  	th.AssertNoErr(t, err)
    94  	th.AssertEquals(t, iFalse, p.Enabled)
    95  }
    96  
    97  func TestProviderDeleteRequest(t *testing.T) {
    98  	th.SetupHTTP()
    99  	defer th.TeardownHTTP()
   100  
   101  	th.Mux.HandleFunc(providerURI, func(w http.ResponseWriter, r *http.Request) {
   102  		th.TestMethod(t, r, "DELETE")
   103  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   104  		w.WriteHeader(204)
   105  	})
   106  
   107  	err := providers.Delete(fake.ServiceClient(), providerID).ExtractErr()
   108  	th.AssertNoErr(t, err)
   109  }