github.com/gophercloud/gophercloud@v1.11.0/openstack/sharedfilesystems/v2/sharetransfers/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/sharedfilesystems/v2/sharetransfers" 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 "resource_id": "2f6f1684-1ded-40db-8a49-7c87dedbc758", 21 "id": "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 22 "links": [ 23 { 24 "href": "https://share/v3/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 25 "rel": "self" 26 }, 27 { 28 "href": "https://share/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/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 "resource_id": "2f6f1684-1ded-40db-8a49-7c87dedbc758", 43 "id": "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 44 "links": [ 45 { 46 "href": "https://share/v3/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 47 "rel": "self" 48 }, 49 { 50 "href": "https://share/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 51 "rel": "bookmark" 52 } 53 ], 54 "name": null 55 } 56 } 57 ` 58 59 const CreateRequest = ` 60 { 61 "transfer": { 62 "share_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://share/v3/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 76 "rel": "self" 77 }, 78 { 79 "href": "https://share/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 80 "rel": "bookmark" 81 } 82 ], 83 "name": null, 84 "resource_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 var TransferRequest = sharetransfers.CreateOpts{ 98 ShareID: "2f6f1684-1ded-40db-8a49-7c87dedbc758", 99 } 100 101 var createdAt, _ = time.Parse(gophercloud.RFC3339MilliNoZ, "2020-02-28T12:44:28.051989") 102 var TransferResponse = sharetransfers.Transfer{ 103 ID: "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 104 AuthKey: "cb67e0e7387d9eac", 105 Name: "", 106 ResourceID: "2f6f1684-1ded-40db-8a49-7c87dedbc758", 107 CreatedAt: createdAt, 108 Links: []map[string]string{ 109 { 110 "href": "https://share/v3/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 111 "rel": "self", 112 }, 113 { 114 "href": "https://share/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 115 "rel": "bookmark", 116 }, 117 }, 118 } 119 120 var TransferListResponse = []sharetransfers.Transfer{TransferResponse} 121 122 var AcceptRequest = sharetransfers.AcceptOpts{ 123 AuthKey: "9266c59563c84664", 124 } 125 126 var AcceptResponse = sharetransfers.Transfer{ 127 ID: "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 128 Name: "", 129 ResourceID: "2f6f1684-1ded-40db-8a49-7c87dedbc758", 130 Links: []map[string]string{ 131 { 132 "href": "https://share/v3/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 133 "rel": "self", 134 }, 135 { 136 "href": "https://share/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", 137 "rel": "bookmark", 138 }, 139 }, 140 } 141 142 func HandleCreateTransfer(t *testing.T) { 143 th.Mux.HandleFunc("/share-transfers", func(w http.ResponseWriter, r *http.Request) { 144 th.TestMethod(t, r, "POST") 145 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 146 w.Header().Add("Content-Type", "application/json") 147 th.TestJSONRequest(t, r, CreateRequest) 148 149 w.WriteHeader(http.StatusAccepted) 150 fmt.Fprintf(w, CreateResponse) 151 }) 152 } 153 154 func HandleAcceptTransfer(t *testing.T) { 155 th.Mux.HandleFunc("/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f/accept", func(w http.ResponseWriter, r *http.Request) { 156 th.TestMethod(t, r, "POST") 157 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 158 w.Header().Add("Content-Type", "application/json") 159 th.TestJSONRequest(t, r, AcceptTransferRequest) 160 161 w.WriteHeader(http.StatusAccepted) 162 }) 163 } 164 165 func HandleDeleteTransfer(t *testing.T) { 166 th.Mux.HandleFunc("/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", func(w http.ResponseWriter, r *http.Request) { 167 th.TestMethod(t, r, "DELETE") 168 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 169 170 w.WriteHeader(http.StatusOK) 171 }) 172 } 173 174 func HandleListTransfers(t *testing.T) { 175 th.Mux.HandleFunc("/share-transfers", func(w http.ResponseWriter, r *http.Request) { 176 th.TestMethod(t, r, "GET") 177 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 178 w.Header().Add("Content-Type", "application/json") 179 th.TestFormValues(t, r, map[string]string{"all_tenants": "true"}) 180 181 w.WriteHeader(http.StatusOK) 182 fmt.Fprintf(w, ListOutput) 183 }) 184 } 185 186 func HandleListTransfersDetail(t *testing.T) { 187 th.Mux.HandleFunc("/share-transfers/detail", func(w http.ResponseWriter, r *http.Request) { 188 th.TestMethod(t, r, "GET") 189 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 190 w.Header().Add("Content-Type", "application/json") 191 th.TestFormValues(t, r, map[string]string{"all_tenants": "true"}) 192 193 w.WriteHeader(http.StatusOK) 194 fmt.Fprintf(w, ListOutput) 195 }) 196 } 197 198 func HandleGetTransfer(t *testing.T) { 199 th.Mux.HandleFunc("/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", func(w http.ResponseWriter, r *http.Request) { 200 th.TestMethod(t, r, "GET") 201 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 202 w.Header().Add("Content-Type", "application/json") 203 204 w.WriteHeader(http.StatusOK) 205 fmt.Fprintf(w, GetOutput) 206 }) 207 }