auth/internal/domain/grant_type_test.go

97 lines
1.9 KiB
Go

package domain_test
import (
"testing"
"source.toby3d.me/website/indieauth/internal/domain"
)
func TestParseGrantType(t *testing.T) {
t.Parallel()
for _, tc := range []struct {
in string
out domain.GrantType
}{{
in: "authorization_code",
out: domain.GrantTypeAuthorizationCode,
}, {
in: "ticket",
out: domain.GrantTypeTicket,
}} {
tc := tc
t.Run(tc.in, func(t *testing.T) {
t.Parallel()
result, err := domain.ParseGrantType(tc.in)
if err != nil {
t.Fatalf("%+v", err)
}
if result != tc.out {
t.Errorf("ParseGrantType(%s) = %v, want %v", tc.in, result, tc.out)
}
})
}
}
func TestGrantType_UnmarshalForm(t *testing.T) {
t.Parallel()
input := []byte("authorization_code")
result := domain.GrantTypeUndefined
if err := result.UnmarshalForm(input); err != nil {
t.Fatalf("%+v", err)
}
if result != domain.GrantTypeAuthorizationCode {
t.Errorf("UnmarshalForm(%s) = %v, want %v", input, result, domain.GrantTypeAuthorizationCode)
}
}
func TestGrantType_UnmarshalJSON(t *testing.T) {
t.Parallel()
input := []byte(`"authorization_code"`)
result := domain.GrantTypeUndefined
if err := result.UnmarshalJSON(input); err != nil {
t.Fatalf("%+v", err)
}
if result != domain.GrantTypeAuthorizationCode {
t.Errorf("UnmarshalJSON(%s) = %v, want %v", input, result, domain.GrantTypeAuthorizationCode)
}
}
func TestGrantType_String(t *testing.T) {
t.Parallel()
for _, tc := range []struct {
name string
in domain.GrantType
out string
}{{
name: "authorization_code",
in: domain.GrantTypeAuthorizationCode,
out: "authorization_code",
}, {
name: "ticket",
in: domain.GrantTypeTicket,
out: "ticket",
}} {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
result := tc.in.String()
if result != tc.out {
t.Errorf("String() = %v, want %v", result, tc.out)
}
})
}
}