account: Now may include info on current team. (#536)
This commit is contained in:
parent
7b323c60c3
commit
438ae708b9
23
account.go
23
account.go
|
@ -22,14 +22,21 @@ var _ AccountService = &AccountServiceOp{}
|
|||
|
||||
// Account represents a DigitalOcean Account
|
||||
type Account struct {
|
||||
DropletLimit int `json:"droplet_limit,omitempty"`
|
||||
FloatingIPLimit int `json:"floating_ip_limit,omitempty"`
|
||||
VolumeLimit int `json:"volume_limit,omitempty"`
|
||||
Email string `json:"email,omitempty"`
|
||||
UUID string `json:"uuid,omitempty"`
|
||||
EmailVerified bool `json:"email_verified,omitempty"`
|
||||
Status string `json:"status,omitempty"`
|
||||
StatusMessage string `json:"status_message,omitempty"`
|
||||
DropletLimit int `json:"droplet_limit,omitempty"`
|
||||
FloatingIPLimit int `json:"floating_ip_limit,omitempty"`
|
||||
VolumeLimit int `json:"volume_limit,omitempty"`
|
||||
Email string `json:"email,omitempty"`
|
||||
UUID string `json:"uuid,omitempty"`
|
||||
EmailVerified bool `json:"email_verified,omitempty"`
|
||||
Status string `json:"status,omitempty"`
|
||||
StatusMessage string `json:"status_message,omitempty"`
|
||||
Team *TeamInfo `json:"team,omitempty"`
|
||||
}
|
||||
|
||||
// TeamInfo contains information about the currently team context.
|
||||
type TeamInfo struct {
|
||||
Name string `json:"name,omitempty"`
|
||||
UUID string `json:"uuid,omitempty"`
|
||||
}
|
||||
|
||||
type accountRoot struct {
|
||||
|
|
|
@ -59,3 +59,74 @@ func TestAccountString(t *testing.T) {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
func TestAccountGetWithTeam(t *testing.T) {
|
||||
setup()
|
||||
defer teardown()
|
||||
|
||||
mux.HandleFunc("/v2/account", func(w http.ResponseWriter, r *http.Request) {
|
||||
testMethod(t, r, http.MethodGet)
|
||||
|
||||
response := `
|
||||
{ "account": {
|
||||
"droplet_limit": 25,
|
||||
"floating_ip_limit": 25,
|
||||
"volume_limit": 22,
|
||||
"email": "sammy@digitalocean.com",
|
||||
"uuid": "b6fr89dbf6d9156cace5f3c78dc9851d957381ef",
|
||||
"email_verified": true,
|
||||
"team": {
|
||||
"name": "My Team",
|
||||
"uuid": "b6fr89dbf6d9156cace5f3c78dc9851d957381ef"
|
||||
}
|
||||
}
|
||||
}`
|
||||
|
||||
fmt.Fprint(w, response)
|
||||
})
|
||||
|
||||
acct, _, err := client.Account.Get(ctx)
|
||||
if err != nil {
|
||||
t.Errorf("Account.Get returned error: %v", err)
|
||||
}
|
||||
|
||||
expected := &Account{
|
||||
DropletLimit: 25,
|
||||
FloatingIPLimit: 25,
|
||||
Email: "sammy@digitalocean.com",
|
||||
UUID: "b6fr89dbf6d9156cace5f3c78dc9851d957381ef",
|
||||
EmailVerified: true,
|
||||
VolumeLimit: 22,
|
||||
Team: &TeamInfo{
|
||||
Name: "My Team",
|
||||
UUID: "b6fr89dbf6d9156cace5f3c78dc9851d957381ef",
|
||||
},
|
||||
}
|
||||
if !reflect.DeepEqual(acct, expected) {
|
||||
t.Errorf("Account.Get returned %+v, expected %+v", acct, expected)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAccountStringWithTeam(t *testing.T) {
|
||||
acct := &Account{
|
||||
DropletLimit: 25,
|
||||
FloatingIPLimit: 25,
|
||||
Email: "sammy@digitalocean.com",
|
||||
UUID: "b6fr89dbf6d9156cace5f3c78dc9851d957381ef",
|
||||
EmailVerified: true,
|
||||
Status: "active",
|
||||
StatusMessage: "message",
|
||||
VolumeLimit: 22,
|
||||
Team: &TeamInfo{
|
||||
Name: "My Team",
|
||||
UUID: "b6fr89dbf6d9156cace5f3c78dc9851d957381ef",
|
||||
},
|
||||
}
|
||||
|
||||
stringified := acct.String()
|
||||
expected := `godo.Account{DropletLimit:25, FloatingIPLimit:25, VolumeLimit:22, Email:"sammy@digitalocean.com", UUID:"b6fr89dbf6d9156cace5f3c78dc9851d957381ef", EmailVerified:true, Status:"active", StatusMessage:"message", Team:godo.TeamInfo{Name:"My Team", UUID:"b6fr89dbf6d9156cace5f3c78dc9851d957381ef"}}`
|
||||
if expected != stringified {
|
||||
t.Errorf("Account.String returned %+v, expected %+v", stringified, expected)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue