blob: 2e72b870b682fd0503ba7a3fd04119e4b0b8c563 [file] [log] [blame]
Jamie Hannaford2a130242014-10-28 11:19:46 +01001package users
Jamie Hannaford6a076d82014-10-29 10:57:36 +01002
3import (
4 "fmt"
5 "net/http"
6 "testing"
7
8 th "github.com/rackspace/gophercloud/testhelper"
9 fake "github.com/rackspace/gophercloud/testhelper/client"
10)
11
12func MockListResponse(t *testing.T) {
13 th.Mux.HandleFunc("/users", 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 "users":[
23 {
24 "id": "u1000",
Jamie Hannaford929bd002014-10-29 11:14:25 +010025 "name": "John Smith",
Jamie Hannaford6a076d82014-10-29 10:57:36 +010026 "username": "jqsmith",
27 "email": "john.smith@example.org",
Jamie Hannaford929bd002014-10-29 11:14:25 +010028 "enabled": true,
29 "tenant_id": "12345"
Jamie Hannaford6a076d82014-10-29 10:57:36 +010030 },
31 {
32 "id": "u1001",
Jamie Hannaford929bd002014-10-29 11:14:25 +010033 "name": "Jane Smith",
Jamie Hannaford6a076d82014-10-29 10:57:36 +010034 "username": "jqsmith",
Jamie Hannaford929bd002014-10-29 11:14:25 +010035 "email": "jane.smith@example.org",
36 "enabled": true,
37 "tenant_id": "12345"
Jamie Hannaford6a076d82014-10-29 10:57:36 +010038 }
39 ]
40}
41 `)
42 })
43}
Jamie Hannaford9c7bb8e2014-10-29 11:47:34 +010044
45func MockCreateUser(t *testing.T) {
46 th.Mux.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) {
47 th.TestMethod(t, r, "POST")
48 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
49
Jamie Hannaford7e04adf2014-10-29 13:47:58 +010050 th.TestJSONRequest(t, r, `
51{
52 "user": {
53 "name": "new_user",
54 "tenant_id": "12345",
55 "enabled": false,
56 "email": "new_user@foo.com"
57 }
58}
59 `)
60
Jamie Hannaford9c7bb8e2014-10-29 11:47:34 +010061 w.Header().Add("Content-Type", "application/json")
62 w.WriteHeader(http.StatusOK)
63
64 fmt.Fprintf(w, `
65{
66 "user": {
67 "name": "new_user",
68 "tenant_id": "12345",
69 "enabled": false,
70 "email": "new_user@foo.com",
71 "id": "c39e3de9be2d4c779f1dfd6abacc176d"
72 }
73}
74`)
75 })
76}
Jamie Hannaford2ad98bd2014-10-29 13:26:47 +010077
78func MockGetUser(t *testing.T) {
79 th.Mux.HandleFunc("/users/new_user", func(w http.ResponseWriter, r *http.Request) {
80 th.TestMethod(t, r, "GET")
81 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
82
83 w.Header().Add("Content-Type", "application/json")
84 w.WriteHeader(http.StatusOK)
85
86 fmt.Fprintf(w, `
87{
88 "user": {
89 "name": "new_user",
90 "tenant_id": "12345",
91 "enabled": false,
92 "email": "new_user@foo.com",
93 "id": "c39e3de9be2d4c779f1dfd6abacc176d"
94 }
95}
96`)
97 })
98}
Jamie Hannaford7e04adf2014-10-29 13:47:58 +010099
100func MockUpdateUser(t *testing.T) {
101 th.Mux.HandleFunc("/users/c39e3de9be2d4c779f1dfd6abacc176d", func(w http.ResponseWriter, r *http.Request) {
102 th.TestMethod(t, r, "PUT")
103 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
104
105 th.TestJSONRequest(t, r, `
106{
107 "user": {
108 "name": "new_name",
109 "enabled": true,
110 "email": "new_email@foo.com"
111 }
112}
113`)
114
115 w.Header().Add("Content-Type", "application/json")
116 w.WriteHeader(http.StatusOK)
117
118 fmt.Fprintf(w, `
119{
120 "user": {
121 "name": "new_name",
122 "tenant_id": "12345",
123 "enabled": true,
124 "email": "new_email@foo.com",
125 "id": "c39e3de9be2d4c779f1dfd6abacc176d"
126 }
127}
128`)
129 })
130}
Jamie Hannaford8b9a8002014-10-29 14:20:24 +0100131
132func MockDeleteUser(t *testing.T) {
133 th.Mux.HandleFunc("/users/c39e3de9be2d4c779f1dfd6abacc176d", func(w http.ResponseWriter, r *http.Request) {
134 th.TestMethod(t, r, "DELETE")
135 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
136 w.WriteHeader(http.StatusNoContent)
137 })
138}