github.com/segakazzz/buffalo@v0.16.22-0.20210119082501-1f52048d3feb/binding/decoders/time_test.go (about) 1 package decoders 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestParseTimeErrorParsing(t *testing.T) { 11 r := require.New(t) 12 13 _, err := parseTime([]string{"this is sparta"}) 14 r.Error(err) 15 } 16 17 func TestParseTime(t *testing.T) { 18 r := require.New(t) 19 20 testCases := []struct { 21 input string 22 expected time.Time 23 expectErr bool 24 }{ 25 { 26 input: "2017-01-01", 27 expected: time.Date(2017, time.January, 1, 0, 0, 0, 0, time.UTC), 28 expectErr: false, 29 }, 30 { 31 input: "2018-07-13T15:34", 32 expected: time.Date(2018, time.July, 13, 15, 34, 0, 0, time.UTC), 33 expectErr: false, 34 }, 35 { 36 input: "2018-20-10T30:15", 37 expected: time.Time{}, 38 expectErr: true, 39 }, 40 } 41 42 for _, tc := range testCases { 43 tt, err := parseTime([]string{tc.input}) 44 if !tc.expectErr { 45 r.NoError(err) 46 } 47 48 r.Equal(tc.expected, tt) 49 } 50 } 51 52 func TestParseTimeConflicting(t *testing.T) { 53 r := require.New(t) 54 55 RegisterTimeFormats("2006-02-01") 56 tt, err := parseTime([]string{"2017-01-10"}) 57 58 r.NoError(err) 59 expected := time.Date(2017, time.October, 1, 0, 0, 0, 0, time.UTC) 60 r.Equal(expected, tt) 61 }