github.com/gophercloud/gophercloud@v1.11.0/openstack/clustering/v1/profiles/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/openstack/clustering/v1/profiles" 10 th "github.com/gophercloud/gophercloud/testhelper" 11 fake "github.com/gophercloud/gophercloud/testhelper/client" 12 ) 13 14 const CreateResponse = ` 15 { 16 "profile": { 17 "created_at": "2016-01-03T16:22:23Z", 18 "domain": null, 19 "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 20 "metadata": {}, 21 "name": "test-profile", 22 "project": "42d9e9663331431f97b75e25136307ff", 23 "spec": { 24 "properties": { 25 "flavor": "t2.small", 26 "image": "centos7.3-latest", 27 "name": "centos_server", 28 "networks": [ 29 { 30 "network": "private-network" 31 } 32 ] 33 }, 34 "type": "os.nova.server", 35 "version": "1.0" 36 }, 37 "type": "os.nova.server-1.0", 38 "updated_at": "2016-01-03T17:22:23Z", 39 "user": "5e5bf8027826429c96af157f68dc9072" 40 } 41 }` 42 43 var ExpectedCreate = profiles.Profile{ 44 CreatedAt: time.Date(2016, 1, 3, 16, 22, 23, 0, time.UTC), 45 Domain: "", 46 ID: "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 47 Metadata: map[string]interface{}{}, 48 Name: "test-profile", 49 Project: "42d9e9663331431f97b75e25136307ff", 50 Spec: profiles.Spec{ 51 Properties: map[string]interface{}{ 52 "flavor": "t2.small", 53 "image": "centos7.3-latest", 54 "name": "centos_server", 55 "networks": []interface{}{ 56 map[string]interface{}{"network": "private-network"}, 57 }, 58 }, 59 Type: "os.nova.server", 60 Version: "1.0", 61 }, 62 Type: "os.nova.server-1.0", 63 UpdatedAt: time.Date(2016, 1, 3, 17, 22, 23, 0, time.UTC), 64 User: "5e5bf8027826429c96af157f68dc9072", 65 } 66 67 const GetResponse = ` 68 { 69 "profile": { 70 "created_at": "2016-01-03T16:22:23Z", 71 "domain": null, 72 "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 73 "metadata": {}, 74 "name": "pserver", 75 "project": "42d9e9663331431f97b75e25136307ff", 76 "spec": { 77 "properties": { 78 "flavor": 1, 79 "image": "cirros-0.3.4-x86_64-uec", 80 "key_name": "oskey", 81 "name": "cirros_server", 82 "networks": [ 83 { 84 "network": "private" 85 } 86 ] 87 }, 88 "type": "os.nova.server", 89 "version": "1.0" 90 }, 91 "type": "os.nova.server-1.0", 92 "updated_at": null, 93 "user": "5e5bf8027826429c96af157f68dc9072" 94 } 95 }` 96 97 var ExpectedGet = profiles.Profile{ 98 CreatedAt: time.Date(2016, 1, 3, 16, 22, 23, 0, time.UTC), 99 Domain: "", 100 ID: "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 101 Metadata: map[string]interface{}{}, 102 Name: "pserver", 103 Project: "42d9e9663331431f97b75e25136307ff", 104 Spec: profiles.Spec{ 105 Properties: map[string]interface{}{ 106 "flavor": float64(1), 107 "image": "cirros-0.3.4-x86_64-uec", 108 "key_name": "oskey", 109 "name": "cirros_server", 110 "networks": []interface{}{ 111 map[string]interface{}{"network": "private"}, 112 }, 113 }, 114 Type: "os.nova.server", 115 Version: "1.0", 116 }, 117 Type: "os.nova.server-1.0", 118 User: "5e5bf8027826429c96af157f68dc9072", 119 } 120 121 const ListResponse = ` 122 { 123 "profiles": [ 124 { 125 "created_at": "2016-01-03T16:22:23Z", 126 "domain": null, 127 "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 128 "metadata": {}, 129 "name": "pserver", 130 "project": "42d9e9663331431f97b75e25136307ff", 131 "spec": { 132 "properties": { 133 "flavor": "t2.small", 134 "image": "cirros-0.3.4-x86_64-uec", 135 "key_name": "oskey", 136 "name": "cirros_server", 137 "networks": [ 138 { 139 "network": "private" 140 } 141 ] 142 }, 143 "type": "os.nova.server", 144 "version": 1.0 145 }, 146 "type": "os.nova.server-1.0", 147 "updated_at": "2016-01-03T17:22:23Z", 148 "user": "5e5bf8027826429c96af157f68dc9072" 149 }, 150 { 151 "created_at": null, 152 "domain": null, 153 "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 154 "metadata": {}, 155 "name": "pserver", 156 "project": "42d9e9663331431f97b75e25136307ff", 157 "spec": { 158 "properties": { 159 "flavor": "t2.small", 160 "image": "cirros-0.3.4-x86_64-uec", 161 "key_name": "oskey", 162 "name": "cirros_server", 163 "networks": [ 164 { 165 "network": "private" 166 } 167 ] 168 }, 169 "type": "os.nova.server", 170 "version": 1.0 171 }, 172 "type": "os.nova.server-1.0", 173 "updated_at": null, 174 "user": "5e5bf8027826429c96af157f68dc9072" 175 }, 176 { 177 "created_at": "", 178 "domain": null, 179 "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 180 "metadata": {}, 181 "name": "pserver", 182 "project": "42d9e9663331431f97b75e25136307ff", 183 "spec": { 184 "properties": { 185 "flavor": "t2.small", 186 "image": "cirros-0.3.4-x86_64-uec", 187 "key_name": "oskey", 188 "name": "cirros_server", 189 "networks": [ 190 { 191 "network": "private" 192 } 193 ] 194 }, 195 "type": "os.nova.server", 196 "version": "1.0" 197 }, 198 "type": "os.nova.server-1.0", 199 "updated_at": "", 200 "user": "5e5bf8027826429c96af157f68dc9072" 201 } 202 ] 203 }` 204 205 var ExpectedListProfile1 = profiles.Profile{ 206 CreatedAt: time.Date(2016, 1, 3, 16, 22, 23, 0, time.UTC), 207 Domain: "", 208 ID: "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 209 Metadata: map[string]interface{}{}, 210 Name: "pserver", 211 Project: "42d9e9663331431f97b75e25136307ff", 212 Spec: profiles.Spec{ 213 Properties: map[string]interface{}{ 214 "flavor": "t2.small", 215 "image": "cirros-0.3.4-x86_64-uec", 216 "key_name": "oskey", 217 "name": "cirros_server", 218 "networks": []interface{}{ 219 map[string]interface{}{"network": "private"}, 220 }, 221 }, 222 Type: "os.nova.server", 223 Version: "1.0", 224 }, 225 Type: "os.nova.server-1.0", 226 UpdatedAt: time.Date(2016, 1, 3, 17, 22, 23, 0, time.UTC), 227 User: "5e5bf8027826429c96af157f68dc9072", 228 } 229 230 var ExpectedListProfile2 = profiles.Profile{ 231 Domain: "", 232 ID: "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 233 Metadata: map[string]interface{}{}, 234 Name: "pserver", 235 Project: "42d9e9663331431f97b75e25136307ff", 236 Spec: profiles.Spec{ 237 Properties: map[string]interface{}{ 238 "flavor": "t2.small", 239 "image": "cirros-0.3.4-x86_64-uec", 240 "key_name": "oskey", 241 "name": "cirros_server", 242 "networks": []interface{}{ 243 map[string]interface{}{"network": "private"}, 244 }, 245 }, 246 Type: "os.nova.server", 247 Version: "1.0", 248 }, 249 Type: "os.nova.server-1.0", 250 User: "5e5bf8027826429c96af157f68dc9072", 251 } 252 253 var ExpectedListProfile3 = profiles.Profile{ 254 Domain: "", 255 ID: "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 256 Metadata: map[string]interface{}{}, 257 Name: "pserver", 258 Project: "42d9e9663331431f97b75e25136307ff", 259 Spec: profiles.Spec{ 260 Properties: map[string]interface{}{ 261 "flavor": "t2.small", 262 "image": "cirros-0.3.4-x86_64-uec", 263 "key_name": "oskey", 264 "name": "cirros_server", 265 "networks": []interface{}{ 266 map[string]interface{}{"network": "private"}, 267 }, 268 }, 269 Type: "os.nova.server", 270 Version: "1.0", 271 }, 272 Type: "os.nova.server-1.0", 273 User: "5e5bf8027826429c96af157f68dc9072", 274 } 275 276 var ExpectedList = []profiles.Profile{ 277 ExpectedListProfile1, 278 ExpectedListProfile2, 279 ExpectedListProfile3, 280 } 281 282 const UpdateResponse = ` 283 { 284 "profile": { 285 "created_at": "2016-01-03T16:22:23Z", 286 "domain": null, 287 "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 288 "metadata": { 289 "foo": "bar" 290 }, 291 "name": "pserver", 292 "project": "42d9e9663331431f97b75e25136307ff", 293 "spec": { 294 "properties": { 295 "flavor": 1, 296 "image": "cirros-0.3.4-x86_64-uec", 297 "key_name": "oskey", 298 "name": "cirros_server", 299 "networks": [ 300 { 301 "network": "private" 302 } 303 ] 304 }, 305 "type": "os.nova.server", 306 "version": "1.0" 307 }, 308 "type": "os.nova.server-1.0", 309 "updated_at": "2016-01-03T17:22:23Z", 310 "user": "5e5bf8027826429c96af157f68dc9072" 311 } 312 }` 313 314 var ExpectedUpdate = profiles.Profile{ 315 CreatedAt: time.Date(2016, 1, 3, 16, 22, 23, 0, time.UTC), 316 Domain: "", 317 ID: "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 318 Metadata: map[string]interface{}{"foo": "bar"}, 319 Name: "pserver", 320 Project: "42d9e9663331431f97b75e25136307ff", 321 Spec: profiles.Spec{ 322 Properties: map[string]interface{}{ 323 "flavor": float64(1), 324 "image": "cirros-0.3.4-x86_64-uec", 325 "key_name": "oskey", 326 "name": "cirros_server", 327 "networks": []interface{}{ 328 map[string]interface{}{"network": "private"}, 329 }, 330 }, 331 Type: "os.nova.server", 332 Version: "1.0", 333 }, 334 Type: "os.nova.server-1.0", 335 UpdatedAt: time.Date(2016, 1, 3, 17, 22, 23, 0, time.UTC), 336 User: "5e5bf8027826429c96af157f68dc9072", 337 } 338 339 const ValidateResponse = ` 340 { 341 "profile": { 342 "created_at": "2016-01-03T16:22:23Z", 343 "domain": null, 344 "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 345 "metadata": {}, 346 "name": "pserver", 347 "project": "42d9e9663331431f97b75e25136307ff", 348 "spec": { 349 "properties": { 350 "flavor": "t2.micro", 351 "image": "cirros-0.3.4-x86_64-uec", 352 "key_name": "oskey", 353 "name": "cirros_server", 354 "networks": [ 355 { 356 "network": "private" 357 } 358 ] 359 }, 360 "type": "os.nova.server", 361 "version": "1.0" 362 }, 363 "type": "os.nova.server-1.0", 364 "updated_at": "2016-01-03T17:22:23Z", 365 "user": "5e5bf8027826429c96af157f68dc9072" 366 } 367 }` 368 369 var ExpectedValidate = profiles.Profile{ 370 CreatedAt: time.Date(2016, 1, 3, 16, 22, 23, 0, time.UTC), 371 Domain: "", 372 ID: "9e1c6f42-acf5-4688-be2c-8ce954ef0f23", 373 Metadata: map[string]interface{}{}, 374 Name: "pserver", 375 Project: "42d9e9663331431f97b75e25136307ff", 376 Spec: profiles.Spec{ 377 Properties: map[string]interface{}{ 378 "flavor": "t2.micro", 379 "image": "cirros-0.3.4-x86_64-uec", 380 "key_name": "oskey", 381 "name": "cirros_server", 382 "networks": []interface{}{ 383 map[string]interface{}{"network": "private"}, 384 }, 385 }, 386 Type: "os.nova.server", 387 Version: "1.0", 388 }, 389 Type: "os.nova.server-1.0", 390 UpdatedAt: time.Date(2016, 1, 3, 17, 22, 23, 0, time.UTC), 391 User: "5e5bf8027826429c96af157f68dc9072", 392 } 393 394 func HandleCreateSuccessfully(t *testing.T) { 395 th.Mux.HandleFunc("/v1/profiles", func(w http.ResponseWriter, r *http.Request) { 396 th.TestMethod(t, r, "POST") 397 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 398 399 w.Header().Add("Content-Type", "application/json") 400 w.WriteHeader(http.StatusOK) 401 402 fmt.Fprint(w, CreateResponse) 403 }) 404 } 405 406 func HandleGetSuccessfully(t *testing.T) { 407 th.Mux.HandleFunc("/v1/profiles/9e1c6f42-acf5-4688-be2c-8ce954ef0f23", func(w http.ResponseWriter, r *http.Request) { 408 th.TestMethod(t, r, "GET") 409 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 410 411 w.Header().Add("Content-Type", "application/json") 412 w.WriteHeader(http.StatusOK) 413 414 fmt.Fprint(w, GetResponse) 415 }) 416 } 417 418 func HandleListSuccessfully(t *testing.T) { 419 th.Mux.HandleFunc("/v1/profiles", func(w http.ResponseWriter, r *http.Request) { 420 th.TestMethod(t, r, "GET") 421 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 422 423 w.Header().Add("Content-Type", "application/json") 424 w.WriteHeader(http.StatusOK) 425 426 fmt.Fprintf(w, ListResponse) 427 }) 428 } 429 430 func HandleUpdateSuccessfully(t *testing.T) { 431 th.Mux.HandleFunc("/v1/profiles/9e1c6f42-acf5-4688-be2c-8ce954ef0f23", func(w http.ResponseWriter, r *http.Request) { 432 th.TestMethod(t, r, "PATCH") 433 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 434 435 w.Header().Add("Content-Type", "application/json") 436 w.WriteHeader(http.StatusOK) 437 438 fmt.Fprint(w, UpdateResponse) 439 }) 440 } 441 442 func HandleDeleteSuccessfully(t *testing.T) { 443 th.Mux.HandleFunc("/v1/profiles/6dc6d336e3fc4c0a951b5698cd1236ee", func(w http.ResponseWriter, r *http.Request) { 444 th.TestMethod(t, r, "DELETE") 445 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 446 447 w.Header().Add("Content-Type", "application/json") 448 w.WriteHeader(http.StatusNoContent) 449 }) 450 } 451 452 func HandleValidateSuccessfully(t *testing.T) { 453 th.Mux.HandleFunc("/v1/profiles/validate", func(w http.ResponseWriter, r *http.Request) { 454 th.TestMethod(t, r, "POST") 455 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 456 th.TestHeader(t, r, "OpenStack-API-Version", "clustering 1.2") 457 458 w.Header().Add("Content-Type", "application/json") 459 w.WriteHeader(http.StatusOK) 460 461 fmt.Fprint(w, ValidateResponse) 462 }) 463 }