github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/identity/v3/federation/mappings/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/mappings" 9 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 10 fake "github.com/opentelekomcloud/gophertelekomcloud/testhelper/client" 11 ) 12 13 func TestMappingCreateRequest(t *testing.T) { 14 th.SetupHTTP() 15 defer th.TeardownHTTP() 16 17 th.Mux.HandleFunc(mappingURI, 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, mappingResponse) 24 }) 25 26 opts := mappings.CreateOpts{ 27 Rules: []mappings.RuleOpts{ 28 { 29 Local: []mappings.LocalRuleOpts{ 30 { 31 User: &mappings.UserOpts{ 32 Name: "{0}", 33 }, 34 Groups: "[\"admin\",\"manager\"]", 35 }, 36 }, 37 Remote: []mappings.RemoteRuleOpts{ 38 { 39 Type: "uid", 40 }, 41 }, 42 }, 43 }, 44 } 45 p, err := mappings.Create(fake.ServiceClient(), mappingID, opts).Extract() 46 th.AssertNoErr(t, err) 47 th.AssertEquals(t, len(opts.Rules), len(p.Rules)) 48 } 49 50 func TestMappingGetRequest(t *testing.T) { 51 th.SetupHTTP() 52 defer th.TeardownHTTP() 53 54 th.Mux.HandleFunc(mappingURI, func(w http.ResponseWriter, r *http.Request) { 55 th.TestMethod(t, r, "GET") 56 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 57 th.TestHeader(t, r, "Accept", "application/json") 58 _, _ = fmt.Fprint(w, mappingResponse) 59 }) 60 61 p, err := mappings.Get(fake.ServiceClient(), mappingID).Extract() 62 th.AssertNoErr(t, err) 63 th.AssertEquals(t, mappingID, p.ID) 64 } 65 66 func TestMappingListRequest(t *testing.T) { 67 th.SetupHTTP() 68 defer th.TeardownHTTP() 69 70 th.Mux.HandleFunc(listURI, func(w http.ResponseWriter, r *http.Request) { 71 th.TestMethod(t, r, "GET") 72 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 73 74 w.Header().Add("Content-Type", "application/json") 75 _, _ = fmt.Fprint(w, mappingListResponse) 76 }) 77 78 pages, err := mappings.List(fake.ServiceClient()).AllPages() 79 th.AssertNoErr(t, err) 80 81 mappingList, err := mappings.ExtractMappings(pages) 82 th.AssertNoErr(t, err) 83 th.AssertEquals(t, 2, len(mappingList)) 84 } 85 86 func TestMappingUpdateRequest(t *testing.T) { 87 th.SetupHTTP() 88 defer th.TeardownHTTP() 89 90 th.Mux.HandleFunc(mappingURI, func(w http.ResponseWriter, r *http.Request) { 91 th.TestMethod(t, r, "PATCH") 92 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 93 94 w.Header().Add("Content-Type", "application/json") 95 _, _ = fmt.Fprint(w, updatedMappingResponse) 96 }) 97 98 opts := mappings.UpdateOpts{ 99 Rules: []mappings.RuleOpts{ 100 { 101 Local: []mappings.LocalRuleOpts{ 102 { 103 User: &mappings.UserOpts{ 104 Name: "samltestid-{0}", 105 }, 106 }, 107 }, 108 Remote: []mappings.RemoteRuleOpts{ 109 { 110 Type: "uid", 111 }, 112 }, 113 }, 114 }, 115 } 116 p, err := mappings.Update(fake.ServiceClient(), mappingID, opts).Extract() 117 118 th.AssertNoErr(t, err) 119 th.AssertEquals(t, len(opts.Rules), len(p.Rules)) 120 } 121 122 func TestMappingDeleteRequest(t *testing.T) { 123 th.SetupHTTP() 124 defer th.TeardownHTTP() 125 126 th.Mux.HandleFunc(mappingURI, func(w http.ResponseWriter, r *http.Request) { 127 th.TestMethod(t, r, "DELETE") 128 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 129 w.WriteHeader(204) 130 }) 131 132 err := mappings.Delete(fake.ServiceClient(), mappingID).ExtractErr() 133 th.AssertNoErr(t, err) 134 }