github.com/gophercloud/gophercloud@v1.11.0/openstack/sharedfilesystems/v2/shareaccessrules/testing/requests_test.go (about) 1 package testing 2 3 import ( 4 "fmt" 5 "net/http" 6 "testing" 7 "time" 8 9 "github.com/gophercloud/gophercloud/openstack/sharedfilesystems/v2/shareaccessrules" 10 th "github.com/gophercloud/gophercloud/testhelper" 11 "github.com/gophercloud/gophercloud/testhelper/client" 12 fake "github.com/gophercloud/gophercloud/testhelper/client" 13 ) 14 15 func TestGet(t *testing.T) { 16 th.SetupHTTP() 17 defer th.TeardownHTTP() 18 19 MockGetResponse(t) 20 21 resp := shareaccessrules.Get(client.ServiceClient(), "507bf114-36f2-4f56-8cf4-857985ca87c1") 22 th.AssertNoErr(t, resp.Err) 23 24 accessRule, err := resp.Extract() 25 th.AssertNoErr(t, err) 26 27 th.AssertDeepEquals(t, &shareaccessrules.ShareAccess{ 28 ShareID: "fb213952-2352-41b4-ad7b-2c4c69d13eef", 29 CreatedAt: time.Date(2018, 7, 17, 2, 1, 4, 0, time.UTC), 30 UpdatedAt: time.Date(2018, 7, 17, 2, 1, 4, 0, time.UTC), 31 AccessType: "cert", 32 AccessTo: "example.com", 33 AccessKey: "", 34 State: "error", 35 AccessLevel: "rw", 36 ID: "507bf114-36f2-4f56-8cf4-857985ca87c1", 37 Metadata: map[string]interface{}{ 38 "key1": "value1", 39 "key2": "value2", 40 }, 41 }, accessRule) 42 } 43 44 func MockListResponse(t *testing.T) { 45 th.Mux.HandleFunc(shareAccessRulesEndpoint, func(w http.ResponseWriter, r *http.Request) { 46 th.TestMethod(t, r, "GET") 47 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 48 th.TestHeader(t, r, "Accept", "application/json") 49 w.Header().Add("Content-Type", "application/json") 50 w.WriteHeader(http.StatusOK) 51 fmt.Fprintf(w, listResponse) 52 }) 53 }