github.com/huaweicloud/golangsdk@v0.0.0-20210831081626-d823fe11ceba/openstack/blockstorage/v2/snapshots/testing/fixtures.go (about) 1 package testing 2 3 import ( 4 "fmt" 5 "net/http" 6 "testing" 7 8 th "github.com/huaweicloud/golangsdk/testhelper" 9 fake "github.com/huaweicloud/golangsdk/testhelper/client" 10 ) 11 12 func MockListResponse(t *testing.T) { 13 th.Mux.HandleFunc("/snapshots", func(w http.ResponseWriter, r *http.Request) { 14 th.TestMethod(t, r, "GET") 15 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 16 17 w.Header().Add("Content-Type", "application/json") 18 w.WriteHeader(http.StatusOK) 19 20 fmt.Fprintf(w, ` 21 { 22 "snapshots": [ 23 { 24 "id": "289da7f8-6440-407c-9fb4-7db01ec49164", 25 "name": "snapshot-001", 26 "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", 27 "description": "Daily Backup", 28 "status": "available", 29 "size": 30, 30 "created_at": "2017-05-30T03:35:03.000000" 31 }, 32 { 33 "id": "96c3bda7-c82a-4f50-be73-ca7621794835", 34 "name": "snapshot-002", 35 "volume_id": "76b8950a-8594-4e5b-8dce-0dfa9c696358", 36 "description": "Weekly Backup", 37 "status": "available", 38 "size": 25, 39 "created_at": "2017-05-30T03:35:03.000000" 40 } 41 ] 42 } 43 `) 44 }) 45 } 46 47 func MockGetResponse(t *testing.T) { 48 th.Mux.HandleFunc("/snapshots/d32019d3-bc6e-4319-9c1d-6722fc136a22", func(w http.ResponseWriter, r *http.Request) { 49 th.TestMethod(t, r, "GET") 50 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 51 52 w.Header().Add("Content-Type", "application/json") 53 w.WriteHeader(http.StatusOK) 54 fmt.Fprintf(w, ` 55 { 56 "snapshot": { 57 "id": "d32019d3-bc6e-4319-9c1d-6722fc136a22", 58 "name": "snapshot-001", 59 "description": "Daily backup", 60 "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", 61 "status": "available", 62 "size": 30, 63 "created_at": "2017-05-30T03:35:03.000000" 64 } 65 } 66 `) 67 }) 68 } 69 70 func MockCreateResponse(t *testing.T) { 71 th.Mux.HandleFunc("/snapshots", func(w http.ResponseWriter, r *http.Request) { 72 th.TestMethod(t, r, "POST") 73 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 74 th.TestHeader(t, r, "Content-Type", "application/json") 75 th.TestHeader(t, r, "Accept", "application/json") 76 th.TestJSONRequest(t, r, ` 77 { 78 "snapshot": { 79 "volume_id": "1234", 80 "name": "snapshot-001" 81 } 82 } 83 `) 84 85 w.Header().Add("Content-Type", "application/json") 86 w.WriteHeader(http.StatusAccepted) 87 88 fmt.Fprintf(w, ` 89 { 90 "snapshot": { 91 "volume_id": "1234", 92 "name": "snapshot-001", 93 "id": "d32019d3-bc6e-4319-9c1d-6722fc136a22", 94 "description": "Daily backup", 95 "volume_id": "1234", 96 "status": "available", 97 "size": 30, 98 "created_at": "2017-05-30T03:35:03.000000" 99 } 100 } 101 `) 102 }) 103 } 104 105 func MockUpdateMetadataResponse(t *testing.T) { 106 th.Mux.HandleFunc("/snapshots/123/metadata", func(w http.ResponseWriter, r *http.Request) { 107 th.TestMethod(t, r, "PUT") 108 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 109 th.TestHeader(t, r, "Content-Type", "application/json") 110 th.TestJSONRequest(t, r, ` 111 { 112 "metadata": { 113 "key": "v1" 114 } 115 } 116 `) 117 118 fmt.Fprintf(w, ` 119 { 120 "metadata": { 121 "key": "v1" 122 } 123 } 124 `) 125 }) 126 } 127 128 func MockDeleteResponse(t *testing.T) { 129 th.Mux.HandleFunc("/snapshots/d32019d3-bc6e-4319-9c1d-6722fc136a22", func(w http.ResponseWriter, r *http.Request) { 130 th.TestMethod(t, r, "DELETE") 131 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 132 w.WriteHeader(http.StatusNoContent) 133 }) 134 }