github.com/gophercloud/gophercloud@v1.11.0/openstack/identity/v3/tokens/testing/fixtures.go (about) 1 package testing 2 3 import ( 4 "encoding/json" 5 "net/http" 6 "testing" 7 "time" 8 9 "github.com/gophercloud/gophercloud" 10 "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens" 11 "github.com/gophercloud/gophercloud/testhelper" 12 ) 13 14 const testTokenID = "130f6c17-420e-4a0b-97b0-0c9cf2a05f30" 15 16 // TokenOutput is a sample response to a Token call. 17 const TokenOutput = ` 18 { 19 "token":{ 20 "is_domain":false, 21 "methods":[ 22 "password" 23 ], 24 "roles":[ 25 { 26 "id":"434426788d5a451faf763b0e6db5aefb", 27 "name":"admin" 28 } 29 ], 30 "expires_at":"2017-06-03T02:19:49.000000Z", 31 "project":{ 32 "domain":{ 33 "id":"default", 34 "name":"Default" 35 }, 36 "id":"a99e9b4e620e4db09a2dfb6e42a01e66", 37 "name":"admin" 38 }, 39 "catalog":[ 40 { 41 "endpoints":[ 42 { 43 "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66", 44 "interface":"admin", 45 "region":"RegionOne", 46 "region_id":"RegionOne", 47 "id":"3eac9e7588eb4eb2a4650cf5e079505f" 48 }, 49 { 50 "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66", 51 "interface":"internal", 52 "region":"RegionOne", 53 "region_id":"RegionOne", 54 "id":"6b33fabc69c34ea782a3f6282582b59f" 55 }, 56 { 57 "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66", 58 "interface":"public", 59 "region":"RegionOne", 60 "region_id":"RegionOne", 61 "id":"dae63c71bee24070a71f5425e7a916b5" 62 } 63 ], 64 "type":"compute", 65 "id":"17e0fa04647d4155a7933ee624dd66da", 66 "name":"nova" 67 }, 68 { 69 "endpoints":[ 70 { 71 "url":"http://127.0.0.1:35357/v3", 72 "interface":"admin", 73 "region":"RegionOne", 74 "region_id":"RegionOne", 75 "id":"0539aeff80954a0bb756cec496768d3d" 76 }, 77 { 78 "url":"http://127.0.0.1:5000/v3", 79 "interface":"public", 80 "region":"RegionOne", 81 "region_id":"RegionOne", 82 "id":"15bdf2d0853e4c939993d29548b1b56f" 83 }, 84 { 85 "url":"http://127.0.0.1:5000/v3", 86 "interface":"internal", 87 "region":"RegionOne", 88 "region_id":"RegionOne", 89 "id":"3b4423c54ba343c58226bc424cb11c4b" 90 } 91 ], 92 "type":"identity", 93 "id":"1cde0ea8cb3c49d8928cb172ca825ca5", 94 "name":"keystone" 95 } 96 ], 97 "user":{ 98 "domain":{ 99 "id":"default", 100 "name":"Default" 101 }, 102 "password_expires_at":null, 103 "name":"admin", 104 "id":"0fe36e73809d46aeae6705c39077b1b3" 105 }, 106 "audit_ids":[ 107 "ysSI0bEWR0Gmrp4LHL9LFw" 108 ], 109 "issued_at":"2017-06-03T01:19:49.000000Z" 110 } 111 }` 112 113 const DomainToken = ` 114 { 115 "token": { 116 "domain": { 117 "id": "default", 118 "name": "Default" 119 }, 120 "methods": [ 121 "password" 122 ], 123 "roles":[ 124 { 125 "id":"434426788d5a451faf763b0e6db5aefb", 126 "name":"admin" 127 } 128 ], 129 "expires_at": "2019-09-18T23:12:32.000000Z", 130 "catalog":[ 131 { 132 "endpoints":[ 133 { 134 "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66", 135 "interface":"admin", 136 "region":"RegionOne", 137 "region_id":"RegionOne", 138 "id":"3eac9e7588eb4eb2a4650cf5e079505f" 139 }, 140 { 141 "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66", 142 "interface":"internal", 143 "region":"RegionOne", 144 "region_id":"RegionOne", 145 "id":"6b33fabc69c34ea782a3f6282582b59f" 146 }, 147 { 148 "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66", 149 "interface":"public", 150 "region":"RegionOne", 151 "region_id":"RegionOne", 152 "id":"dae63c71bee24070a71f5425e7a916b5" 153 } 154 ], 155 "type":"compute", 156 "id":"17e0fa04647d4155a7933ee624dd66da", 157 "name":"nova" 158 }, 159 { 160 "endpoints":[ 161 { 162 "url":"http://127.0.0.1:35357/v3", 163 "interface":"admin", 164 "region":"RegionOne", 165 "region_id":"RegionOne", 166 "id":"0539aeff80954a0bb756cec496768d3d" 167 }, 168 { 169 "url":"http://127.0.0.1:5000/v3", 170 "interface":"public", 171 "region":"RegionOne", 172 "region_id":"RegionOne", 173 "id":"15bdf2d0853e4c939993d29548b1b56f" 174 }, 175 { 176 "url":"http://127.0.0.1:5000/v3", 177 "interface":"internal", 178 "region":"RegionOne", 179 "region_id":"RegionOne", 180 "id":"3b4423c54ba343c58226bc424cb11c4b" 181 } 182 ], 183 "type":"identity", 184 "id":"1cde0ea8cb3c49d8928cb172ca825ca5", 185 "name":"keystone" 186 } 187 ], 188 "user":{ 189 "domain":{ 190 "id":"default", 191 "name":"Default" 192 }, 193 "password_expires_at":null, 194 "name":"admin", 195 "id":"0fe36e73809d46aeae6705c39077b1b3" 196 }, 197 "audit_ids": [ 198 "P4QTZuYXS1u8SC6b3BSK1g" 199 ], 200 "issued_at": "2019-09-18T15:12:32.000000Z" 201 } 202 } 203 ` 204 205 var expectedTokenTime, _ = time.Parse(gophercloud.RFC3339Milli, 206 "2017-06-03T02:19:49.000000Z") 207 var ExpectedToken = tokens.Token{ 208 ID: testTokenID, 209 ExpiresAt: expectedTokenTime, 210 } 211 212 var catalogEntry1 = tokens.CatalogEntry{ 213 ID: "17e0fa04647d4155a7933ee624dd66da", 214 Name: "nova", 215 Type: "compute", 216 Endpoints: []tokens.Endpoint{ 217 { 218 ID: "3eac9e7588eb4eb2a4650cf5e079505f", 219 Region: "RegionOne", 220 RegionID: "RegionOne", 221 Interface: "admin", 222 URL: "http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66", 223 }, 224 { 225 ID: "6b33fabc69c34ea782a3f6282582b59f", 226 Region: "RegionOne", 227 RegionID: "RegionOne", 228 Interface: "internal", 229 URL: "http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66", 230 }, 231 { 232 ID: "dae63c71bee24070a71f5425e7a916b5", 233 Region: "RegionOne", 234 RegionID: "RegionOne", 235 Interface: "public", 236 URL: "http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66", 237 }, 238 }, 239 } 240 var catalogEntry2 = tokens.CatalogEntry{ 241 ID: "1cde0ea8cb3c49d8928cb172ca825ca5", 242 Name: "keystone", 243 Type: "identity", 244 Endpoints: []tokens.Endpoint{ 245 { 246 ID: "0539aeff80954a0bb756cec496768d3d", 247 Region: "RegionOne", 248 RegionID: "RegionOne", 249 Interface: "admin", 250 URL: "http://127.0.0.1:35357/v3", 251 }, 252 { 253 ID: "15bdf2d0853e4c939993d29548b1b56f", 254 Region: "RegionOne", 255 RegionID: "RegionOne", 256 Interface: "public", 257 URL: "http://127.0.0.1:5000/v3", 258 }, 259 { 260 ID: "3b4423c54ba343c58226bc424cb11c4b", 261 Region: "RegionOne", 262 RegionID: "RegionOne", 263 Interface: "internal", 264 URL: "http://127.0.0.1:5000/v3", 265 }, 266 }, 267 } 268 269 // ExpectedServiceCatalog contains expected service extracted from token response. 270 var ExpectedServiceCatalog = tokens.ServiceCatalog{ 271 Entries: []tokens.CatalogEntry{catalogEntry1, catalogEntry2}, 272 } 273 274 var domain = tokens.Domain{ 275 ID: "default", 276 Name: "Default", 277 } 278 279 // ExpectedUser contains expected user extracted from token response. 280 var ExpectedUser = tokens.User{ 281 Domain: domain, 282 ID: "0fe36e73809d46aeae6705c39077b1b3", 283 Name: "admin", 284 } 285 286 var role = tokens.Role{ 287 ID: "434426788d5a451faf763b0e6db5aefb", 288 Name: "admin", 289 } 290 291 // ExpectedRoles contains expected roles extracted from token response. 292 var ExpectedRoles = []tokens.Role{role} 293 294 // ExpectedProject contains expected project extracted from token response. 295 var ExpectedProject = tokens.Project{ 296 Domain: domain, 297 ID: "a99e9b4e620e4db09a2dfb6e42a01e66", 298 Name: "admin", 299 } 300 301 // ExpectedDomain contains expected domain extracted from token response. 302 var ExpectedDomain = tokens.Domain{ 303 ID: "default", 304 Name: "Default", 305 } 306 307 func getGetResult(t *testing.T) tokens.GetResult { 308 result := tokens.GetResult{} 309 result.Header = http.Header{ 310 "X-Subject-Token": []string{testTokenID}, 311 } 312 err := json.Unmarshal([]byte(TokenOutput), &result.Body) 313 testhelper.AssertNoErr(t, err) 314 return result 315 } 316 317 func getGetDomainResult(t *testing.T) tokens.GetResult { 318 result := tokens.GetResult{} 319 result.Header = http.Header{ 320 "X-Subject-Token": []string{testTokenID}, 321 } 322 err := json.Unmarshal([]byte(DomainToken), &result.Body) 323 testhelper.AssertNoErr(t, err) 324 return result 325 }