示例#1
0
文件: date_test.go 项目: fxtlabs/date
func TestTextMarshalling(t *testing.T) {
	var d date.Date
	cases := []struct {
		value date.Date
		want  string
	}{
		{date.New(-11111, time.February, 3), "-11111-02-03"},
		{date.New(-1, time.December, 31), "-0001-12-31"},
		{date.New(0, time.January, 1), "0000-01-01"},
		{date.New(1, time.January, 1), "0001-01-01"},
		{date.New(1970, time.January, 1), "1970-01-01"},
		{date.New(2012, time.June, 25), "2012-06-25"},
		{date.New(12345, time.June, 7), "+12345-06-07"},
	}
	for _, c := range cases {
		bytes, err := c.value.MarshalText()
		if err != nil {
			t.Errorf("Text(%v) marshal error %v", c, err)
		} else if string(bytes) != c.want {
			t.Errorf("Text(%v) == %v, want %v", c.value, string(bytes), c.want)
		} else {
			err = d.UnmarshalText(bytes)
			if err != nil {
				t.Errorf("Text(%v) unmarshal error %v", c.value, err)
			}
		}
	}
}
示例#2
0
文件: date_test.go 项目: fxtlabs/date
func TestInvalidText(t *testing.T) {
	cases := []struct {
		value string
		want  string
	}{
		{`not-a-date`, `Date.ParseISO: cannot parse not-a-date`},
		{`215-08-15`, `Date.ParseISO: cannot parse 215-08-15`},
	}
	for _, c := range cases {
		var d date.Date
		err := d.UnmarshalText([]byte(c.value))
		if err == nil || err.Error() != c.want {
			t.Errorf("InvalidText(%v) == %v, want %v", c.value, err, c.want)
		}
	}
}