Skip to content

Commit b7a5492

Browse files
committed
added more tests for error
1 parent 128451e commit b7a5492

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

utils_test.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,75 @@ func TestParseByteDateTime(t *testing.T) {
397397
}
398398
}
399399

400+
func TestParseByteDateTimeFail(t *testing.T) {
401+
cases := []struct {
402+
name string
403+
str string
404+
wantErr string
405+
}{
406+
{
407+
name: "parse invalid time",
408+
str: "hello",
409+
wantErr: "invalid time bytes: hello",
410+
},
411+
{
412+
name: "parse year",
413+
str: "000!-00-00 00:00:00.000000",
414+
wantErr: "not [0-9]",
415+
},
416+
{
417+
name: "parse month",
418+
str: "0000-!0-00 00:00:00.000000",
419+
wantErr: "not [0-9]",
420+
},
421+
{
422+
name: `parse "-" after parsed year`,
423+
str: "0000:00-00 00:00:00.000000",
424+
wantErr: "bad value for field: `:`",
425+
},
426+
{
427+
name: `parse "-" after parsed month`,
428+
str: "0000-00:00 00:00:00.000000",
429+
wantErr: "bad value for field: `:`",
430+
},
431+
{
432+
name: `parse " " after parsed date`,
433+
str: "0000-00-00+00:00:00.000000",
434+
wantErr: "bad value for field: `+`",
435+
},
436+
{
437+
name: `parse ":" after parsed date`,
438+
str: "0000-00-00 00-00:00.000000",
439+
wantErr: "bad value for field: `-`",
440+
},
441+
{
442+
name: `parse ":" after parsed hour`,
443+
str: "0000-00-00 00:00-00.000000",
444+
wantErr: "bad value for field: `-`",
445+
},
446+
{
447+
name: `parse "." after parsed sec`,
448+
str: "0000-00-00 00:00:00?000000",
449+
wantErr: "bad value for field: `?`",
450+
},
451+
}
452+
453+
for _, cc := range cases {
454+
t.Run(cc.name, func(t *testing.T) {
455+
got, err := parseByteDateTime([]byte(cc.str), time.UTC)
456+
if err == nil {
457+
t.Fatal("want error")
458+
}
459+
if cc.wantErr != err.Error() {
460+
t.Fatalf("want `%s`, but got `%s`", cc.wantErr, err)
461+
}
462+
if !got.IsZero() {
463+
t.Fatal("want zero time")
464+
}
465+
})
466+
}
467+
}
468+
400469
func BenchmarkParseDateTime(b *testing.B) {
401470
str := "2020-05-13 21:30:45"
402471
loc := time.FixedZone("test", 8*60*60)

0 commit comments

Comments
 (0)