github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/identity/v3/token_test.go (about) 1 package v3 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 8 "github.com/opentelekomcloud/gophertelekomcloud/openstack/identity/v3/tokens" 9 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 10 ) 11 12 func TestGetToken(t *testing.T) { 13 client, err := clients.NewIdentityV3Client() 14 th.AssertNoErr(t, err) 15 16 cc, err := clients.CloudAndClient() 17 th.AssertNoErr(t, err) 18 19 authOptions := tokens.AuthOptions{ 20 UserID: cc.ProviderClient.UserID, 21 Password: cc.AuthInfo.Password, 22 DomainName: cc.AuthInfo.DomainName, 23 Passcode: os.Getenv("OS_PASSCODE"), 24 } 25 26 if cc.AuthInfo.Password == "" { 27 t.Skip("password auth is required for this test") 28 } 29 30 result := tokens.Create(client, &authOptions) 31 token, err := result.Extract() 32 th.AssertNoErr(t, err) 33 34 _, err = tokens.Get(client, token.ID).ExtractServiceCatalog() 35 th.AssertNoErr(t, err) 36 37 user, err := tokens.Get(client, token.ID).ExtractUser() 38 th.AssertNoErr(t, err) 39 th.AssertEquals(t, authOptions.UserID, user.ID) 40 41 roles, err := tokens.Get(client, token.ID).ExtractRoles() 42 th.AssertNoErr(t, err) 43 if len(roles) == 0 { 44 t.Fatalf("user has no roles") 45 } 46 47 _, err = tokens.Get(client, token.ID).ExtractProject() 48 th.AssertNoErr(t, err) 49 }