go-toml/value_datetime_test.go

34 lines
1.7 KiB
Go

package toml
import (
"testing"
)
func TestDateTime(t *testing.T) {
for _, test := range []parseTest{
{``, []string{`Error: unexpected end of file (expected a date and/or time) at start of file`}},
{`1979-05-27`, []string{`1979-05-27`}},
{`00:00:00`, []string{`00:00:00`}},
{`23:59:59`, []string{`23:59:59`}},
{`12:10:08.12121212121212`, []string{`12:10:08.121212121`}},
{`1979-05-28T01:01:01`, []string{`1979-05-28 01:01:01`}},
{`1979-05-28 01:01:01`, []string{`1979-05-28 01:01:01`}},
{`1979-05-27T07:32:00Z`, []string{`1979-05-27T07:32:00Z`}},
{`1979-05-27 07:33:00Z`, []string{`1979-05-27T07:33:00Z`}},
{`1979-05-27 07:34:00+07:00`, []string{`1979-05-27T07:34:00+07:00`}},
{`1979-05-27 07:34:00-07:00`, []string{`1979-05-27T07:34:00-07:00`}},
{`1985-03-31 23:59:59+00:00`, []string{`1985-03-31T23:59:59Z`}},
{`2000-09-10 00:00:00.000000000+00:00`, []string{`2000-09-10T00:00:00Z`}},
{`2003-11-01 01:02:03.999999999999+10:00`, []string{`2003-11-01T01:02:03.999999999+10:00`}},
{`2007-12-25 04:00:04.1111-10:30`, []string{`2007-12-25T04:00:04.1111-10:30`}},
{`2021-02-01 10:10:10.101010203040Z`, []string{`2021-02-01T10:10:10.101010203Z`}},
// TODO ugly column, should be at start or at the actual wrong part
{`2000-13-01`, []string{`Error: Cannot parse value 02000-13-01: parsing time "2000-13-01": month out of range at line 1, column 11`}},
{`2000-02-31`, []string{`Error: Cannot parse value 02000-02-31: parsing time "2000-02-31": day out of range at line 1, column 11`}},
{`25:01:01`, []string{`Error: Cannot parse value 025:01:01: parsing time "25:01:01": hour out of range at line 1, column 9`}},
} {
p := newParser()
testParseHandler(t, p, p.startDateTime, test)
}
}