50 lines
955 B
Go
50 lines
955 B
Go
package jsontime
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestNow(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
t1 := time.Now()
|
|
t2 := Now()
|
|
|
|
assert.InDelta(t1.Unix(), t2.Unix(), 1)
|
|
}
|
|
|
|
func TestMarshalTime(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
nativeTime, err := time.Parse(time.RFC3339, "2012-11-01T22:08:41+00:00")
|
|
assert.Nil(err)
|
|
|
|
json, err := Time{nativeTime}.MarshalJSON()
|
|
assert.Nil(err)
|
|
|
|
assert.Equal(`"2012-11-01T22:08:41"`, string(json))
|
|
}
|
|
|
|
func TestUnmarshalValidTime(t *testing.T) {
|
|
assert := assert.New(t)
|
|
jsonTime := Time{}
|
|
|
|
// valid time
|
|
err := jsonTime.UnmarshalJSON([]byte(`"2012-11-01T22:08:41"`))
|
|
assert.Nil(err)
|
|
assert.False(jsonTime.IsZero())
|
|
}
|
|
|
|
func TestUnmarshalInvalidTime(t *testing.T) {
|
|
assert := assert.New(t)
|
|
jsonTime := Time{}
|
|
|
|
// invalid time
|
|
err := jsonTime.UnmarshalJSON([]byte(`1458597472`))
|
|
assert.EqualError(err, "invalid jsontime")
|
|
assert.True(jsonTime.IsZero())
|
|
}
|