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 }