github.com/crewjam/saml@v0.4.14/time_test.go (about) 1 package saml 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/google/go-cmp/cmp" 8 9 "gotest.tools/assert" 10 is "gotest.tools/assert/cmp" 11 ) 12 13 func TestRelaxedTimeFormat(t *testing.T) { 14 rt := time.Date(1981, 02, 03, 14, 15, 16, 17, time.UTC) 15 assert.Check(t, is.Equal("1981-02-03T14:15:16Z", RelaxedTime(rt).String())) 16 17 buf, err := RelaxedTime(rt).MarshalText() 18 assert.Check(t, err) 19 assert.Check(t, is.Equal("1981-02-03T14:15:16Z", string(buf))) 20 21 loc, err := time.LoadLocation("America/New_York") 22 assert.Check(t, err) 23 rt = time.Date(1981, 02, 03, 9, 15, 16, 17, loc) 24 25 assert.Check(t, is.Equal("1981-02-03T14:15:16Z", RelaxedTime(rt).String())) 26 buf, err = RelaxedTime(rt).MarshalText() 27 assert.Check(t, err) 28 assert.Check(t, is.Equal("1981-02-03T14:15:16Z", string(buf))) 29 } 30 31 func TestRelaxedTimeParse(t *testing.T) { 32 { 33 var rt RelaxedTime 34 err := rt.UnmarshalText([]byte("1981-02-03T14:15:16Z")) 35 assert.Check(t, err) 36 assert.Check(t, is.DeepEqual( 37 RelaxedTime(time.Date(1981, 02, 03, 14, 15, 16, 0, time.UTC)), 38 rt, cmp.AllowUnexported(RelaxedTime{}))) 39 } 40 41 { 42 var rt RelaxedTime 43 err := rt.UnmarshalText([]byte("1981-02-03T14:15:16.178901234Z")) 44 assert.Check(t, err) 45 assert.Check(t, is.DeepEqual(RelaxedTime(time.Date(1981, 02, 03, 14, 15, 16, 179000000, time.UTC)), 46 rt, cmp.AllowUnexported(RelaxedTime{}))) 47 } 48 { 49 var rt RelaxedTime 50 err := rt.UnmarshalText([]byte("1981-02-03T14:15:16.1717Z")) 51 assert.Check(t, err) 52 assert.Check(t, is.DeepEqual(RelaxedTime(time.Date(1981, 02, 03, 14, 15, 16, 172000000, time.UTC)), 53 rt, cmp.AllowUnexported(RelaxedTime{}))) 54 } 55 { 56 var rt RelaxedTime 57 err := rt.UnmarshalText([]byte("1981-02-03T14:15:16Z04:00")) 58 assert.Check(t, is.Error(err, 59 "parsing time \"1981-02-03T14:15:16Z04:00\": extra text: \"04:00\"")) 60 } 61 }