1
0
Fork 0
jf2/lang_test.go

45 lines
806 B
Go

package jf2_test
import (
"encoding/json"
"testing"
"golang.org/x/text/language"
"source.toby3d.me/toby3d/jf2"
)
func TestLang_UnmarshalJSON(t *testing.T) {
t.Parallel()
v := new(struct {
Lang jf2.Lang `json:"lang"`
})
if err := json.Unmarshal([]byte(`{"lang":"en-US"}`), v); err != nil {
t.Fatal(err)
}
expect := language.AmericanEnglish
if v.Lang.Tag != expect {
t.Errorf("got '%s', want '%s'", v.Lang.Tag, expect)
}
}
func TestLang_MarshalJSON(t *testing.T) {
t.Parallel()
body, err := json.Marshal(struct {
Lang jf2.Lang `json:"lang"`
}{
Lang: jf2.Lang{Tag: language.AmericanEnglish},
})
if err != nil {
t.Fatal(err)
}
const expect string = `{"lang":"en-US"}`
if actual := string(body); actual != expect {
t.Errorf("got '%s', want '%s'", actual, expect)
}
}