github.com/gophercloud/gophercloud@v1.11.0/openstack/blockstorage/extensions/volumetransfers/testing/fixtures_test.go (about) 1 package testing 2 3 import ( 4 "fmt" 5 "net/http" 6 "testing" 7 "time" 8 9 "github.com/gophercloud/gophercloud" 10 "github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumetransfers" 11 th "github.com/gophercloud/gophercloud/testhelper" 12 "github.com/gophercloud/gophercloud/testhelper/client" 13 ) 14 15 const ListOutput = ` 16 { 17 "transfers": [ 18 { 19 "created_at": "2020-02-28T12:44:28.051989", 20 "volume_id": "2f6f1684-1ded-40db-8a49-7c87dedbc758", 21 "id": "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 22 "links": [ 23 { 24 "href": "https://volume/v3/53c2b94f63fb4f43a21b92d119ce549f/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 25 "rel": "self" 26 }, 27 { 28 "href": "https://volume/53c2b94f63fb4f43a21b92d119ce549f/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 29 "rel": "bookmark" 30 } 31 ], 32 "name": null 33 } 34 ] 35 } 36 ` 37 38 const GetOutput = ` 39 { 40 "transfer": { 41 "created_at": "2020-02-28T12:44:28.051989", 42 "volume_id": "2f6f1684-1ded-40db-8a49-7c87dedbc758", 43 "id": "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 44 "links": [ 45 { 46 "href": "https://volume/v3/53c2b94f63fb4f43a21b92d119ce549f/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 47 "rel": "self" 48 }, 49 { 50 "href": "https://volume/53c2b94f63fb4f43a21b92d119ce549f/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 51 "rel": "bookmark" 52 } 53 ], 54 "name": null 55 } 56 } 57 ` 58 59 const CreateRequest = ` 60 { 61 "transfer": { 62 "volume_id": "2f6f1684-1ded-40db-8a49-7c87dedbc758" 63 } 64 } 65 ` 66 67 const CreateResponse = ` 68 { 69 "transfer": { 70 "auth_key": "cb67e0e7387d9eac", 71 "created_at": "2020-02-28T12:44:28.051989", 72 "id": "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 73 "links": [ 74 { 75 "href": "https://volume/v3/53c2b94f63fb4f43a21b92d119ce549f/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 76 "rel": "self" 77 }, 78 { 79 "href": "https://volume/53c2b94f63fb4f43a21b92d119ce549f/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 80 "rel": "bookmark" 81 } 82 ], 83 "name": null, 84 "volume_id": "2f6f1684-1ded-40db-8a49-7c87dedbc758" 85 } 86 } 87 ` 88 89 const AcceptTransferRequest = ` 90 { 91 "accept": { 92 "auth_key": "9266c59563c84664" 93 } 94 } 95 ` 96 97 const AcceptTransferResponse = ` 98 { 99 "transfer": { 100 "id": "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 101 "links": [ 102 { 103 "href": "https://volume/v3/53c2b94f63fb4f43a21b92d119ce549f/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 104 "rel": "self" 105 }, 106 { 107 "href": "https://volume/53c2b94f63fb4f43a21b92d119ce549f/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 108 "rel": "bookmark" 109 } 110 ], 111 "name": null, 112 "volume_id": "2f6f1684-1ded-40db-8a49-7c87dedbc758" 113 } 114 } 115 ` 116 117 var TransferRequest = volumetransfers.CreateOpts{ 118 VolumeID: "2f6f1684-1ded-40db-8a49-7c87dedbc758", 119 } 120 121 var createdAt, _ = time.Parse(gophercloud.RFC3339MilliNoZ, "2020-02-28T12:44:28.051989") 122 var TransferResponse = volumetransfers.Transfer{ 123 ID: "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 124 AuthKey: "cb67e0e7387d9eac", 125 Name: "", 126 VolumeID: "2f6f1684-1ded-40db-8a49-7c87dedbc758", 127 CreatedAt: createdAt, 128 Links: []map[string]string{ 129 { 130 "href": "https://volume/v3/53c2b94f63fb4f43a21b92d119ce549f/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 131 "rel": "self", 132 }, 133 { 134 "href": "https://volume/53c2b94f63fb4f43a21b92d119ce549f/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 135 "rel": "bookmark", 136 }, 137 }, 138 } 139 140 var TransferListResponse = []volumetransfers.Transfer{TransferResponse} 141 142 var AcceptRequest = volumetransfers.AcceptOpts{ 143 AuthKey: "9266c59563c84664", 144 } 145 146 var AcceptResponse = volumetransfers.Transfer{ 147 ID: "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 148 Name: "", 149 VolumeID: "2f6f1684-1ded-40db-8a49-7c87dedbc758", 150 Links: []map[string]string{ 151 { 152 "href": "https://volume/v3/53c2b94f63fb4f43a21b92d119ce549f/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 153 "rel": "self", 154 }, 155 { 156 "href": "https://volume/53c2b94f63fb4f43a21b92d119ce549f/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 157 "rel": "bookmark", 158 }, 159 }, 160 } 161 162 func HandleCreateTransfer(t *testing.T) { 163 th.Mux.HandleFunc("/os-volume-transfer", func(w http.ResponseWriter, r *http.Request) { 164 th.TestMethod(t, r, "POST") 165 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 166 w.Header().Add("Content-Type", "application/json") 167 th.TestJSONRequest(t, r, CreateRequest) 168 169 w.WriteHeader(http.StatusAccepted) 170 fmt.Fprintf(w, CreateResponse) 171 }) 172 } 173 174 func HandleAcceptTransfer(t *testing.T) { 175 th.Mux.HandleFunc("/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f/accept", func(w http.ResponseWriter, r *http.Request) { 176 th.TestMethod(t, r, "POST") 177 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 178 w.Header().Add("Content-Type", "application/json") 179 th.TestJSONRequest(t, r, AcceptTransferRequest) 180 181 w.WriteHeader(http.StatusAccepted) 182 fmt.Fprintf(w, AcceptTransferResponse) 183 }) 184 } 185 186 func HandleDeleteTransfer(t *testing.T) { 187 th.Mux.HandleFunc("/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", func(w http.ResponseWriter, r *http.Request) { 188 th.TestMethod(t, r, "DELETE") 189 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 190 191 w.WriteHeader(http.StatusNoContent) 192 }) 193 } 194 195 func HandleListTransfers(t *testing.T) { 196 th.Mux.HandleFunc("/os-volume-transfer/detail", func(w http.ResponseWriter, r *http.Request) { 197 th.TestMethod(t, r, "GET") 198 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 199 w.Header().Add("Content-Type", "application/json") 200 th.TestFormValues(t, r, map[string]string{"all_tenants": "true"}) 201 202 w.WriteHeader(http.StatusOK) 203 fmt.Fprintf(w, ListOutput) 204 }) 205 } 206 207 func HandleGetTransfer(t *testing.T) { 208 th.Mux.HandleFunc("/os-volume-transfer/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", func(w http.ResponseWriter, r *http.Request) { 209 th.TestMethod(t, r, "GET") 210 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 211 w.Header().Add("Content-Type", "application/json") 212 213 w.WriteHeader(http.StatusOK) 214 fmt.Fprintf(w, GetOutput) 215 }) 216 }