Skip to content

Commit 4e9c420

Browse files
committed
Add domain scope unit tests
1 parent 2e18fd9 commit 4e9c420

File tree

2 files changed

+117
-0
lines changed

2 files changed

+117
-0
lines changed

openstack/identity/v3/tokens/testing/fixtures.go

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,98 @@ const TokenOutput = `
110110
}
111111
}`
112112

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+
113205
var expectedTokenTime, _ = time.Parse(gophercloud.RFC3339Milli,
114206
"2017-06-03T02:19:49.000000Z")
115207
var ExpectedToken = tokens.Token{
@@ -206,6 +298,12 @@ var ExpectedProject = tokens.Project{
206298
Name: "admin",
207299
}
208300

301+
// ExpectedDomain contains expected domain extracted from token response.
302+
var ExpectedDomain = tokens.Domain{
303+
ID: "default",
304+
Name: "Default",
305+
}
306+
209307
func getGetResult(t *testing.T) tokens.GetResult {
210308
result := tokens.GetResult{}
211309
result.Header = http.Header{
@@ -215,3 +313,13 @@ func getGetResult(t *testing.T) tokens.GetResult {
215313
testhelper.AssertNoErr(t, err)
216314
return result
217315
}
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+
}

openstack/identity/v3/tokens/testing/results_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,12 @@ func TestExtractProject(t *testing.T) {
5050

5151
testhelper.CheckDeepEquals(t, &ExpectedProject, project)
5252
}
53+
54+
func TestExtractDomain(t *testing.T) {
55+
result := getGetDomainResult(t)
56+
57+
domain, err := result.ExtractDomain()
58+
testhelper.AssertNoErr(t, err)
59+
60+
testhelper.CheckDeepEquals(t, &ExpectedDomain, domain)
61+
}

0 commit comments

Comments
 (0)