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