evcc-io/vehicle/vag/token_test.go

53 lines
1,020 B
Go

package vag
import (
"encoding/json"
"testing"
)
func TestUnmarshalJSON(t *testing.T) {
var tok Token
data := `{"id_token":"id","access_token":"access","refresh_token":"refresh","token_type":"bearer","expires_in":3600}`
if err := json.Unmarshal([]byte(data), &tok); err != nil {
t.Error(err)
}
if tok.IDToken != "id" {
t.Error("IDToken")
}
if tok.AccessToken != "access" {
t.Error("AccessToken")
}
if tok.RefreshToken != "refresh" {
t.Error("RefreshToken")
}
if tok.TokenType != "bearer" {
t.Error("TokenType")
}
if tok.Expiry.IsZero() {
t.Error("Expiry")
}
}
func TestUnmarshalJSONError(t *testing.T) {
var tok Token
data := `{"error":"invalid_request","error_description":"Id token is invalid."}`
err := json.Unmarshal([]byte(data), &tok)
if err != nil {
t.Error(err)
}
if err := tok.Error(); err == nil {
t.Error("missing error")
}
if err := tok.Error(); err.Error() != "invalid_request: Id token is invalid." {
t.Errorf("unexpected error: %s", err.Error())
}
}