github.com/jxgolibs/go-oauth2-server@v1.0.1/util/time_test.go (about) 1 package util_test 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/RichardKnop/go-oauth2-server/util" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestFormatTime(t *testing.T) { 12 var ( 13 timestamp time.Time 14 expected, actual string 15 ) 16 17 // UTC 18 timestamp = time.Date(2012, 12, 11, 8, 52, 31, 493729031, time.UTC) 19 expected = "2012-12-11T08:52:31.493Z" 20 actual = util.FormatTime(×tamp) 21 assert.Equal(t, expected, actual) 22 23 // UTC 24 timestamp = time.Date(2012, 12, 11, 8, 52, 31, 493729031, time.FixedZone("HKT", 8*3600)) 25 expected = "2012-12-11T00:52:31.493Z" 26 actual = util.FormatTime(×tamp) 27 assert.Equal(t, expected, actual) 28 } 29 30 func TestParseTimestamp(t *testing.T) { 31 var ( 32 parsedTime *time.Time 33 err error 34 ) 35 36 parsedTime, err = util.ParseTimestamp("") 37 assert.Nil(t, err) 38 assert.Nil(t, parsedTime) 39 40 parsedTime, err = util.ParseTimestamp("bogus") 41 assert.NotNil(t, err) 42 assert.Nil(t, parsedTime) 43 44 parsedTime, err = util.ParseTimestamp("2016-05-04T12:08:35Z") 45 assert.Nil(t, err) 46 assert.NotNil(t, parsedTime) 47 assert.Equal(t, 2016, parsedTime.UTC().Year()) 48 assert.Equal(t, time.May, parsedTime.UTC().Month()) 49 assert.Equal(t, 4, parsedTime.UTC().Day()) 50 assert.Equal(t, 12, parsedTime.UTC().Hour()) 51 assert.Equal(t, 8, parsedTime.UTC().Minute()) 52 assert.Equal(t, 35, parsedTime.UTC().Second()) 53 54 parsedTime, err = util.ParseTimestamp("2016-05-04T12:08:35+07:00") 55 assert.Nil(t, err) 56 assert.NotNil(t, parsedTime) 57 assert.Equal(t, 2016, parsedTime.UTC().Year()) 58 assert.Equal(t, time.May, parsedTime.UTC().Month()) 59 assert.Equal(t, 4, parsedTime.UTC().Day()) 60 assert.Equal(t, 5, parsedTime.UTC().Hour()) 61 assert.Equal(t, 8, parsedTime.UTC().Minute()) 62 assert.Equal(t, 35, parsedTime.UTC().Second()) 63 64 // RFC3339 timestamp generated in Django: '{}{}'.format(timezone.now().utcnow(), 'Z') 65 parsedTime, err = util.ParseTimestamp("2016-07-19T09:28:03.285195Z") 66 assert.Nil(t, err) 67 assert.NotNil(t, parsedTime) 68 assert.Equal(t, 2016, parsedTime.UTC().Year()) 69 assert.Equal(t, time.July, parsedTime.UTC().Month()) 70 assert.Equal(t, 19, parsedTime.UTC().Day()) 71 assert.Equal(t, 9, parsedTime.UTC().Hour()) 72 assert.Equal(t, 28, parsedTime.UTC().Minute()) 73 assert.Equal(t, 3, parsedTime.UTC().Second()) 74 } 75 76 func TestFormatDate(t *testing.T) { 77 var ( 78 timestamp time.Time 79 expected, actual string 80 ) 81 82 // UTC 83 timestamp = time.Date(2012, 12, 11, 8, 52, 31, 493729031, time.UTC) 84 expected = "2012-12-11" 85 actual = util.FormatDate(×tamp) 86 assert.Equal(t, expected, actual) 87 } 88 89 func TestParseDate(t *testing.T) { 90 var ( 91 parsedTime *time.Time 92 err error 93 ) 94 95 parsedTime, err = util.ParseDate("") 96 assert.Nil(t, err) 97 assert.Nil(t, parsedTime) 98 99 parsedTime, err = util.ParseDate("bogus") 100 assert.NotNil(t, err) 101 assert.Nil(t, parsedTime) 102 103 parsedTime, err = util.ParseDate("2016-05-04") 104 assert.Nil(t, err) 105 assert.NotNil(t, parsedTime) 106 assert.Equal(t, 2016, parsedTime.UTC().Year()) 107 assert.Equal(t, time.May, parsedTime.UTC().Month()) 108 assert.Equal(t, 4, parsedTime.UTC().Day()) 109 assert.Equal(t, 0, parsedTime.UTC().Hour()) 110 assert.Equal(t, 0, parsedTime.UTC().Minute()) 111 assert.Equal(t, 0, parsedTime.UTC().Second()) 112 }