auth/internal/domain/url_test.go

52 lines
1.1 KiB
Go

package domain_test
import (
"fmt"
"testing"
"source.toby3d.me/toby3d/auth/internal/domain"
)
func TestParseURL(t *testing.T) {
t.Parallel()
input := "https://user:pass@example.com:8443/users?id=100#me"
if _, err := domain.ParseURL(input); err != nil {
t.Errorf("ParseURL(%s) = %+v, want nil", input, err)
}
}
func TestURL_UnmarshalForm(t *testing.T) {
t.Parallel()
url := domain.TestURL(t, "https://user:pass@example.com:8443/users?id=100#me")
input := []byte(fmt.Sprint(url))
result := new(domain.URL)
if err := result.UnmarshalForm(input); err != nil {
t.Fatalf("%+v", err)
}
if fmt.Sprint(result) != fmt.Sprint(url) {
t.Errorf("UnmarshalForm(%s) = %v, want %v", input, result, url)
}
}
func TestURL_UnmarshalJSON(t *testing.T) {
t.Parallel()
url := domain.TestURL(t, "https://user:pass@example.com:8443/users?id=100#me")
input := []byte(fmt.Sprintf(`"%s"`, url))
result := new(domain.URL)
if err := result.UnmarshalJSON(input); err != nil {
t.Fatalf("%+v", err)
}
if fmt.Sprint(result) != fmt.Sprint(url) {
t.Errorf("UnmarshalJSON(%s) = %v, want %v", input, result, url)
}
}
// TODO(toby3d): TestURL_URL